学习笔记: 机器学习经典算法-回归模型性能评估

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 机器学习经典算法-个人笔记和学习心得分享

在实际使用的时候,训练线性回归模型的数据来源于从原始数据集拆分出来的训练集(train_data),模型的损失函数也是对应训练集的,即$\sum^{m}_{i} {(\hat y^{(i)}_{train} - y^{(i)}_{train})^{2}} $。

均方误差(Mean Square Error)

$MSE = \frac {1}{m}\sum^{m}_{i} {(\hat y^{(i)}_{test} - y^{(i)}_{test})^{2}}$
这是目前最为通用的通过衡量真值与预测值差距来评估线性模型性能的方法。
当使用$\sum^{m}_{i} {(\hat y^{(i)}_{test} - y^{(i)}_{test})^{2}}$作为评估模型的标准会使得测试集大小$m$与其值密切关联,$m$越大会使得$\sum^{m}_{i} {(\hat y^{(i)}_{test} - y^{(i)}_{test})^{2}}$的值也越大。均方误差(Mean Square Error)是其改进方法。

from sklearn.metrics import mean_squared_error
mean_squared_error(y_test,y_predict)

均方根误差(Root Mean Square Error)

$RMSE = \sqrt {\frac {1}{m} \sum^{m}_{i} {(\hat y^{(i)}_{test} - y^{(i)}_{test})^{2}}} = \sqrt {MSE}$
该方法改进了 MSE 处理量纲敏感问题的缺陷,使误差的衡量单位变回样本输出标记的原始量纲,从而误差背后的意义更方便解释。

平均绝对误差(Mean Absolute Error)

$MAE =\frac {1}{m} \sum^{m}_{i} |{(\hat y^{(i)}_{test} - y^{(i)}_{test})}|$

from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_test,y_predict)

RMSE 与 MAE 的比较
RMSE是每个样本点的真值与预测值的差异值的平方加和后再开方,该方法会明显放大样本中最大的差异,RMSE反映的差距会比直接反映的差距$MAE$要大一些。所以在真实情况中,使RMSE的值更加小相对来说会更有意义,这就意味着样本的错误中,最大的错误值相对更小。使得目标损失函数$\sum^{m}_{i} {(\hat y^{(i)} - y^{(i)})^{2}}$最小化的背后也是使得最终预测结果中最大的误差最小化。

R Square
对于算法性能评估方法 RMSE,MAE 等,其衡量的误差带有样本输出标签的量纲,当面对不同的回归问题时,算法的好坏评判标准就会变得模糊(比如一个模型在房价预测时误差是5万元,在学生分数预测的时候是10分,这时就无法难判断这个模型是适合学生分数预测还是房价预测,不同量纲的数据无法直接比较)。这是这些方法的局限性。改进方法就是 R Square,该方法将回归问题的评估结果规约到了[0-1]区间。

$R^{2} = 1- \frac {SS_{residual}}{SS_{total}} = 1 - \frac {MSE(\hat y - y^{(i)})}{Var(y)} , R^{2} \le 1$

Residual Sum of Square $SS_{residual} = \sum_{i}{(\hat y^{(i)} - y^{(i)})^2}$
Total Sum of Square $\ \ \ \ \ \ SS_{total} \ \ \ \ \ \ = \sum_{i}{(\overline y - y^{(i)})^{2}}$

$SS_{residual}$描述的是使用 训练模型(train Model) 进行预测产生的错误;$ SS_{residual}$描述的是使用 $y = \overline y$(基准模型,Baseline Model) 进行预测产生的错误。在这里,使用 Baseline Model 进行预测通常会产生非常多的错误,而使用 训练模型(train Model) 也会产生错误,但是相应地也减少了很多错误。所以$R^{2}$ 衡量的是 训练模型(train Model) 相比 Baseline Model 减少的错误,也就是模型的拟合程度

当$R^{2} = 1$意味着 训练模型(train Model) 不凡任何错误;
当$R^{2} = 0$意味着 训练模型(train Model) 等于基准模型;
当$R^{2} \lt 0$意味着 训练模型(train Model) 不如基准模型,很有可能数据不存在任何线性关系。

from sklearn.metrics import r2_score
r2_score = r2_score(y_test,y_predict)
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
29天前
|
机器人
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领精美计时器
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领精美计时器
85 3
|
8天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
5天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
21 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
9天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
28 1
|
18天前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
56 1
|
21天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
27天前
|
机器人
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领 200个 精美计时器等你领
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领 200个 精美计时器等你领
72 2
|
1月前
|
人工智能 算法 测试技术
PAI 大语言模型评测平台现已支持裁判员模型评测
本文将为您介绍如何在 PAI 大语言模型评测平台,基于裁判员模型,评价开源模型或者微调后模型的性能。该功能限时免费,欢迎使用。
|
1月前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
62 1
|
14天前
|
机器学习/深度学习 算法
探索机器学习模型的可解释性
【10月更文挑战第29天】在机器学习领域,一个关键议题是模型的可解释性。本文将通过简单易懂的语言和实例,探讨如何理解和评估机器学习模型的决策过程。我们将从基础概念入手,逐步深入到更复杂的技术手段,旨在为非专业人士提供一扇洞悉机器学习黑箱的窗口。

热门文章

最新文章