Loại bỏ ngoại lệ theo thống kê
Việc loại bỏ N% điểm dữ liệu cao nhất hữu ích để đảm bảo các điểm nhiễu bị loại đi, nhưng nhược điểm là luôn loại cùng một tỷ lệ điểm, ngay cả khi dữ liệu là hợp lệ. Một cách thay thế thường dùng là loại các điểm nằm xa hơn ba độ lệch chuẩn so với trung bình. Bạn có thể thực hiện bằng cách trước tiên tính trung bình và độ lệch chuẩn của cột liên quan để tìm ra ngưỡng trên và dưới, rồi áp dụng các ngưỡng này làm mặt nạ (mask) cho DataFrame. Cách này đảm bảo chỉ loại dữ liệu thật sự khác biệt so với phần còn lại, và sẽ loại ít điểm hơn nếu dữ liệu tập trung sát nhau.
Bài tập này là một phần của khóa học
Feature Engineering cho Machine Learning bằng Python
Hướng dẫn bài tập
- Tính độ lệch chuẩn và giá trị trung bình của cột
ConvertedSalarytrongso_numeric_df. - Tính ngưỡng trên và ngưỡng dưới là ba độ lệch chuẩn cách xa giá trị trung bình theo cả hai phía.
- Cắt lọc DataFrame
so_numeric_dfđể giữ lại tất cả các hàng màConvertedSalarynằm trong khoảng giữalowervàupper.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()