수동 Ordinal Encoding
df['person_education'].replace({
'High School': 0,
'Associate': 1,
'Bachelor': 2,
'Master': 3,
'Doctorate':4
}, inplace=True)
수동 mapping
gender_mapping = {'male': 0, 'female': 1}
home_ownership_mapping = {'RENT': 0, 'OWN': 1, 'MORTGAGE': 2, 'OTHER': 3}
loan_intent_mapping = {'PERSONAL': 0, 'EDUCATION': 1, 'MEDICAL': 2, 'VENTURE': 3, 'HOMEIMPROVEMENT': 4, 'DEBTCONSOLIDATION': 5}
previous_loan_defaults_mapping = {'No': 0, 'Yes': 1}
df['person_gender'] = df['person_gender'].map(gender_mapping)
df['person_home_ownership'] = df['person_home_ownership'].map(home_ownership_mapping)
df['loan_intent'] = df['loan_intent'].map(loan_intent_mapping)
df['previous_loan_defaults_on_file'] = df['previous_loan_defaults_on_file'].map(previous_loan_defaults_mapping)
결측값 확인
이상치 결측값으로 변경
from feature_engine.outliers import OutlierTrimmer
trimmer = OutlierTrimmer(capping_method='iqr', tail='right',
variables= ['person_age', 'person_gender', 'person_education', 'person_income',
'person_emp_exp', 'person_home_ownership', 'loan_amnt',
'loan_intent', 'loan_int_rate', 'loan_percent_income',
'cb_person_cred_hist_length', 'credit_score',
'previous_loan_defaults_on_file'])
df2 = trimmer.fit_transform(df)
상관관계 확인
대출 승인 여부와 상관관계를 보이는 것만 남기기 [ 0.1 이상 ]
['person_income', 'person_home_ownership', 'loan_int_rate', 'loan_percent_income', 'previous_loan_defaults_on_file']
데이터 분할 [ 8 : 2 로 Train / Test 분리 ]
X_train.shape, y_train.shape, X_test.shape, y_test.shape
((36000, 5), (36000,), (9000, 5), (9000,))
스케일러 [ minMaxScaler, StandardScaler ]
mms = MinMaxScaler()
ss = StandardScaler()
X_train[skewed_cols] = ss.fit_transform(X_train[skewed_cols])
X_test[skewed_cols] = ss.transform(X_test[skewed_cols])
X_train[norm_cols] = mms.fit_transform(X_train[norm_cols])
X_test[norm_cols] = mms.transform(X_test[norm_cols])
위에서 이상치로 보이는 것을 feature_engine.outliers의 OutlierTrimmer를 이용해 NaN으로 변경해서 StandardScaler를 사용했으며, 만약 이상치가 있는 상태로 분석을 진행하려면 RobustScaler도 고려할 만 하다고 생각한다.
또한 norm_cols에 담긴 대출 이자율은 개인마다 편차가 크기에 MinMaxScaler를 이용해 처리를 해줬다.
'개인프로젝트 > 대출 승인 여부 예측 모델' 카테고리의 다른 글
대출 승인 여부 예측 모델 개발 ( 모델링 및 성능비교 ) (0) | 2025.08.24 |
---|---|
대출 승인 여부 예측 모델 개발 ( 데이터 확인 및 탐색 ) (0) | 2025.08.22 |
대출 승인 여부 예측 모델 개발 ( 데이터 소개 ) (0) | 2025.08.21 |