반응형
이번 편에서는 House Prices 데이터셋에서 **결측치(Missing Values)**를 정리하고, 성능 향상을 위한 파생 피처 생성을 진행해보겠습니다.
🧼 1. 결측치 현황 확인
missing = train.isnull().sum()
missing = missing[missing > 0].sort_values(ascending=False)
print(missing)
자주 등장하는 결측 변수:
- PoolQC, MiscFeature, Alley: 대부분 결측 → "없음"으로 간주
- LotFrontage: 수치형이지만 대지와 관련 → Neighborhood 기준 평균으로 보간
- GarageYrBlt, GarageType 등 차고 관련 컬럼들
🧼 2. 결측치 처리 방법 예시
# '없음'으로 처리
for col in ['PoolQC', 'MiscFeature', 'Alley', 'Fence', 'FireplaceQu']:
for df in [train, test]:
df[col] = df[col].fillna('None')
# 수치형 평균/중앙값 처리
train['LotFrontage'] = train.groupby('Neighborhood')['LotFrontage'].transform(
lambda x: x.fillna(x.median()))
test['LotFrontage'] = test.groupby('Neighborhood')['LotFrontage'].transform(
lambda x: x.fillna(x.median()))
# 범주형 최빈값 처리
test['MSZoning'] = test['MSZoning'].fillna(test['MSZoning'].mode()[0])
🧩 3. 파생 피처 생성
✅ 3.1. 전체 면적 (TotalSF)
train['TotalSF'] = train['TotalBsmtSF'] + train['1stFlrSF'] + train['2ndFlrSF']
test['TotalSF'] = test['TotalBsmtSF'] + test['1stFlrSF'] + test['2ndFlrSF']
✅ 3.2. 주택 나이 관련 변수
train['HouseAge'] = train['YrSold'] - train['YearBuilt']
train['RemodAge'] = train['YrSold'] - train['YearRemodAdd']
test['HouseAge'] = test['YrSold'] - test['YearBuilt']
test['RemodAge'] = test['YrSold'] - test['YearRemodAdd']
✅ 3.3. 리모델링 여부
train['IsRemodeled'] = (train['YearBuilt'] != train['YearRemodAdd']).astype(int)
test['IsRemodeled'] = (test['YearBuilt'] != test['YearRemodAdd']).astype(int)
📌 정리
- 결측치는 변수의 의미에 따라 적절히 처리 (None, 평균, 그룹별 보간 등)
- TotalSF, HouseAge, IsRemodeled 같은 피처는 실전에서도 성능 향상에 도움됨
- 데이터가 깔끔해졌으니, 다음 단계에서 모델 학습과 평가로 이어갈 수 있음
➡️ 다음 편에서는 다양한 회귀 모델을 사용해 초기 성능을 확인해보겠습니다! 🚀
반응형
'04. 캐글' 카테고리의 다른 글
| 00016. [KAG-002] House Prices 예측 #5 - XGBoost & LightGBM 적용 (0) | 2025.04.15 |
|---|---|
| 00015. [KAG-002] House Prices 예측 #4 - 다양한 회귀 모델 학습 및 성능 비교 (0) | 2025.04.15 |
| 00013. [KAG-002] House Prices 예측 #2 - 데이터 탐색 및 시각화 (0) | 2025.04.15 |
| 00012. [KAG-002] House Prices 예측 #1 - 대회 분석 및 계획 세우기 (0) | 2025.04.15 |
| 00011. [KAG-001] Titanic 생존자 예측 #7 - 하이퍼파라미터 튜닝으로 성능 끌어올리기 (0) | 2025.04.04 |