로그 변환
이전 연습 문제에서는 데이터를 선형으로 스케일링했기 때문에 데이터의 분포 모양에는 영향을 주지 않았어요. 데이터가 정규분포(또는 정규분포에 가깝게)한다고 가정할 수 있을 때에는 이 방법이 매우 잘 작동합니다. 많은 Machine Learning 모델이 이 가정을 사용하죠. 예를 들어 한 집단의 키나 몸무게처럼 정규성에 잘 부합하는 데이터도 있지만, 현실 세계의 많은 변수는 이런 패턴을 따르지 않기도 합니다. 예를 들어 임금이나 인구의 나이 등이 그렇죠. 이번 연습에서는 so_numeric_df DataFrame의 ConvertedSalary 열에 로그 변환을 적용해 보겠습니다. 이 열은 값이 낮은 구간에 데이터가 많이 몰려 있는 반면, 매우 큰 값도 포함하고 있어요. 이런 분포는 오른쪽 꼬리가 긴 분포라고 합니다.
이 연습은 강의의 일부입니다
Python으로 배우는 Machine Learning 특성 공학
연습 안내
sklearn의preprocessing모듈에서PowerTransformer를 임포트하세요.PowerTransformer()를pow_trans로 인스턴스화하세요.so_numeric_df의ConvertedSalary열에PowerTransformer를 맞추세요.- 방금 맞춘 스케일러로 같은 열을 변환하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import PowerTransformer
from sklearn.preprocessing import ____
# Instantiate PowerTransformer
pow_trans = ____
# Train the transform on the data
____
# Apply the power transform to the data
so_numeric_df['ConvertedSalary_LG'] = ____(so_numeric_df[['ConvertedSalary']])
# Plot the data before and after the transformation
so_numeric_df[['ConvertedSalary', 'ConvertedSalary_LG']].hist()
plt.show()