Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 決定係数 | 最適なモデルの選択
Pythonによる線形回帰

決定係数

メニューを表示するにはスワイプしてください

決定係数(R-squared)とは

すでにMSE、RMSE、MAEについて説明しました。これらはモデル同士の比較に役立ちますが、単一のスコアだけでは、その値がデータセットにとって「十分良い」かどうか判断しづらい場合があります。

決定係数(R-squared) は、モデルがターゲットの分散をどれだけ説明できているかを測定します。値は0から1の範囲で表され、解釈が容易です。

RSquaredFormulaSimple

問題は、説明分散をすぐに計算できないことです。しかし、未説明分散は計算できるため、上記の式を次のように変形します。

RSquaredFormula

総分散

総分散はターゲットの分散そのものであり、ターゲットの分散は統計学の標本分散の公式( はターゲットの平均)を使って計算できます。

TotalVariation

この例では、実際の値と目標平均値(オレンジ色の線)との差を二乗して合計し、それを m−1 で割ることで、合計分散が 11.07 となる。

TotalVariationGraph

未説明分散

次に、モデルが説明しない分散を計算します。予測が完全であれば、すべての点が回帰直線上に正確に位置します。同じ分散の公式を使用しますが、 の代わりに予測値を使用します。

未説明変動

以下は可視化を用いた例です。

UnexplainedVariationGraph

これでR二乗値を計算するために必要なすべてが揃いました。

R2Example

R二乗値は0.92であり、1に近いため、優れたモデルであることを示しています。もう1つのモデルについてもR二乗値を計算します。

R2Example2

このモデルはデータに対してややアンダーフィットしているため、R二乗値は低くなっています。

PythonにおけるR二乗値

sm.OLSクラスはR二乗値を自動的に計算します。summary()テーブルで確認できます。

サマリー

R二乗値は0から1の範囲で、高いほど良い(ただしモデルが過学習していない場合)。summary()sm.OLS出力にはR二乗スコアが含まれています。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

決定係数

決定係数(R-squared)とは

すでにMSE、RMSE、MAEについて説明しました。これらはモデル同士の比較に役立ちますが、単一のスコアだけでは、その値がデータセットにとって「十分良い」かどうか判断しづらい場合があります。

決定係数(R-squared) は、モデルがターゲットの分散をどれだけ説明できているかを測定します。値は0から1の範囲で表され、解釈が容易です。

RSquaredFormulaSimple

問題は、説明分散をすぐに計算できないことです。しかし、未説明分散は計算できるため、上記の式を次のように変形します。

RSquaredFormula

総分散

総分散はターゲットの分散そのものであり、ターゲットの分散は統計学の標本分散の公式( はターゲットの平均)を使って計算できます。

TotalVariation

この例では、実際の値と目標平均値(オレンジ色の線)との差を二乗して合計し、それを m−1 で割ることで、合計分散が 11.07 となる。

TotalVariationGraph

未説明分散

次に、モデルが説明しない分散を計算します。予測が完全であれば、すべての点が回帰直線上に正確に位置します。同じ分散の公式を使用しますが、 の代わりに予測値を使用します。

未説明変動

以下は可視化を用いた例です。

UnexplainedVariationGraph

これでR二乗値を計算するために必要なすべてが揃いました。

R2Example

R二乗値は0.92であり、1に近いため、優れたモデルであることを示しています。もう1つのモデルについてもR二乗値を計算します。

R2Example2

このモデルはデータに対してややアンダーフィットしているため、R二乗値は低くなっています。

PythonにおけるR二乗値

sm.OLSクラスはR二乗値を自動的に計算します。summary()テーブルで確認できます。

サマリー

R二乗値は0から1の範囲で、高いほど良い(ただしモデルが過学習していない場合)。summary()sm.OLS出力にはR二乗スコアが含まれています。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  3
some-alt