みなさんこんにちは!
とりあえず外れ値のようなものを外す場合、よく行うのが標準偏差を用いた処理かと思います。
検索してみると長いコードが多いので、短いコードを紹介します。
Pythonコード
from scipy import stats
import pandas as pd
# 1標準偏差以内に絞り込む例
df = df[abs(stats.zscore(df["対象カラム名"])) < 1]
±1標準偏差(1σ)での除外例です。他にも、2か3を用いる場合が多いです。
まとめ
±1標準偏差離れているからといって外れ値とは限らないです。
そもそも正規分布をしていない場合は使う意味はないです。
外れ値かどうかはデータの意味を理解して慎重に検討しましょう。
また、外れ値を外すとRMSEは下がることが多いですが、それはデータのとる値の範囲が狭くなったが故に値が小さくなっただけで、モデルの未知のデータへの汎化性能が良くなったことを必ずしも示していません。
注意しましょう!
それでは!
コメント