决定系数(coefficient of determination,R2)是反映模型拟合优度的重要的统计量,为回归平方和与总平方和之比。R2取值在0到1之间,且无单位,其数值大小反映了回归贡献的相对程度,即在因变量Y的总变异中回归关系所能解释的百分比。 R2是最常用于评价回归模型优劣程度的指标,R2越大(接近于1),所拟合的回归方程越优。

假设一数据集包括y1,...,yn共n个观察值,相对应的模型预测值分别为f1,...,fn。定义残差ei = yi − fi,平均观察值为

虽然R2可以用来评价回归方程的优劣,但随着自变量个数的增加,R2将不断增大(因为自变量个数的增加,意味着模型的复杂度升高,对样本数据的拟合程度会提高)。

若对两个具有不同个数自变量的回归方程进行比较时,不能简单地用R2作为评价回归方程的标准,还必须考虑方程所包含的自变量个数的影响,此时可用校正的决定系数(R2-adjusted)

其中n是样本数量,p是模型中变量的个数,当变量个数为0时,修正和原始的R方是一样的

就是相当于给变量的个数加惩罚项。换句话说,如果两个模型,样本数一样,R2一样,那么从修正R2的角度看,使用变量个数少的那个模型更优。

至于R2大于多少才有意义呢?这时我们可以看另外一个指标:复相关系数(Multiple correlation coefficient)R,R是决定系数R2的平方根,可用来度量因变量Y与多个自变量间的线性相关程度,即观察值Y与估计值之间的相关程度。

相关系数要在0.7~0.5才有意义,因此,R2应大于0.5*0.5=0.25,所以有种观点认为,在直线回归中应R2大于0.3才有意义。

还是来看下一个简单的例子,看下简单的平滑预测的R平方有多少

import numpy as np def r_square(y,f):y,f = np.array(y),np.array(f)y_mean = y.mean()SStot  = sum(np.power((y-y_mean),2))SSres  = sum(np.power(y-f,2))return 1.0 - 1.0*SSres/SStotdef smooth_(squences,period=5):res = []gap = period/2right = len(squences)for i in range(right):res.append(np.mean(squences[i-gap if i-gap > 0 else 0:i+gap if i+gap < right else right]))return res httpspeedavg = np.array([1821000, 2264000, 2209000, 2203000, 2306000, 2005000, 2428000,2246000, 1642000,  721000, 1125000, 1335000, 1367000, 1760000,1807000, 1761000, 1767000, 1723000, 1883000, 1645000, 1548000,1608000, 1372000, 1532000, 1485000, 1527000, 1618000, 1640000,1199000, 1627000, 1620000, 1770000, 1741000, 1744000, 1986000,1931000, 2410000, 2293000, 2199000, 1982000, 2036000, 2462000,2246000, 2071000, 2220000, 2062000, 1741000, 1624000, 1872000,1621000, 1426000, 1723000, 1735000, 1443000, 1735000, 2053000,1811000, 1958000, 1828000, 1763000, 2185000, 2267000, 2134000,2253000, 1719000, 1669000, 1973000, 1615000, 1839000, 1957000,1809000, 1799000, 1706000, 1549000, 1546000, 1692000, 2335000,2611000, 1855000, 2092000, 2029000, 1695000, 1379000, 2400000,2522000, 2140000, 2614000, 2399000, 2376000])
httpavg = np.round((1.0*httpspeedavg/1024/1024).tolist(),2)
smooth = np.round(smooth_((1.0*httpspeedavg/1024/1024).tolist(),5),2)print r_square(httpavg,smooth)
# 0.711750424322

也就是71%的网络变化情况可以用平滑预测来解释

转载于:https://www.cnblogs.com/qwj-sysu/p/8493042.html

