QuantileTransformer を試す
標準化は z スコアと同じ落とし穴にはまりやすいです。どちらも平均と標準偏差を用いて計算するため、極端な値に非常に敏感です。
この問題を回避するには、分位点を使う QuantileTransformer を使うとよいです。分布の分位点は、外れ値の大きさにかかわらず同じままです。
データが正規分布に従う(ヒストグラムで確認できます)場合は StandardScaler を使うべきです。それ以外の分布では、QuantileTransformer のほうが適しています。
読み込まれている females データセットで練習します。matplotlib.pyplot は標準のエイリアス plt で読み込まれています。
この演習はコースの一部です
Anomaly Detection in Python
演習の手順
- 特徴量を正規分布に変換する
QuantileTransformer()をインスタンス化し、qtに代入します。 - 特徴量配列
Xに対してフィットして変換し、列名を保持します。 palmlength列のヒストグラムを描画します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from sklearn.preprocessing import QuantileTransformer
# Instantiate an instance that casts to normal
qt = ____
# Fit and transform the feature array
X.____ = ____
# Plot a histogram of palm length
plt.____(____, color='red')
plt.xlabel("Palm length")
plt.show()