以百分比為基礎的離群值移除
為了避免少量資料對結果產生過度不利的影響,一種作法是移除欄位中一定百分比的最大值與/或最小值。具體做法是先找到相應的分位數,然後使用遮罩(mask)依此截取資料。當你擔心資料集中最高的那些值應該被排除時,這個方法特別實用。使用此方法時要記得,即使資料中沒有離群值,這仍然會從資料集中移除相同的前 N% 資料。
本練習屬於課程
Feature Engineering for Machine Learning in Python
練習說明
- 找出
ConvertedSalary欄位的第 95 分位數。 - 將
so_numeric_dfDataFrame 截取為僅保留ConvertedSalary小於其第 95 分位數的所有列。 - 繪製
so_numeric_df[['ConvertedSalary']]的直方圖。 - 繪製
trimmed_df[['ConvertedSalary']]的直方圖。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Find the 95th quantile
quantile = so_numeric_df['ConvertedSalary'].____(____)
# Trim the outliers
trimmed_df = so_numeric_df[so_numeric_df['ConvertedSalary'] < ____]
# The original histogram
so_numeric_df[['ConvertedSalary']].____()
plt.show()
plt.clf()
# The trimmed histogram
trimmed_df[['ConvertedSalary']].____()
plt.show()