PyOD で修正 z スコアを使う
いよいよ外れ値検出に pyod を使ってみましょう。ここでは pyod の MAD 推定器を使って、修正 z スコアを活用します。MAD は内部で median_abs_deviation 関数を使用しているため、前の手順を繰り返す必要はありません。
MAD 推定器はすでに pyod.models.mad から読み込まれており、データは prices として利用可能です。
この演習はコースの一部です
Anomaly Detection in Python
演習の手順
thresholdを 3.5 にしてMAD()を初期化します。pricesを 2 次元にリシェイプします。madを同時に学習して予測し、pricesに対するインライヤー/アウトライヤーのラベルを生成します。- アウトライヤーは 1 で表されるので、
labelsからそれらのみを抽出します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize with a threshold of 3.5
mad = ____(____=____)
# Reshape prices to make it 2D
prices_reshaped = ____.____(-1, 1)
# Fit and predict outlier labels on prices_reshaped
labels = ____
# Filter for outliers
outliers = ____[____ == ____]
print(len(outliers))