탐색적 데이터 분석
결측치 확인
trian.isnull().sum().sort_values(ascending = False).head(10)

수치형 / 범주형 변수 구분
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

상관계수 높은 변수 추출
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


데이터 분리 (target 제거)
- train 데이터는 target을 포함한 전체 데이터 셋
- X 데이터는 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
