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

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

在实际使用的时候,训练线性回归模型的数据来源于从原始数据集拆分出来的训练集(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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
7天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
4天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
18 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
8天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
25 1
|
10天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
26 3
|
13天前
|
机器学习/深度学习 算法 数据挖掘
提高时钟置换算法的性能
【10月更文挑战第25天】通过上述一种或多种方法的综合应用,可以在不同程度上提高时钟置换算法的性能,使其更好地适应各种复杂的系统环境和应用场景,提高虚拟内存管理的效率和系统的整体性能。
32 5
|
17天前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
54 1
|
13天前
|
机器学习/深度学习 算法
探索机器学习模型的可解释性
【10月更文挑战第29天】在机器学习领域,一个关键议题是模型的可解释性。本文将通过简单易懂的语言和实例,探讨如何理解和评估机器学习模型的决策过程。我们将从基础概念入手,逐步深入到更复杂的技术手段,旨在为非专业人士提供一扇洞悉机器学习黑箱的窗口。
|
13天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的决策树算法
【10月更文挑战第29天】本文将深入浅出地介绍决策树算法,一种在机器学习中广泛使用的分类和回归方法。我们将从基础概念出发,逐步深入到算法的实际应用,最后通过一个代码示例来直观展示如何利用决策树解决实际问题。无论你是机器学习的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和指导。
|
24天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。
|
9天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。