본문 바로가기

04. 캐글

00013. [KAG-002] House Prices 예측 #2 - 데이터 탐색 및 시각화

반응형

이번 에피소드에서는 House Prices 대회의 데이터를 본격적으로 들여다보고, **탐색적 데이터 분석(EDA)**을 통해 통찰을 얻어보겠습니다.


📦 1. 데이터 로딩

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')

📊 2. 목표 변수(SalePrice) 분포 확인

sns.histplot(train['SalePrice'], kde=True)
plt.title('SalePrice Distribution')
plt.show()

로그 분포 형태에 가까워 보이며, 오른쪽으로 꼬리가 긴 right-skewed 형태입니다.
회귀 모델의 성능을 위해 로그 변환을 고려할 수 있습니다.


🔎 3. 수치형 변수와의 상관관계 확인

numeric_feats = train.select_dtypes(include=['int64', 'float64'])
corr = numeric_feats.corr()['SalePrice'].sort_values(ascending=False)
print(corr.head(10))

상위 상관 피처 예시:

  • OverallQual: 전반적 자재 마감 품질
  • GrLivArea: 지상 거주 면적
  • GarageCars, TotalBsmtSF, 1stFlrSF

🏠 4. 주요 피처 vs SalePrice 시각화

sns.scatterplot(x='GrLivArea', y='SalePrice', data=train)
plt.title('GrLivArea vs SalePrice')
plt.show()

특정 이상치(GrLivArea가 4000 이상인데 가격이 낮은 경우)가 확인됨 → 제거할지 검토

sns.boxplot(x='OverallQual', y='SalePrice', data=train)
plt.title('OverallQual vs SalePrice')
plt.show()

OverallQual이 높을수록 명확하게 가격이 상승하는 경향이 보임


🧩 5. 범주형 변수 예시 분석

sns.boxplot(x='Neighborhood', y='SalePrice', data=train)
plt.xticks(rotation=45)
plt.title('Neighborhood vs SalePrice')
plt.show()

지역에 따라 평균 집값이 크게 차이남 → 모델에 중요한 인사이트


✅ 요약

  • SalePrice는 로그 분포 → 나중에 np.log1p()로 변환 예정
  • OverallQual, GrLivArea 등은 강한 양의 상관관계
  • 이상치와 범주형 인사이트 확인 완료

➡️ 다음 편에서는 결측치 처리 및 파생 피처 생성을 진행해보겠습니다 💡

반응형