sklearn【R²】决定系数,原理及代码学习!

2024-05-29 1578阅读

一、R² 介绍

决定系数(Coefficient of Determination),又称R方,是衡量回归模型拟合优度的统计量,用来反映回归模型对样本数据的拟合程度。

具体计算步骤如下:

  1. 收集数据:首先需要收集自变量和因变量的观测数据,确保数据的准确性和完整性。
  2. 建立回归方程:根据收集到的数据,建立回归方程。回归方程的形式可以根据实际情况进行选择,常见的有线性回归、多项式回归等。
  3. 计算预测值:利用建立的回归方程,计算因变量的预测值。预测值可以通过代入自变量的观测值来计算。
  4. 计算残差:计算每个观测值的残差,即观测值与预测值之间的差异。残差可以用来评估回归模型的拟合优度。
  5. 计算SSE和SST:SSE是残差平方和,即所有观测值的残差平方的总和;SST是总平方和,即因变量的实际观测值与平均值的差的平方的总和。
  6. 计算决定系数:根据公式R² = 1 - SSE/SST,将SSE和SST代入公式,即可计算出决定系数R²。

决定系数R²能够量化模型对数据的拟合程度,有助于我们了解模型的预测能力并进行相应的改进。但需要注意的是,决定系数只是评估模型性能的一个指标,我们还需要综合考虑其他指标和实际情况来全面评估模型的性能。

其计算公式为:

R 2 = 1 − S S E / S S T R^2=1-SSE/SST R2=1−SSE/SST

其中:

  • SSE为残差平方和,表示回归模型的拟合误差。
  • SST为总平方和,表示总体数据的离散程度。

    R²的取值范围从0到1,越接近1表示模型对数据的拟合程度越好。

    残差平方和(SSE)

    残差平方和(Sum of Squared Errors,SSE)是回归模型评估中的一个重要指标,它表示模型预测值与实际观测值之间差异的平方和。残差平方和的计算公式如下:

    S S E = ∑ i = 1 n ( y i − y ^ i ) 2 SSE = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 SSE=∑i=1n​(yi​−y^​i​)2

    其中:

    • n n n 是样本点的数量。
    • y i y_i yi​ 是第 i i i 个样本点的实际观测值。
    • y ^ i \hat{y}_i y^​i​ 是模型对第 i i i 个样本点的预测值。
    • ( y i − y ^ i ) (y_i - \hat{y}_i) (yi​−y^​i​) 是第 i i i 个样本点的残差,即实际观测值与预测值之间的差异。

      残差平方和越小,说明模型的预测值与实际观测值越接近,模型的拟合效果越好。相反,如果残差平方和较大,则说明模型的预测值与实际观测值之间存在较大的偏差,模型的拟合效果较差。

      回归平方和(SSR)

      SSR(回归平方和,Sum of Squares for Regression)的计算方式基于模型预测值与因变量平均值之间的差异。SSR衡量了回归模型能够解释的因变量变异的程度。

      SSR的计算公式可以表示为:

      S S R = ∑ i = 1 n ( y ^ i − y ˉ i ) 2 SSR = \sum_{i=1}^{n} (\hat{y}_i - \bar{y}_i )^2 SSR=∑i=1n​(y^​i​−yˉ​i​)2

      其中:

      • y ^ i \hat{y}_i y^​i​ 是模型对第 i i i 个样本点的预测值。
      • y ˉ i \bar{y}_i yˉ​i​是因变量的平均值(即所有观测值的均值)。

        总平方和(SST)

        SST总平方和(Sum of Squares Total)在回归分析中表示原始数据和原始数据均值(mean)之差的平方和,其计算公式如下:

        S S T = S S E + S S R SST = SSE + SSR SST=SSE+SSR

        其中:

        • SSE代表误差平方和(Sum of Squares for Error),其计算的是预测数据和原始数据之差的平方和。
        • SSR代表回归平方和(Sum of Squares for Regression),其计算的是预测数据与原始数据均值之差的平方和。

          因此,SST总平方和是误差平方和与回归平方和的总和,它衡量了所有观测值与其均值的离散程度。这个值越大,说明数据点之间的差异越大;值越小,则说明数据点越集中。

          此外,SST也可以表示为每个组内的离差平方和的总和,即SST=SS1+SS2+…+SSn,其中SS1、SS2、…、SSn代表每个组内的离差平方和。

          请注意,SST的具体计算公式可能因不同的应用场景和统计软件而有所差异。在实际应用中,建议参考所使用的统计软件或相关领域的专业文献来获取最准确的计算公式和解释。

          二、案例学习

          在Python的机器学习库sklearn中,计算决定系数非常简单。下面我们将通过一个示例来展示如何使用sklearn计算决定系数。

          首先,导入必要的库和加载数据集。在这个例子中,我们将使用sklearn自带的波士顿房价数据集。

          from sklearn.model_selection import train_test_split
          from sklearn.metrics import mean_squared_error
          from sklearn.linear_model import LinearRegression
          from sklearn.datasets import fetch_california_housing
          from sklearn.metrics import mean_absolute_error 
          from sklearn.metrics import r2_score  
          import pandas as pd
          import numpy as np
          housing = fetch_california_housing()
          # 加载房价数据集
          X = housing.data
          y = housing.target
          # 划分训练集和测试集
          X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
          

          接着,我们创建一个线性回归模型,并使用训练数据进行训练。

          # 创建线性回归模型
          model = LinearRegression()
          # 使用训练数据进行训练
          model.fit(X_train, y_train)
          

          训练完成后,我们使用模型对测试集进行预测,并计算决定系数。

          # 对测试集进行预测
          y_pred = model.predict(X_test)
          # 计算决定系数R²
          r2 = r2_score(y_test, y_pred)
          print(f'Coefficient of Determination (R²): {r2}')
          # Coefficient of Determination (R²): 0.5757877060324524
          

          在上面的代码中,我们使用r2_score函数来计算决定系数。该函数接受两个参数:真实的目标值y_test和模型预测的值y_pred。函数返回的值就是决定系数R²。

          决定系数R²的值越接近1,说明模型对数据的拟合效果越好。如果R²的值很低,可能意味着模型没有很好地捕捉到数据中的关系,或者所选的特征并不适合用于预测目标变量。

          三、总结

          需要注意的是,决定系数只是评估模型性能的一个指标,它并不能完全代表模型的优劣。在实际应用中,我们通常需要综合考虑多个指标,如均方误差(MSE)、平均绝对误差(MAE)等,来全面评估模型的性能。此外,还需要考虑模型的复杂度、可解释性等因素。

          通过调整模型的超参数或选择不同的模型类型,我们可以尝试优化模型的决定系数R²,从而提高模型的拟合能力和预测精度。在回归问题的建模过程中,计算决定系数是一个重要的步骤,它有助于我们了解模型的性能并进行相应的改进。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]