【1行】Pandasで標準偏差を使った外れ値除外

スポンサーリンク
Python

みなさんこんにちは!

とりあえず外れ値のようなものを外す場合、よく行うのが標準偏差を用いた処理かと思います。

検索してみると長いコードが多いので、短いコードを紹介します。

Pythonコード

from scipy import stats
import pandas as pd

# 1標準偏差以内に絞り込む例
df = df[abs(stats.zscore(df["対象カラム名"])) < 1]

±1標準偏差(1σ)での除外例です。他にも、2か3を用いる場合が多いです。

まとめ

±1標準偏差離れているからといって外れ値とは限らないです。
そもそも正規分布をしていない場合は使う意味はないです。

外れ値かどうかはデータの意味を理解して慎重に検討しましょう。

また、外れ値を外すとRMSEは下がることが多いですが、それはデータのとる値の範囲が狭くなったが故に値が小さくなっただけで、モデルの未知のデータへの汎化性能が良くなったことを必ずしも示していません。
注意しましょう!

それでは!

コメント