新卒1年目の技術に関する備忘録

自主学習で困ったこと、学んだことをまとめています

単変量非線型変換

log, sin, cosなどの数学関数を用いることでモデルの精度をあげることができる。

下図のように、値の小さいものが多く、値の大きいものが少ないデータについて考える。

f:id:logz-developers:20181228230238p:plain

まずはそのままのデータで予測をしてみる。

モデルはリッジ回帰を用いる。

 

R^2のスコアは62であまり高くない。

f:id:logz-developers:20181228230344p:plain

 

データを対数変換する。

f:id:logz-developers:20181228230441p:plain

 

変換後の分布は非対称性が少なくなった。

f:id:logz-developers:20181228230613p:plain

 

対数変換したデータで予測をすると精度がはるかに良くなった。

f:id:logz-developers:20181228230619p:plain

 

カウントデータ(注文数など)の予測は一般的なタスクだが、log(y + 1)で変換すると上手くいくことも多い。