1. 변환 없이 사용
2. 평균값으로 대체
3. 로그 변환
4. 이진화
5. 구간화(카테고리화)
- dti - 전처리 X
- loan_amnt - 전처리 X
- fico_range_high, fico_range_low → fico
- 평균값으로 대체
python code
- annual_inc 로그 변환 → annual_inc_log
- NaN 2개 행 제거
python code로그변환 전후 시각화
- open_acc 로그 변환 → open_acc_log
- NaN 14개 행 제거(정상상환 13, 연체/부실 1)
로그변환 전후 시각화
- tax_liens 이진화 → tax_liens_bin
- NaN 70개 행 제거(정상상환 64, 연체/부실 6)
- 전체 데이터의 97%가 0의 값을 가지므로 이진화
python code
- revol_bal 로그 변환 → revol_bal_log
- 참고한 프로젝트에서는 revol_bal 변수를 이진화했다고 하는데, 기준이 모호하므로 로그 변환으로 변경
로그변환 전후 시각화
- pub_rec_bankruptcies 이진화 - pub_rec_bankruptcies_bin
- NaN 779개 행은 모두 0으로 대체 후, 더미 변수 추가
- have_info_pub_rec 이라는 더미 변수 추가
- 전체 데이터의 87%가 0의 값을 가지므로 이진화
python coce - NaN 779개 행은 모두 0으로 대체 후, 더미 변수 추가
- collections_12_mths_ex_med 이진화 → collections_12_mths_ex_med_bin
- NaN 22개 행 제거(정상상환 14, 연체/부실 8)
- 전체 데이터의 98%가 0의 값을 가지므로 이진화
- delinq_2yrs 이진화 → delinq_2yrs_bin
- 전체 데이터의 81%가 0의 값을 가지므로 이진화
- pub_rec 이진화 → pub_rec_bin
- 전체 데이터의 83.4%가 0의 값을 가지므로 이진화
- revol_util → revol_util_log
참고한 프로젝트에 전처리 방법 없음
- 350 이상인 이상치 한 행 제거 후 로그 변환시각화
- 결측치 756개 직접 계산해서 대체
revol_util 계산식 = (revol_bal + total_rev_hi_lim) * 100
- 350 이상인 이상치 한 행 제거 후 로그 변환
- total_acc 로그변환 → total_acc_log로그 변환 시각화
- inq_last_6mths → inq_last_6mths_cat원래 값 분포0, 1, 2 회 이상 총 3개 그룹으로 변경python code
- term
- emp_length
- home_ownership → home_ownership_simple
- ANY, OTHER, NONE 을 OTHER 로 묶음
- ANY, OTHER, NONE 을 OTHER 로 묶음
- purpose
- addr_state
- mths_since_last_delinq → mths_since_last_delinq_cat
- 원래 분포
- 카테고리화 후
- mths_since_last_major_derog → mths_since_last_major_derog_cat
- 8개의 카테고리로 묶음python code카테고리화한 결과
- 8개의 카테고리로 묶음
- mths_since_last_record
- 8개의 카테고리로 묶음python code카테고리화한 결과
- 8개의 카테고리로 묶음
- mths_since_rcnt_il
- 4개의 카테고리로 묶음
- 4개의 카테고리로 묶음
- mths_since_recent_bc
- 5개의 카테고리로 묶음python code
- 5개의 카테고리로 묶음
- mths_since_recent_bc_dlq
- 7개의 카테고리로 묵음
- 7개의 카테고리로 묵음
- mths_since_recent_inq원래 값 분포
- mths_since_recent_revol_delinq원래 값 분포
- 7개의 카테고리로 묶음
- 7개의 카테고리로 묶음