回归模型效果评估系列3-R平方相关推荐

  1. 信贷产品额度定价场景下的回归模型效果评估

    在信贷风控的决策流程中,我们必然会在某些节点放入模型来使用,例如A卡(申请).B卡(行为).C卡(催收).F卡(反欺诈)等.当我们线下建立好一个模型之后,只有通过样本内外的多次测试,以及模型性能指标达 ...

  2. R语言glmnet拟合lasso回归模型实战:lasso回归模型的模型系数及可视化、lasso回归模型分类评估计算(混淆矩阵、accuracy、Deviance)

    R语言glmnet拟合lasso回归模型实战:lasso回归模型的模型系数(lasso regression coefficients)及可视化.lasso回归模型分类评估计算(混淆矩阵.accura ...

  3. R语言glmnet拟合岭回归模型实战:岭回归模型的模型系数(ridge regression coefficients)及可视化、岭回归模型分类评估计算(混淆矩阵、accuracy、Deviance)

    R语言glmnet拟合岭回归模型(ridge regression)实战:岭回归模型的模型系数(ridge regression coefficients)及可视化.岭回归模型分类评估计算(混淆矩阵. ...

  4. R语言构建logistic回归模型并评估模型:模型预测结果抽样、可视化模型分类预测的概率分布情况、使用WVPlots包绘制ROC曲线并计算AUC值

    R语言构建logistic回归模型并评估模型:模型预测结果抽样.可视化模型分类预测的概率分布情况.使用WVPlots包绘制ROC曲线并计算AUC值 目录

  5. R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数、阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化、基于数据阳性样本比例选择合适的分类评估指标

    R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数.阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化.基于数据阳性样本比例选择合适的分类评估指标 目录

  6. R语言构建logistic回归模型并评估模型:计算混淆矩阵、并基于混淆矩阵计算Accuray、Precision、Recall(sensitivity)、F1、Specificity指标

    R语言构建logistic回归模型并评估模型:计算混淆矩阵.并基于混淆矩阵计算Accuray.Precision.Recall(sensitivity).F1.Specificity指标 目录

  7. R语言使用xgboost包拟合xgboost回归模型、使用predict函数和训练好的模型进行预测推理、计算回归模型的评估指标MAE、MSE、RMSE

    R语言使用xgboost包拟合xgboost回归模型.使用predict函数和训练好的模型进行预测推理.计算回归模型的评估指标MAE.MSE.RMSE 目录

  8. R语言使用lm函数拟合多项式回归模型:使用predict函数和训练好的模型进行预测推理、计算回归模型的评估指标MAE、MSE、RMSE、R方等指标

    R语言使用lm函数拟合多项式回归模型:使用predict函数和训练好的模型进行预测推理.计算回归模型的评估指标MAE.MSE.RMSE.R方等指标 目录

  9. [机器学习与scikit-learn-51]:模型评估-图解回归模型的评估指标MSE、MAE、RMSE、R2、RSS与代码示例

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  10. 图解机器学习之回归模型性能评估指标

    一个房价预测的任务,老板说你看看这个模型咋样? 我们先绘制一个坐标轴: Y 轴为房价,X 轴为年份.将过去房价数据绘制为绿色,回归模型绘制为蓝色. 关键问题是,怎么知道这个模型的好坏呢? 为了评估该模 ...

最新文章

  1. 通过命令行在Python中测试以太坊RPC客户端
  2. 成功解决AttributeError : ‘GridSearchCV‘ object has no attribute ‘grid_scores_‘
  3. Linux内核源码树建立加载hello模块
  4. html5控制gif速度,gif加速软件 教你加快GIF图片的播放速度
  5. 高晓松谈管理:自嘲总被员工管
  6. python中head_Python(Head First)学习笔记:六
  7. Keepalived 安装配置
  8. python学习 第三篇 文件操作
  9. matlab做经济地理、地理距离、经济距离空间权重矩阵
  10. 【HL7】快速入门 HL7 协议
  11. 分镜头故事板Toon Boom Storyboard Pro 6简体中文版完美激活版
  12. 计算机考试当天准考证身份证丢失
  13. C语言中关于四舍五入的计算方法
  14. 入门了解学hybris和sap的需要内容(自己整理)
  15. P1873 砍树(二分查找模板)
  16. 不喜欢现在的工作,怎么办?
  17. ubuntu 安装 nvidia 显卡驱动
  18. 虚拟化精华问答 | 为什么云计算需要虚拟化?
  19. 赠吾弟-每一个生命奇迹的背后——整理
  20. 计算机逻辑模块,常用时序逻辑电路模块 《计算机结构与 及逻辑设计》课件.ppt...

热门文章

  1. 推荐几款基于 Markdown 在线制作简历的网站
  2. python3字符串详解速查,新手流泪,老手顿悟
  3. compiled.php,laravel compiled.php 缓存 命令行
  4. recyclerview简单实现立体魔方动画切换效果
  5. 【路径规划】基于粒子群算法机器人避障路径规划matlab代码
  6. linux位系统安装官方install_flash_player_npapi_linux.x86_64.tar.gz插件包的方法
  7. html绘制钟表的原理,html5 canvas绘制钟表
  8. Java基础篇--集合(map)
  9. There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org‘, port=443)
  10. Opencv入门(播放AVI视频)