R二乗
メニューを表示するにはスワイプしてください
R-squaredとは
すでにMSE、RMSE、MAEについて説明しました。これらはモデルの比較に役立ちますが、単一のスコアだけでは文脈がないと評価が難しい場合があります。その値がデータセットにとって「十分良い」かどうか判断できないことがあります。
R-squaredは、モデルがターゲットの分散をどれだけ説明できているかを測定することでこの問題を解決します。値は0から1の範囲であり、解釈が容易です。
問題は、説明された分散をすぐに計算できないことです。しかし、説明されていない分散は計算できるため、上記の式を次のように変形します。
総分散
総分散はターゲットの分散そのものであり、ターゲットの分散は統計学の標本分散の公式を使って計算できる(ȳ はターゲットの平均値)。
例では、実際の値とターゲット平均(オレンジ色の線)との差を二乗して合計し、それを m−1 で割ることで、総分散は 11.07 となる。
未説明分散
次に、モデルが説明できない分散を計算する。予測が完全であれば、すべての点が回帰直線上に正確に位置する。同じ分散の公式を使うが、ȳ の代わりに予測値を用いる。
以下は可視化を用いた例です。
これでR二乗値を計算するためのすべてが揃いました。
R二乗値は0.92となり、1に近いため優れたモデルです。もう1つのモデルについてもR二乗値を計算します。
R二乗値は、モデルがデータにやや適合不足しているため低くなっています。
PythonにおけるR二乗値
sm.OLSクラスはR二乗値を自動的に計算します。summary()テーブルで確認できます。
R二乗値は0から1の範囲で、値が高いほど良い(ただしモデルが過学習していない場合)。summary()のsm.OLS出力にはR二乗スコアが含まれています。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください