R2决定系数(R2 得分)详细计算

定义

      R2决定系数是对线性模型评估的一种评价指标,其值最大为1,最小为0,当值越接近于1,则说明模型越好;值越接近于0,则模型越差。

计算过程

使用

y

i

{\text{y}}_i

yi​表示真实的观测值,使用

y

_

\overset{\_}{\mathop y}

y_​表示真实观测值的平均值,使用

y

i

^

\overset{\hat{}}{\mathop {y_i}}

yi​^​表示预测值,于是就产生下以下的指标:

  • 回归平方和(SSR)

    S

    S

    R

    =

    i

    =

    1

    n

    (

    y

    i

    ^

    y

    )

    2

    SSR = \sum\limits_{i = 1}^n {(\overset{\hat{}}{\mathop {{y_i}}} – \overset{ – }{\mathop y} } {)^2}

    SSR=i=1∑n​(yi​^​−y−​)2估计值与平均值的误差,反映自变量与因变量之间的相关程度的偏差平方和

  • 残差平方和(SSE)

    S

    S

    E

    =

    i

    =

    1

    n

    (

    y

    i

    y

    i

    ^

    )

    2

    SSE = \sum\limits_{i = 1}^n {(\overset{{}}{\mathop {{y_i}}} – \overset{\hat{}}{\mathop {{y_i}}} } {)^2}

    SSE=i=1∑n​(yi​​−yi​^​)2即估计值与真实值的误差,反映模型拟合程度

  • 总离差平方和(SST)

    S

    S

    T

    =

    S

    S

    R

    +

    S

    S

    E

    =

    i

    =

    1

    n

    (

    y

    i

    y

    _

    )

    2

    SST = SSR + SSE = \sum\limits_{i = 1}^n {(\overset{{}}{\mathop {{y_i}}} – \overset{\_}{\mathop {{y_{}}}} } {)^2}

    SST=SSR+SSE=i=1∑n​(yi​​−y​_​)2即平均值和真实值之间的误差,反映与数学期望的偏离程度

  • R2 score ,即决定系数

    反映因变量的全部变异能通过回归关系被变量解释的比例,计算公式:

    R

    2

    =

    1

    S

    S

    E

    SST

    {R^2} = 1 – \frac{{SSE}}{{{\text{SST}}}}

    R2=1−SSTSSE​ 即

    R

    2

    =

    1

    i

    =

    1

    n

    (

    y

    i

    y

    i

    ^

    )

    2

    i

    =

    1

    n

    (

    y

    i

    y

    _

    )

    2

    {R^2} = 1 – \frac{{\sum\nolimits_{i = 1}^n {{{({y_i} – \overset{\hat{}}{\mathop {{y_i}}} )}^2}} }}{{\sum\nolimits_{i = 1}^n {{{({y_i} – \overset{\_}{\mathop {{y_{}}}} )}^2}} }}

    R2=1−∑i=1n​(yi​−y​_​)2∑i=1n​(yi​−yi​^​)2​进一步化简为:

    R

    2

    =

    1

    i

    (

    y

    i

    y

    ^

    i

    )

    2

    /

    n

    i

    (

    y

    i

    y

    _

    )

    2

    /

    n

    =

    1

    M

    S

    E

    V

    a

    r

    {R^2} = 1 – \frac{{\sum\limits_i {{{({y_i} – {{\overset{\hat {}}{\mathop y} }_i})}^2}/n} }}{{\sum\limits_i {{{({y_i} – \overset{\_}{\mathop y} )}^2}/n} }} = 1 – \frac{{MSE}}{{Var}}

    R2=1−i∑​(yi​−y_​)2/ni∑​(yi​−y^​i​)2/n​=1−VarMSE​如此一来,分子就变成了常用的评价指标,均方误差MSE,分母则变成了方差,对于

    R

    2

    {R^2}

    R2

           可以通俗的理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差

    若:

           R2 score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好

           R2 score = 0,此时分子等于分母,样本的每项预测值都等于均值

最后,是sklearn中的有关于模型评估的几个API:

import sklearn.metrics as sm  # 模型评估模块
# 拿到一组测试集模型进行模型评估
test_x = 测试变量数据集
test_y = 测试结果数据集

# 训练的模型,获取模型预测值
pred_test_y=model.predict(test_x)

# 平均绝对值误差 mae
print(sm.mean_absolute_error(test_y, pred_test_y))
# 平均平方误差:均方误差 mse
print(sm.mean_squared_error(test_y, pred_test_y))
# 中位数绝对偏差
print(sm.median_absolute_error(test_y, pred_test_y))
# r2_score
print(sm.r2_score(test_y,pred_test_y))

如有错误请联系作者改正,谢谢!

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/f163705488.html