통계적 이상치 제거
상위 N%의 데이터를 제거하는 방법은 매우 튀는 점들을 제거하는 데 유용하지만, 데이터가 올바르더라도 항상 같은 비율의 점을 제거한다는 단점이 있습니다. 널리 쓰이는 대안은 평균에서 표준편차의 3배보다 멀리 떨어진 데이터를 제거하는 것입니다. 이를 구현하려면 먼저 관련 열의 평균과 표준편차를 계산해 상한과 하한을 구하고, 이 범위를 DataFrame에 마스크로 적용하면 됩니다. 이 방법은 나머지와 진짜로 다른 데이터만 제거하도록 보장하며, 데이터가 서로 가깝게 모여 있을수록 제거되는 점의 수가 적어집니다.
이 연습은 강의의 일부입니다
Python으로 배우는 Machine Learning 특성 공학
연습 안내
so_numeric_df의ConvertedSalary열에 대해 표준편차와 평균을 계산하세요.- 평균에서 양방향으로 표준편차의 3배만큼 떨어진 값을 하한과 상한으로 계산하세요.
lower와upper범위 안에ConvertedSalary가 있는 모든 행만 남기도록so_numeric_dfDataFrame을 잘라내세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Find the mean and standard dev
std = so_numeric_df['ConvertedSalary'].____
mean = so_numeric_df['ConvertedSalary'].____
# Calculate the cutoff
cut_off = std * 3
lower, upper = mean - cut_off, ____
# Trim the outliers
trimmed_df = so_numeric_df[(so_numeric_df['ConvertedSalary'] < ____) \
& (so_numeric_df['ConvertedSalary'] > ____)]
# The trimmed box plot
trimmed_df[['ConvertedSalary']].boxplot()
plt.show()