web-dev-qa-db-ja.com

Scikit LearnのR2値はどのように計算されますか?

Scikit learn(metrics.r2_score())によって返されるR ^ 2値は負になる可能性があります。 docs と言う:

「他のほとんどのスコアとは異なり、R²スコアは負になる場合があります(実際にはRの2乗である必要はありません)。」

ただし、R ^ 2の ウィキペディアの記事 には、R(2乗ではない)量についての言及はありません。おそらく、平方差の代わりに絶対差を使用します。本当に分からない

17
joeally

Scikit learnのR^2は、本質的に 決定係数に関するウィキペディアの記事 (「最も一般的な定義」のgrep)で説明されているものと同じです。 1 - residual sum of square / total sum of squaresです。

従来の統計設定と通常機械学習で行うこととの大きな違いは、機械学習では目に見えないデータのスコアを評価するため、[0,1]外の結果につながる可能性があることです。モデルの適合に使用したのと同じデータにR^2を適用すると、[0, 1]内に配置されます

こちらもご覧ください 非常によく似た質問

30
eickenberg

R ^ 2 = 1-RSS/TSSであるため、RSS/TSS> 1の唯一のケースは、モデルが想定される最悪のモデル(絶対平均モデル)よりもさらに悪い場合に発生します。

ここで、RSS =実際の値(yi)と予測値(yi ^)の差の2乗の合計、TSS =実際の値(yi)と平均値の差の2乗の合計(回帰を適用する前)。したがって、TSSが最良の(実際の)モデルを表し、RSSが最良のモデルと最悪の絶対平均モデルの間にあると想像できます。この場合、RSS/TSS <1になります。モデルが最悪の平均よりもさらに悪い場合次に、モデルの場合、RSS> TSS(実際の観測値と平均値の差<予測値と実際の観測値の差があるため)。

視覚的表現によるより良い直感については、ここをチェックしてください: https://ragrawal.wordpress.com/2017/05/06/intuition-behind-r2-and-other-regression-evaluation-metrics/

4
ManiS