按百分比移除离群值
为了避免少量数据对结果产生过度负面影响,可以从该列中移除一定百分比的最大值和/或最小值。具体做法是先找到相应的分位数,然后用布尔掩码据此裁剪数据。如果您担心数据集中最高的那些值会干扰分析,这种方法尤其有用。需要注意的是,即使数据中没有离群值,这种方法仍然会从数据集中移除相同的前 N% 数据。
本练习是课程的一部分
Python 中的机器学习特征工程
练习说明
- 计算
ConvertedSalary列的第 95 分位数。 - 裁剪
so_numeric_df,仅保留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()