1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 线性回归统计指标 SSE MSE RMSE MAE R-square

线性回归统计指标 SSE MSE RMSE MAE R-square

时间:2023-01-05 11:59:36

相关推荐

线性回归统计指标 SSE MSE RMSE MAE R-square

文章目录

@[toc]一、SSE(和方差)二、MSE(均方差)三、RMSE(均方根)四、MAE(平均绝对误差)五、R-square(确定系数)六、代码部分

SSE(和方差、误差平方和):The sum of squares dueto error

MSE(均方差、方差):Meansquared error

RMSE(均方根、标准差):Root mean squared error

R-square(确定系数):Coefficientof determination

Adjusted R-square:Degree-of-freedomadjusted coefficient of determination

下面我对以上几个名词进行详细的解释下,相信能给大家带来一定的帮助!!

一、SSE(和方差)

该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下

SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。接下来的MSE和RMSE因为和SSE是同出一宗,所以效果一样

二、MSE(均方差)

该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下

三、RMSE(均方根)

该统计参数,也叫回归系统的拟合标准差,是MSE的平方根,就算公式如下

在这之前,我们所有的误差参数都是基于预测值(y_hat)和原始值(y)之间的误差(即点对点)。从下面开始是所有的误差都是相对原始数据平均值(y_ba)而展开的(即点对全)!!!

四、MAE(平均绝对误差)

五、R-square(确定系数)

在讲确定系数之前,我们需要介绍另外两个参数SSR和SST,因为确定系数就是由它们两个决定的

(1)SSR:Sumof squares of the regression,即预测数据与原始数据均值之差的平方和,公式如下

(2)SST:Totalsum of squares,即原始数据和均值之差的平方和,公式如下

细心的网友会发现,SST=SSE+SSR,呵呵只是一个有趣的问题。而我们的“确定系数”是定义为SSR和SST的比值,故

六、代码部分

[py]

import numpy as npfrom sklearn.metrics import r2_scoreclass SimpleLinearRegression:def __init__(self):"""初始化Simple Linear Regression模型"""self.a_ = Noneself.b_ = Nonedef fit(self, x_train, y_train):"""根据训练数据集x_train, y_train训练Simple Linear Regression模型"""assert x_train.ndim == 1, \"Simple Linear Regressor can only solve single feature training data."assert len(x_train) == len(y_train), \"the size of x_train must be equal to the size of y_train"x_mean = np.mean(x_train)y_mean = np.mean(y_train)self.a_ = (x_train - x_mean).dot(y_train - y_mean) / (x_train - x_mean).dot(x_train - x_mean)self.b_ = y_mean - self.a_ * x_meanreturn selfdef predict(self, x_predict):"""给定待预测数据集x_predict,返回表示x_predict的结果向量"""assert x_predict.ndim == 1, \"Simple Linear Regressor can only solve single feature training data."assert self.a_ is not None and self.b_ is not None, \"must fit before predict!"return np.array([self._predict(x) for x in x_predict])def _predict(self, x_single):"""给定单个待预测数据x,返回x的预测结果值"""return self.a_ * x_single + self.b_def score(self, x_test, y_test):"""根据测试数据集 x_test 和 y_test 确定当前模型的准确度:R^2"""y_predict = self.predict(x_test)return r2_score(y_test, y_predict)def __repr__(self):return "SimpleLinearRegression()"

调用scikit-learn中的算法

from sklearn.metrics import mean_squared_errorfrom sklearn.metrics import mean_absolute_error# MSEmse_predict = mean_squared_error(y_test, y_predict)# MAEmae_predict = mean_absolute_error(y_test, y_predict)# y_test:测试数据集中的真实值# y_predict:根据测试集中的x所预测到的数值

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。