线性回归模型评估:R-square(确定系数)、均方根、均方差
线性回归模型评估
通过几个参数验证回归模型
- SSE(和方差,误差平方和) :The sum of squares due to error
- MSE(均方差,方差):Mean squared error
- RMSE(均方根,标准差):Root mean squared error
- R-square(确定系数):Coefficient of determination(主要用R方来做评估)
1.SSE(和方差)
该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下:
SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。
2.MSE(均方差)
该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下:
3.RMSE(均方根)
该统计参数,也叫回归系数的拟合标准差,是MSE的平方根,计算公式如下:
在这之前,我们所有的误差参数都是基于预测值(y_hat)和原始值(y)之间的误差(即点对点)。从下面开始是所有的误差都是相对原始数据平均值(y_ba)而展开的(即点对全)!!!
4.R-square(确定系数)
R -square越接近1,越好,大于0.8就不错了。
在讲确定系数之前,我们需要介绍另外两个参数SSR和SST,因为确定系数就是由它们两个决定的
(1)SSR:Sum of squares of the regression,即预测数据与原始数据均值之差的平方和,公式如下:
(2)SST:Total sum of squares,即原始数据和均值之差的平方和,公式如下:
细心的读者会发现,SST=SSE+SSR,呵呵只是一个有趣的问题。而我们的“确定系数”是定义为SSR和SST的比值,故
其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好。
附代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn import metrics
from sklearn.linear_model import LinearRegression#random_state=1指的是伪随机数生成器的种子
#创建数据
rng = np.random.RandomState(1)
xtrain = 10 * rng.rand(30)#生成30个数
ytrain = 8 + 4*xtrain + rng.rand(30)*3 #生成30个数,与上面30个数不同#创建模型,用训练集拟合模型
model = LinearRegression()
model.fit(xtrain[:,np.newaxis],ytrain)#np.newaxis插入新维度,xtrain给的是一列数据ytest = model.predict(xtrain[:,np.newaxis]) # ytest = 根据X评估出来的y值
mse = metrics.mean_absolute_error(ytrain,ytest)#均方差
rmse = np.sqrt(mse)#均方根
print(mse)
print(rmse)ssr = ((ytest - ytrain.mean())**2).sum() # 预测数据和原始均值之差 的平方和
sst = ((ytrain - ytrain.mean())**2).sum() # 原始数据 和 均值之差 的平方和
r2 = ssr/sst
print(r2)
结果:
0.7797031388892226
0.8830080061297421
0.9946452159695
第二种计算R2的方式(确定系数)
r22 = model.score(xtrain[:,np.newaxis],ytrain)
print(r22)
结果:
0.9946452159694995
线性回归模型评估:R-square(确定系数)、均方根、均方差相关推荐
- 线性回归模型及R语言代码
基础理论: 线性回归模型是一个简单而有效的模型,曾经在过去的一个世纪中在统计界得到主要的应用. Yi(i=1,-n)是响应随机变量,(x1i,-xpi)是n个实测数据,p是解释变量的数量.€i是残差, ...
- 民航客运量变化趋势的多元线性回归模型--基于R(附R程序及讲解)
目录 建立回归方程 用逐步回归进行变量选择 回归诊断 回归诊断:一般的方法 回归预测 附录 全部R程序: 题目数据: 为研究我国民航客运量的变化趋势及其成因,以民航客运量为因变量(万人),旅客运输量( ...
- 机器学习:聚类算法的模型评估指标:轮廓系数
不同于分类模型和回归,聚类算法的模型评估不是一件简单的事. 在分类中,有直接结果(标签)的输出,并且分类的结果有正误之分,所以使用预测的准确度,混淆矩阵,ROC曲线等指标来进行评估.但无论如何评估,都 ...
- logistic回归模型评估-R实现
Logistic回归是一种用于探索分类响应变量与一个或多个分类或连续预测变量之间的关系的方法. 该模型通常以以下格式表示,其中β表示参数,x表示自变量. log(odds)=β0+β1∗x1+...+ ...
- R可视化多元线性回归模型
R可视化多元线性回归模型 目录 R可视化多元线性回归模型 一元线性回归建模及可视化
- r语言datarame删除行_R语言缺失值的处理:线性回归模型插补
原文链接: 拓端数据科技 / Welcome to tecdattecdat.cn 在当我们缺少值时,系统会告诉我用-1代替,然后添加一个指示符,该变量等于-1.这样就可以不删除变量或观测值. 视频 ...
- 机器学习-模型评估与选择
引言 在本篇文章中,选用scikit-learn自带的boston房价数据集为解释说明依据.其基本信息如下: Samples total:506 Dimensionality:13,均为连续型变量 T ...
- 数学建模:线性回归模型的Python实现
目录 一.一元线性回归 1.1 引子 1.2 求解系数a和截距b的方法:最小二乘法 1.3 案例解决 1.4 模型检验 二.多元线性回归 2.1 式子 2.2 核心代码 2.3 案例解决 注:如果您需 ...
- 一元线性回归模型及其Python案例
回归的概念:(其实就是用曲线拟合的方式探索数据规律) 回归问题的分类: 一元线性回归: 线性回归模型是利用线性拟合的方式探寻数据背后的规律.如下图所示,先通过搭建线性回归模型寻找这些散点(也称样本点) ...
最新文章
- yii blog页面不能正确显示js,css文件的原因分析
- Menu [D3D9 Source]
- 120. 三角形最小路径和
- 什么时候不选择mysql_MySQL请选择合适的列_MySQL
- (秒杀项目) 4.6 分布式状态管理
- 查看android内置(webview)浏览器和系统浏览器内核信息
- Windows anaconda下载安装
- 左神讲算法——超级水王问题(详解)
- 2015年9月29笔试总结
- 申请苹果开发者账号(2016最新版)
- ERP/MIS开发 LLBL Gen多表操作
- 微信会员注册开发【带源码】:网页授权,得到code后在当前页面获取openid,js+php实现跨域请求
- epoch和iteration的区别
- 圣杯布局-三种实现方式,css经典布局
- 卡西欧学生用计算机怎么玩,你真的会用计算器么?来玩转卡西欧计算器吧
- 大户人家的孝道中有一条叫做晨昏定省
- Java开发全套学习!mysql配置文件my.ini找不到
- 罗浩明(襄城县)讲 M3330e九针联机及刷机文件介绍
- HDFS文件系统内的文件格式转换(zip格式转化成gzip格式)
- CodeGear给卖了