【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式

回归模型评估的两个方面


回归模型的评估主要有以下两个方面:


1. 预测值的拟合程度


拟合程度就是我们的预测值是否拟合了足够的信息。在回归模型中,我们经常使用决定系数R2来进行度量。


2. 预测值的准确度


准确度指预测值与实际真实值之间的差异大小。常用均方误差(Mean Squared Error, MSE),平均绝对误差(Mean Absolute Error, MAE),平均绝对百分比误差MAPE来度量。



下面我们对这几个评估指标进行介绍,以及其在sklearn中如何使用。


以糖尿病数据集的回归模型为计算示例-计算各指标


# 导入线性回归器算法模型
from sklearn.linear_model import LinearRegression 
import numpy as np
#糖尿病数据集 ,训练一个回归模型来预测糖尿病进展
from sklearn import datasets
dia = datasets.load_diabetes()
# 提取特征数据和标签数据
data = dia.data
target = dia.target
# 训练样本和测试样本的分离,测试集20%
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.2)
# 创建线性回归模型
linear = LinearRegression()
# 用linear模型来训练数据:训练的过程是把x_train 和y_train带入公式W = (X^X)-1X^TY求出回归系数W
linear.fit(x_train,y_train)
# 对测试数据预测
y_pre = linear.predict(x_test)


1. 决定系数R2


R2( Coefficient of determination):决定系数,反映的是模型的拟合程度,R2的范围是0到1。其值越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好。

10c788ffa5a241dbaeb81478b5cb4f61.png


1.1 R2求解方式一----从metrics调用r2_socre


from sklearn.metrics import r2_score
r2 = r2_score(y_true=y_test,y_pred=y_pre)
r2


0.5439247940652986
• 1


1.2 R2求解方式二----从模型调用score


r2 = linear.score(x_test,y_test)
r2
• 1
• 2


0.5439247940652986


1.3 R2求解方式二----交叉验证调用scoring=r2


from sklearn.model_selection import cross_val_score
r2 = cross_val_score(linear,x_test,y_test,cv=10,scoring="r2").mean()  # 求的值n次交叉验证后r2的均值
r2
0.3803655235719364


2. 校准决定系数Adjusted-R2


校正决定系数是指决定系数R可以用来评价回归方程的优劣,但随着自变量个数的增加,R2将不断增大。Adjusted-R2主要目的是为了抵消样本数量对R2的影响。

209adb8497964433a08aec3cb5ecd357.png

其中,n为样本数量,p为特征数量。即样本为n个[ x1, x2, x3, … , xp, y ]。取值也是越接近1越好。


n, p = x_test.shape
adjusted_r2 = 1 - ((1 - r2) * (n - 1)) / (n - p - 1)
adjusted_r2
0.300925206081159


3.均方误差MSE(Mean Square Error)


均方误差(Mean Square Error, MSE):是真实值与预测值的差值的平方,然后求和的平均,一般用来检测模型的预测值和真实值之间的偏差

344a8f5663fc43db90f3cbb40a285ce7.png

from sklearn.metrics import mean_squared_error
mean_squared_error(y_test,y_pre)#y_test为实际值,y_pre为预测值
2658.8312775325517


4.均方根误差RMSE(Root Mean Square Error)


均方根误差(Root Mean Square Error, RMSE):即均方误差开根号,方均根偏移代表预测的值和观察到的值之差的样本标准差

cc043afefea94be389210c6495c6dd08.png


from sklearn.metrics import mean_squared_error
np.sqrt(mean_squared_error(y_test,y_pre))#y_test为实际值,y_pre为预测值
51.563856309750065


5.平均绝对误差MAE(Mean Absolute Error)


平均绝对误差(Mean Absolute Error, MAE):是绝对误差的平均值,可以更好地反映预测值误差的实际情况

029b066682c341419951b6e6380da805.png

from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_test,y_pre)#y_test为实际值,y_pre为预测值
42.09538057884898


6. 平均绝对百分比误差MAPE(Mean Absolute Percentage Error)


