들어가며

지난 글에서 데이터 스누핑이 일어나지 않기 위해 테스트 데이터를 추출하는과정을 진행했습니다. 이번에는 모델을 구상하기위해서 훈련 데이터만을 가지고 데이터에 대해 깊게 탐색해보도록 합시다.

훈련 데이터만을 가지고 탐색하는 것 또한 데이터 스누핑을 피하기 위해서 입니다. 만약 테스트 세트로 탐색을 할 경우 개발자는 데이터에 최적화된 알고리즘을 적용하려고 하므로 과대적합이 발생할 수 있기 때문입니다.

3.1 지리적 데이터의 시각화

경도와 위도에 대한 정보를 바탕으로 데이터를 산점도로 표현하여 지리적 데이터를 시각화 해봅시다.

https://colab.research.google.com/drive/1wWaPMCEb3ewf3CNKIeu262vQaCG36apw#scrollTo=aroTxF3Ja5mD&line=2&uniqifier=1

 

Google Colaboratory

 

colab.research.google.com

링크는 처음에만 추가하겠습니다. colab에서도 아래의 내용이 순서대로 이어지니 참고하시면 됩니다.

산점도를 그릴때 알파값이 디폴트로 되어 데이터의 중첩성에 대해서 파악하기 힘드니 알파값을 0.1로 바꾸어 봅시다.

데이터를 통해서 주택들이 특정 도시에 밀집되어있는 것을 확인 할 수 있습니다. 이번에는 산점도에 가격데이터를 추가하여 컬러맵 방식으로 확인해보겠습니다.

위 데이터를 시각화하여 밀집도와 해안근접성이 주택가격과 관련이 매우 크다는 것을 확인 할 수 있습니다. 그러나 북부쪽으로 갈 수록 해안에 근접해도 가격이 높지는 않으므로 좀더 특별한 규칙이 필요할 것 같습니다.

3.2 상관관계 조사

시각화를 통해서 데이터를 탐색해봤으니 직접적으로 데이터간의 상관관계에 대해서 조사해보도록 합시다.

3.2.1피어슨 상관계수

데이터셋 간의 상관관계를 조사할때는 표준 상관계수(standard correlation coefficient)또는 피어슨의 r이라고 불리는 지수를 구하여 사용합니다.(이는 오직 선형적인 상관관계만 구할 수 있습니다.) DataFrame의 함수를 통해 간단히 구할 수 있습니다.

피어슨의 상관계수에 따른 그래프 분포

피어슨의 상관계수를 보니 중간수입과 주택가격의 관계가 크다는 것을 알 수 있습니다.

3.3 그래프를 통한 탐색

이번에는 각 데이터셋 사이의 관계를 그래프를 통해서 알아봅시다. 모든 특성을 비교하면 11^2=121개의 그래프를 그려야 하므로 4개만 골라서 그려봅시다.

대각선은 각 데이터 스스로를 표현하는 것이므로 중요하지 않습니다. 비교한 데이터를 볼때 피어슨의 상관계수와 마찬가지로 중간소득과 주택가격의 관계성을 한 눈에 알아볼 수 있습니다. 이에 대해 좀더 자세하게 파악해 봅시다.

위 그래프에서는 몇 가지 사실을 알 수 있습니다.

첫 번째로 데이터의 분포가 오른쪽 위를 향하며 부채꼴 모양으로 퍼지는것을 알 수 있습니다. 이는 중간 소득과 주택가격에 대채적으로 비례하는 것을 알 수 있습니다.

두 번째로 $50000,$45000,$35000 근처에서 데이터가 수평선 모양으로 나타나 있는 것을 알 수있습니다. 이런 일직선 형태는 정말로 자연적인 것인지 아니면 데이터 조사과정에서 문제가 있는것인지 데이터 수집팀과 논의 후 후자라면 추후 학습모델이 이런 이상치를 학습하지 않도록 해당 구역을 제거해야합니다.

 

3.4 새로운 특성 추가

지금까지 데이터에 대해서 탐색하여 흥미로운 상관관계와 숨겨진 이상치에 대해서 알아보았습니다. 알고리즘 데이터를 준비하기 전에 마지막으로 해볼 수 있는 것은 데이터셋의 여러 특성을 조합해 보는것입니다

이미 데이터셋에는 특정 구역(가구들의 집합)의 총 방 개수가 있습니다. 하지만 여기서 진짜로 중요한 것은 한 가구당 방의 갯수입니다. 마찬가지로 구역 당 침대개수보단 각 방에 얼마나 침대가 들어가는지가 중요할 것 같습니다. 이번에는 이런 특성을 추가하여 피어슨 상관계수를 구해봅시다.

상관계수를 보면 예상대로 total_bedrooms보다는 bedrooms_per_room이 더 절대값이 크다는 것을 알 수 있습니다. 이렇듯 기존의 데이터 특성을 조합하여 만든 새로운 특성을 통해서 모델이 더 잘 학습하도록 도울 수 있습니다.


이 탐색 단계는 완벽하지 않습니다. 프로토 타입을 만들고 반복적인 과정을 새로운 통찰을 통해서 새로운 특성 조합을 통해서 더욱 정제된 데이터를 만들수 있을 뿐입니다.

마무리

지금까지 여러 방법으로 데이터를 시각화해보고 상관계수로 주택가격과 다른 특성의 상관관계를 조사해보았습니다.

위 방법들을 통해서 데이터에 대해서 여러가지 정보를 알 수 있었습니다.

  1. 지리화 - 주택 가격은 밀집도와 해안 경계에 관련이 있다.
  2. 상관계수 - 주택 가격은 여러 특성 중 중간 소득과 가장 관련이 높다
  3. 특성 간 그래프 탐색 - 중간소득과 주택가격이 비례적인 분포를 가지고 이상치가 존재한다는 것을 파악

데이터 탐색을 통해 알아낸 정보는 실로 귀중한 것입니다. 이 정보들을 제대로 활용하면 모델의 정확도를 향상시킬 수 있기 때문입니다. 

 

그리고 기존의 데이터를 정제하여 새로운 특성을 만들어서 피어슨의 상관계수를 비교해보았습니다. 위 결과처럼 새로운 특성이 기존의 특성보다 유용할 수 있으므로 다양한 시도를 하는 것이 좋습니다. 

+ Recent posts