割合に基づく外れ値の除去
データのごく一部が分析に過度な悪影響を与えないようにする一つの方法は、列に含まれる最も大きい値または最も小さい値のうち、一定の割合を取り除くことです。これは、該当する分位点を求め、マスクを使ってデータをトリミングすることで実現できます。特に、データセット中の最大値付近を避けたい場合に有効です。この方法を使うときは、外れ値が存在しない場合でも、データセットから上位 N パーセントが必ず削除される点を忘れないでください。
この演習はコースの一部です
Python で学ぶ Machine Learning のための特徴量エンジニアリング
演習の手順
ConvertedSalary列の 95 分位点を求めます。ConvertedSalaryがその 95 分位点より小さい行のみを残すように、so_numeric_dfDataFrame をトリミングします。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()