이상치 처리하기
이전 연습 문제에서는 이상치를 시각화하는 방법이 Machine Learning 면접에서 유용할 수 있다는 점을 배웠어요. 이상치를 처리하는 또 다른 편리한 방법은 평균에서 약 +/-3 표준편차 떨어진 값을 기준으로 임계값을 제시하는 Z-점수(Z-score)를 계산하는 것이에요.
이번 연습 문제에서는 scipy.stats 모듈을 사용해 stats.zscore() 함수로 Z-점수를 계산하고, Winsorizing 기법을 적용해 이상치를 대체하는 mstats.winsorize() 함수를 사용해 볼 거예요.
영상 강의에서 배운 것처럼, IQR의 1.5배보다 위나 아래에 있는 점들은 잠재적 이상치로 의심해야 해요. 이 연습 문제의 마지막 단계에서 사용할 그 값은 2120이에요.
필요한 패키지는 이미 임포트되어 있으며, loan_data의 수치형 컬럼과 범주형 컬럼은 각각 numeric_cols와 categoric_cols로 부분 집합화되어 저장되어 있어요.

이 연습은 강의의 일부입니다
Python으로 연습하는 Machine Learning 면접 질문
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Print: before dropping
print(numeric_cols.mean())
print(numeric_cols.median())
print(numeric_cols.max())
# Create index of rows to keep
idx = (np.____(stats.____(____)) < 3).all(axis=1)
# Concatenate numeric and categoric subsets
ld_out_drop = pd.concat([numeric_cols.loc[____], categoric_cols.loc[____]], axis=1)
# Print: after dropping
print(ld_out_drop.mean())
print(ld_out_drop.median())
print(ld_out_drop.max())