scikit-learn 线性回归模型的score函数,返回值是决定系数R^2

本文介绍了线性回归中使用的决定系数R^2的概念及其计算方式。R^2用于评估预测模型的好坏,值范围通常在0到1之间,值越接近1表示模型的拟合效果越好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression

http://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html#sklearn.metrics.r2_score

 

线性回归的score函数返回的是:对预测结果计算出的决定系数R^2

 

LinearRegression的score函数源码:

def score(self, X, y, sample_weight=None):
        """Returns the coefficient of determination R^2 of the prediction.
        The coefficient R^2 is defined as (1 - u/v), where u is the residual
        sum of squares ((y_true - y_pred) ** 2).sum() and v is the total
        sum of squares ((y_true - y_true.mean()) ** 2).sum().
        The best possible score is 1.0 and it can be negative (because the
        model can be arbitrarily worse). A constant model that always
        predicts the expected value of y, disregarding the input features,
        would get a R^2 score of 0.0.
        Parameters
        ----------
        X : array-like, shape = (n_samples, n_features)
            Test samples.
        y : array-like, shape = (n_samples) or (n_samples, n_outputs)
            True values for X.
        sample_weight : array-like, shape = [n_samples], optional
            Sample weights.
        Returns
        -------
        score : float
            R^2 of self.predict(X) wrt. y.
        """

        from .metrics import r2_score
        return r2_score(y, self.predict(X), sample_weight=sample_weight,
                        multioutput='variance_weighted')

 

决定系数R^2

决定系数(coefficient ofdetermination),有的教材上翻译为判定系数,也称为拟合优度

决定系数反应了y的波动有多少百分比能被x的波动所描述,即表征依变数Y的变异中有多少百分比,可由控制的自变数X来解释。

意义:拟合优度越大,说明x对y的解释程度越高。自变量对因变量的解释程度越高,自变量引起的变动占总变动的百分比高。观察点在回归直线附近越密集。

 

在对数据进行线性回归计算之后,我们能够得出相应函数的系数, 那么我们如何知道得出的这个系数对方程结果的影响有强呢?

所以我们用到了一种方法叫 coefficient of determination (决定系数) 来判断 回归方程 拟合的程度

  • 由于SS_{res}是估计数据也就是回归数据与平均值的误差
  • SS_{tot} 是真实数据与平均值的误差
  • SS_{res}一般比SS_{tot}小,结果一般在0-1之间,SS_{tot} 在数据确定后始终是固定值,如果估计的越不准确,那么SS_{res}就越大,那么 R^{2}就越接近0,所以估计的越准确就越接近1

 

参考资料:

https://blog.youkuaiyun.com/grape875499765/article/details/78631435?locationNum=11&fps=1

https://blog.youkuaiyun.com/snowdroptulip/article/details/79022532

scikit-learn是一个基于Python的机器学习库,用于数据分析、数据挖掘、建模以及预测等任务。如果要讨论scikit-learn的特定版本——0.18,我们需要回顾一下该版本的一些关键特性和变动。 ### 版本0.18的特点: #### 1. 新模型与算法引入 在scikit-learn 0.18版中,引入了一些新的模型和算法,例如: - **XGBRegressor**:集成梯度提升决策树回归模型,适合处理复杂的数据集并提高预测性能。 - **RandomTreesEmbedding**:提供了一种将特征映射到高维空间的方法,适用于非线性分类和回归任务。 #### 2. 模型改进 此版本对现有模型进行了优化和增强,包括但不限于调整了某些模型的默认参数设置,提高了计算效率,并修复了一系列已知的问题。 #### 3. 用户界面更新 为了提供更一致的API设计,scikit-learn 0.18版对一些函数和类的返回值进行了调整。例如,对于交叉验证(CV)操作,`cross_val_predict` 和 `cross_val_score` 现在可以返回多个估计值的数组,使得结果更容易分析。 #### 4. 整体稳定性与兼容性 这个版本还致力于增强整体的稳定性和与其他软件包的兼容性,以适应不断发展的Python生态系统和技术需求。 ### 使用注意事项 虽然版本升级通常会带来功能和性能的提升,但在实际应用过程中,从旧版本切换到新版本可能会遇到一些挑战,比如: - **依赖变更**:新版本可能引入或更改了某些外部依赖库的要求,需要相应地调整项目配置。 - **向后兼容性**:尽管努力保持向后兼容,但有时仍会出现向前不兼容的情况,特别是当新特性涉及API变化时。 - **文档更新**:了解新版的新增功能、改进和废弃功能非常重要,这往往需要参考详细的发布说明和官方文档。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值