平均绝对百分比误差(Mean Absolute Percentage Error,MAPE):是相对误差度量值,它使用绝对值来避免正误差和负误差相互抵消,可以使用相对误差来比较各种时间序列模型预测的准确性。理论上,MAPE 的值越小,说明预测模型拟合效果越好,具有更好的精确度。


在这里插入图片描述


from sklearn.metrics import mean_absolute_percentage_error
mean_absolute_percentage_error(y_test,y_pre)#y_test为实际值,y_pre为预测值
0.4062288709549193
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
10月前
|
机器学习/深度学习 数据采集 人工智能
构建高效机器学习模型的五大技巧
【4月更文挑战第7天】 在数据科学迅猛发展的今天,机器学习已成为解决复杂问题的重要工具。然而,构建一个既精确又高效的机器学习模型并非易事。本文将分享五种提升机器学习模型性能的有效技巧,包括数据预处理、特征工程、模型选择、超参数调优以及交叉验证。这些方法不仅能帮助初学者快速提高模型准确度,也为经验丰富的数据科学家提供了进一步提升模型性能的思路。
|
10月前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型的最佳实践
【4月更文挑战第3天】在数据驱动的时代,构建高效的机器学习模型已成为解决复杂问题的关键。本文将探讨一系列实用的技术策略,旨在提高模型的性能和泛化能力。我们将从数据预处理、特征工程、模型选择、超参数调优到集成学习等方面进行详细讨论,并通过实例分析展示如何在实践中应用这些策略。
78 1
|
4月前
|
机器学习/深度学习 Python
机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况
本文介绍了机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况,而ROC曲线则通过假正率和真正率评估二分类模型性能。文章还提供了Python中的具体实现示例,展示了如何计算和使用这两种工具来评估模型。
153 8
|
5月前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
236 1
|
9月前
|
机器学习/深度学习 人工智能 算法
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
```markdown # ROC曲线与AUC详解:评估分类模型利器 本文深入浅出解释ROC曲线和AUC,通过实例和代码帮助理解其在模型评估中的重要性,旨在提升对分类模型性能的理解和应用。 ```
432 13
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
|
8月前
|
机器学习/深度学习
机器学习模型评估指标详解
【7月更文挑战第14天】选择合适的评估指标对于准确评估机器学习模型的性能至关重要。在实际应用中,需要根据具体任务场景和数据特点,综合考虑多种评估指标,以全面评估模型的性能。同时,还需要注意评估指标的局限性,避免单一指标带来的误导。
|
9月前
|
机器学习/深度学习 人工智能 算法
超强,必会的机器学习评估指标
```markdown # 机器学习模型评估指标概览 机器学习模型评估涉及多种指标,用于量化模型在分类和回归任务中的表现。关键指标包括: - **分类**: - **准确率**: 简单易懂,但在类别不平衡时可能误导。 - **精确率**: 衡量正类预测的准确性,适用于误报代价高的场景。 - **召回率**: 评估正类识别的完整性,适用于漏报代价高的场景。 - **F1分数**: 精确率和召回率的调和平均,平衡两者。 - **AUC**: 衡量模型区分正负类的能力,适用于不平衡数据。 - **混淆矩阵**: 提供详细分类结果,用于分析模型错误。
86 0
超强,必会的机器学习评估指标
|
8月前
|
机器学习/深度学习 Serverless Python
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
`sklearn.metrics`是scikit-learn库中用于评估机器学习模型性能的模块。它提供了多种评估指标,如准确率、精确率、召回率、F1分数、混淆矩阵等。这些指标可以帮助我们了解模型的性能,以便进行模型选择和调优。
|
10月前
|
机器学习/深度学习 人工智能
【机器学习】有哪些指标,可以检查回归模型是否良好地拟合了数据?
【5月更文挑战第16天】【机器学习】有哪些指标,可以检查回归模型是否良好地拟合了数据?
|
10月前
|
机器学习/深度学习 BI
机器学习模型评估指标总结
机器学习模型评估指标总结
191 2

热门文章

最新文章

相关产品

  • 人工智能平台 PAI