시각화 하여 정규분포 여부를 확인 (피쳐 전처리 고민)
변수가 너무 많을 경우 결측치 요약을 확인한다.
train_null = train.isnull().sum()
train_sum = train_null[train_null > 0].sort_values(ascending=False)
train[['SalePrice_log1p_ss']].hist()
(1) 절대평가 (Equal Width Binning)
(1) 범주형 데이터를 수치형 데이터로 바꾼다.
(2) Ordinal Encoding은 0-N, One-Hot-Encoding은 0, 1
(3) fit 기준은 train으로 해준다.
(4) unknown 컬럼 트러블슈팅: (handle_unknown = 'ignore')
ohe = OneHotEncoder(handle_unknown = 'ignore')
train_ohe = ohe.fit_transform(train[["MSZoning", "Neighborhood"]]).toarray()
test_ohe = ohe.transform(test[['MSZoning', 'Neighborhood']])
pd.DataFrame(train_ohe, columns=ohe.get_feature_names_out())
변환 중 알수 없는 범주가 발생하면, 그 결과로 생성되는 원-핫 인코딩된 열이 종종 존재하는 범주에 매핑되는 경우가 있음. 이러한 컬럼은 자주 발생하지 않음.
----- 오후 수업 ------
(1) shape, head 등으로 데이터 컬럼과 수치에 대한 간략한 확인 필수.
(2) set(train.columns) - set(test.columns) = labelname (구하고자 하는 정답값, 종속변수)
(3) sns.displot(aspect): plotly의 width처럼 bin의 너비를 조정하는 파라미터.
(4) kde, rug
(5) 왜도(skewness)와 첨도(kurtosis)
print("왜도(Skewness):", train["SalePrice"].skew())
print("첨도(Kurtosis):", train["SalePrice"].kurtosis())