설득이 2024. 2. 7. 22:11

오늘 한 일

1. 전처리 방식 결정하기

1) 이상치 제거

부채_대비_소득_비율, 연간소득, 총상환원금, 총상환이자, 총계좌수 -> 4분위수 사용해서 이상치 제거하기

columns_to_clean = ['부채_대비_소득_비율', '연간소득', '총상환원금', '총상환이자', '총계좌수']

for col in columns_to_clean:
    Q1 = df[col].quantile(0.25)
    Q3 = df[col].quantile(0.75)
    IQR = Q3 - Q1
    lower_limit = Q1 - 1.5 * IQR
    upper_limit = Q3 + 1.5 * IQR
    cleaned_df = df[(df[col] >= lower_limit) & (df[col] <= upper_limit)]

    cleaned_df.info()

 

2) 주택소유상태 : Any값 확인하고 제거

# '주택소유상태' 열에서 값이 'any'인 행을 삭제합니다.
df2 = df2.drop(df[df['주택소유상태'] == 'any'].index)

# 결과를 확인합니다.
df2.info()

 

3) 히스토그램으로 정규분포 확인하기

plt.figure(figsize=(10, 5))
sns.histplot(df2['부채_대비_소득_비율'], kde=True, color='blue')
plt.title('Histogram')

 

4) 범주형 인코딩하기

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
le = LabelEncoder()
oe = OneHotEncoder()