탐색적 데이터 분석

결측치 확인

trian.isnull().sum().sort_values(ascending = False).head(10)

image.png

수치형 / 범주형 변수 구분

numeric_feats = train.select_dtypes(include=['int64', 'float64']).columns.tolist()
categorical_feats = train.select_dtypes(include=['object']).columns.tolist()

결측치 30% 이상인 변수 제거

missing_ratio = train.isnull().mean() # 각 컬럼별 결측치 비율
# 결측치가 30% 이상인 변수들만 추출
drop_cols = missing_ratio[missing_ratio > 0.3].index.tolist()
drop_cols

image.png

상관계수 높은 변수 추출

corr = train[numeric_feats].corr()['SalePrice'].abs().sort_values(ascending=False)
# 상관계수 0.3 이상

main_numeric = corr[corr > 0.3].index.tolist()
# 도메인 지식 기반 예시, From 탐색적 데이터 분석을 통해서 추출
main_categorical = ['Neighborhood', 'ExterQual', 'KitchenQual', 'BsmtQual', 'GarageType', 'SaleCondition']  

메인 특징 추출

main_features = list(set(main_numeric + main_categorical) - set(drop_cols))
main_features

image.png

image.png

데이터 분리 (target 제거)

X = train[main_features]
y = train['SalePrice']

numeric_feats = X.select_dtypes(include=['int64', 'float64']).columns.tolist()
categorical_feats = X.select_dtypes(include=['object']).columns.tolist()
categorical_feats

image.png