线性回归模型评估:R 您所在的位置:网站首页 q等于i平方r 线性回归模型评估:R

线性回归模型评估:R

2024-01-24 17:44| 来源: 网络整理| 查看: 265

线性回归模型评估

通过几个参数验证回归模型

SSE(和方差,误差平方和) :The sum of squares due to errorMSE(均方差,方差):Mean squared errorRMSE(均方根,标准差):Root mean squared errorR-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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有