回归算法的指标
回归算法的误差度量
当我们创建回归算法并想知道该模型的效率如何时,我们使用错误度量来获取代表机器学习模型错误的值。当我们想要测量数值(实数、整数)的预测模型的误差时,本文中的指标非常重要。
在本文中,我们将介绍回归算法的主要误差指标,在 Python 中手动执行计算,并在美元报价数据集上测量机器学习模型的误差。
所涉及的指标
- SE — 误差总和
- ME — 平均误差
- MAE — 平均绝对误差
- MPE — 平均百分比误差
- MAPAE — 平均绝对百分比误差
这两个指标有点相似,我们有平均值和误差百分比的指标,以及平均和绝对误差百分比的指标,只是有区别,以便一组获得差异的实际值,另一组获得绝对值的差异。重要的是要记住,在这两个指标中,值越低,我们的预测就越好。
SE - 误差总和
SE 指标是本文中最简单的指标,其公式为:
SE = εR — P
因此,它是真实值(模型的目标变量)与预测值之间的差值之和。该指标有一些缺点,例如不将值视为绝对值,这将导致错误值。
ME - 误差平均值
ME 指标是 SE 的“补充”,我们基本上有一个区别,即我们将在给定元素数量的情况下获得 SE 的平均值:
ME = ε(R-P)/N
与 SE 不同,我们只需将 SE 结果除以元素数量。这个指标和 SE 一样,取决于规模,也就是说,我们必须使用同一组数据,并且可以与不同的预测模型进行比较。
MAE——平均绝对误差
MAE 指标是 ME,但仅考虑绝对(非负)值。当我们计算实际值和预测值之间的差异时,我们可能会得到负结果,并且这种负差异会应用于之前的指标。在这个指标中,我们必须将差异转换为正值,然后根据元素数量取平均值。
MPE:平均百分比误差
MPE 指标是平均误差占每个差异之和的百分比。这里我们必须获取差异的百分比,将其相加,然后除以元素数量以获得平均值。因此,实际值和预测值之间的差值除以实际值,再乘以 100,我们将所有这些百分比相加,然后除以元素数量。该指标与比例 (%) 无关。
MAPAE - 平均绝对百分比误差
MAPAE 指标与之前的指标非常相似,但是预测 x 实际之间的差异是绝对的,也就是说,您用正值来计算它。因此,该指标是错误百分比的绝对差异。该指标也是与尺度无关的。
在实践中使用指标
给出每个指标的解释,我们将根据美元汇率机器学习模型的预测,在 Python 中手动计算这两个指标。目前,大多数回归指标都存在于 Sklearn 包中的现成函数中,但是这里我们将手动计算它们,仅用于教学目的。
我们将仅使用随机森林和决策树算法来比较两个模型之间的结果。
数据分析
在我们的数据集中,我们有 SaldoMercado 和 saldoMercado_2 列,它们是影响 Value 列(我们的美元报价)的信息。正如我们所看到的,MercadoMercado 余额与报价的关系比 Merado_2 余额更密切。还可以观察到我们没有缺失值(无限或 Nan 值),并且balanceMercado_2 列有许多非绝对值。
模型准备
我们通过定义预测变量和我们想要预测的变量来准备机器学习模型的值。我们使用train_test_split将数据随机分为30%用于测试,70%用于训练。
最后,我们初始化两种算法(RandomForest 和 DecisionTree),拟合数据并用测试数据测量两种算法的分数。我们获得了 TreeRegressor 83% 的分数和 ForestRegressor 90% 的分数,这在理论上表明 ForestRegressor 表现更好。
结果与分析
鉴于 ForestRegressor 的部分观察到的性能,我们创建了一个包含应用指标所需数据的数据集。我们对测试数据进行预测,并使用实际值和预测值创建一个 DataFrame,包括差异和百分比列。
我们可以观察到,相对于美元汇率的实际总额与我们模型预测的汇率:
- 我们的总差额为 R$578.00
- 这代表预测 x 实际值之间存在 0.36% 的差异(不考虑绝对值)
- 就平均误差 (ME) 而言,我们的值较低,平均为 R$0.009058
- 对于绝对平均值,该值会增加一点,因为我们的数据集中有负值
我强调,这里我们出于教学目的手动执行计算。但是,建议使用 Sklearn 包中的指标函数,因为它具有更好的性能并且计算出错的可能性较低。
完整的代码可以在我的 GitHub 上找到:github.com/AirtonLira/artigo_metricasregressao
作者:Airton Lira Junior
LinkedIn:linkedin.com/in/airton-lira-junior-6b81a661/
以上是回归算法的指标的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。
