回帰
#機械学習
#データ分析
#統計学
教師あり学習
データの傾向を見ることが目的
データが可能な限り重なるように線を引く
各点との誤差が最も少ない線を引く
データに最もフィットする線を引くこと
これにより、このXの値ならば、このYの値になるであろう、みたいなことが分かる
回帰という言葉が表すもの
誤差がなければこの線に戻ってくるよ!のようなニュアンス
例)
過去の株価から、明日の株価を予測する
今日の気温から、ドリンクの売り上げを予測する
回帰式
Y =a + bX
Yは目的変数
Xは説明変数
aは切片(または定数項)
X がゼロのときにY の予測値がどれくらいであるかを示す
bは回帰係数(または傾き)
X の値が一単位変化した場合Y の予測値がどれくらい変化するかを示す
具体例
ある都市の住宅価格を予測するために、住宅の広さ(X)と住宅価格(Y)のデータを持っているとする
回帰分析を行い、得られた回帰式が以下のようであったとする
住宅価格 = 100,000 + 500 × 広さ
この回帰式からわかることは、
住宅価格(Y)が広さ(X)に依存しており、広さが1単位増加するごとに住宅価格が500ドル増加するということ
また、切片が100,000ドルであるため、広さがゼロの場合でも住宅価格は100,000ドルと予測される
予測性能評価
決定系数
予備知識を必要とせずに、値の大小のみで予測性能を評価する
0〜1の間の値を取り、値が大きくなるほど、予測値と実測値の誤差が少ない計算式であることを意味する
一般的に0.8以上であれば、予測性能が高くて良い計算式と言われる
scikit-learnの回帰モデルのscoreメソッドは、この係数を返すようになっている
平均2乗誤差(MSE)
値が小さいほど、予測性能が良い
あくまで誤差の話なので、0に近いほど誤差がないということ
目的に対して誤差が大きいのか小さいのかを考えて評価する必要がある
そのデータに対する専門的な知識が必要
ある項目の誤差が1000だった時に、その1000は大きいのか小さいのか、判断する必要がある
差分を2乗したデータの平均値
予測結果と実際の差分を計算して、それぞれを2乗した平均値
誤差を2乗するため外れ値の影響を受けやすい
2乗平均平方根誤差(RMSE)
平均2乗誤差が、解釈しずらいため、平方根を利用したこの方法がよく用いられる
RMSE = √MSE
ただし、外れ値の影響を受けやすい
平均絶対誤差(MAE)
値が小さいほど、予測性能が良い
あくまで誤差の話なので、0に近いほど誤差がないということ
目的に対して誤差が大きいのか小さいのかを考えて評価する必要がある
そのデータに対する専門的な知識が必要
ある項目の誤差が1000だった時に、その1000は大きいのか小さいのか、判断する必要がある
差分の絶対値の平均値
予測結果と実際の差分を計算して、その絶対値を求める
それらの絶対値の平均
プラスかマイナスかで、場合分けが必要なので少し複雑
ただプログラム的には絶対値を出すことは難しくないので、そこまで複雑ではない?
アルゴリズム
線系回帰
SVC(サポートベクター回帰)
リッジ回帰
ラッソ回帰
回帰木