4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

機械学習勉強記録 外れ値の除去 3σ法

Last updated at Posted at 2021-06-14

1 外れ値とは

外れ値は、統計学において、他の値から大きく外れた値のことです。
モデルに学習させるうえで、精度を下げてしまう要因になるので、学習前に除去しておくことで、モデルの評価値が向上します。

2 3σ法

今回は、外れ値を除去するのに3σ法を使う方法を紹介します。
3σ法では、平均と標準偏差を使って、外れ値を除去します。

$\mu$ 平均
$\sigma$ 標準偏差
としたとき、

\mu-3\sigma \leq x \leq \mu+3\sigma

という数式です。

# 平均値
mu = df['A'].mean()
# 標準偏差
sigma = df['A'].std()
# 3σ法の中身を取得
df2 = df[(mu - 3 * sigma <= df['A']) & (df['A'] <= mu + 3 * sigma)]

このdf2が上記の数式でいうxにあたります。
これで外れ値を除去することができました。

2.1 対数変換

対数変換は、きれいに正規分布していないデータを、なんとか無理やり正規分布に近似させたい時に使います。
絶対に正規分布に近づくというわけではないのですが、とりあえず試してみて損はない方法です。
例えば3σ法の前に使うとしたら、コードはこのようになります。

# 対数変換
logA = np.log1p(df['A'])
# 平均値
mu = logA.mean()
# 標準偏差
sigma = logA.std()
# 3σ法の中身を取得
df3 = df[(mu - 3 * sigma <= logA) & (logA <= mu + 3 * sigma)]
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?