キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
Qiitaクリスマスアドベントカレンダー実施中

精度指標のR2乗について

Highlighted
コミュニティチーム
コミュニティチーム

DataRobotでの精度指標のR2乗についてどのような定義となっているのでしょうか

0 件の賞賛
4件の返信4
Highlighted
データサイエンティスト
データサイエンティスト
お世話になっております。
DataRobotにおけるR2乗の計算方法は
1 - (sum of squared error) / (sum of squares total)」です
 
r2 = (1-u/v), u = sum((act - pred)**2), v = sum( (act - mean(act))**2 )
となり、vはact(実測値)のみに基づくのに対して、uはpred(予測値)が含まれています。
結果、非常に精度が悪い時には負になり得る計算式になっています。
 
また、DataRobotではアウトオブサンプルデータが計算されますので、
特徴量を追加すると値が増加するなどの従来の批評が緩和されます。
Highlighted
リニアアクチュエータ

最近お気に入りの解釈(多少、乱暴な議論ですが、、)があったので、突然失礼します。
皆さん中学校で勉強する

 y = ax + b

ですが、データ(点)に対し当てはまりのいい(線)となるよう、a,bを決める作業が線形回帰における学習です。

で、仮に、

  • bだけ自由(aは0で固定)に決められるとすると、
    • ①のように、b=平均となる線を引くことになると思います。
  • 一方で、aもbも自由に決めていいとすると、
    • ②のように、データに対して当てはまりが良いようにa(傾き)とb(切片)を決めると思います。

実を言うと、R2決定係数の式は、ざっくりいうと(2乗とか忘れると)

R2決定係数 = 1 - (②の破線の合計/①の破線の合計

なんです。

つまり解釈してみると、

  • 回帰で、横一直線(傾き0)しか引けない状況に対して、
  • 傾きを自由に設定できる場合に、どれだけ当てはまりが良くなるか?

を表現しています。

変な言い方ですが、傾き(a)のおかげでどれだけ予測精度が上がったか?(傾きaにどれだけ価値があるか)を表現しているとおぼえていただければ良いと思います。

#傾きも、切片も自由に決められる。素晴らしいことですね!

r2.PNG

 

Highlighted
データサイエンティスト
データサイエンティスト

@ShinichiroOhno 

これは非常に直感的で分かりやすい概念ですね!ありがとうございます!

 

0 件の賞賛
Highlighted
リニアアクチュエータ

@Isao 
ありがとうございます!(横から失礼しました。。)
これでイメージを掴んでもらい、厳密に理解したい方は、IsaoさんPostの数式を見ていただければ、より理解いただけるかと。

0 件の賞賛