【scikit-learn基础】--『回归模型评估』之误差分析

这篇具有很好参考价值的文章主要介绍了【scikit-learn基础】--『回归模型评估』之误差分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模型评估在统计学和机器学习中具有至关重要,它帮助我们主要目标是量化模型预测新数据的能力。

在这个数据充斥的时代,没有评估的模型就如同盲人摸象,可能带来误导和误判。
模型评估不仅是一种方法,更是一种保障,确保我们在数据海洋中航行时,能够依赖准确的模型,做出明智的决策。

本篇主要介绍模型评估时,如何利用scikit-learn帮助我们快速进行各种误差的分析。

1. 平均绝对误差

平均绝对误差(Mean Absolute Error,简称MAE),它用于度量预测值与真实值之间的平均误差大小
它能直观地反映出预测的准确性,MAE越小,说明模型的预测能力越好

1.1. 计算公式

平均绝对误差的计算公式如下:
\(\text{MAE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n-1} \left| y_i - \hat{y}_i \right|.\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。

1.2. 使用示例

from sklearn.metrics import mean_absolute_error
import numpy as np

# 随机生成100个sample
n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)

mean_absolute_error(y_true, y_pred)

mean_absolute_error就是scikit-learn中用来计算MAE的函数。

2. 均方误差

均方误差Mean Squared Error,简称MSE),它用于衡量模型的预测值与实际观测值之间的差异。
MSE越小,表示模型的预测值与实际观测值之间的差异较小,即模型具有较高的预测精度。

2.1. 计算公式

\(\text{MSE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n - 1} (y_i - \hat{y}_i)^2.\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。

2.2. 使用示例

from sklearn.metrics import mean_squared_error
import numpy as np

n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)

mean_squared_error(y_true, y_pred)

mean_squared_error就是scikit-learn中用来计算MSE的函数。

3. 均方对数误差

均方对数误差Mean Squared Log Error,简称MSLE),与均方误差MSE)相比,MSLE在计算误差时先对预测值和真实值取对数。
通过对数转换,MSLE能够减小较大值和较小值之间的差异,使得误差度量更为稳定。
MSLE的值越小,表示预测结果与真实值的差异越小,即模型的拟合程度越好。

3.1. 计算公式

\(\text{MSLE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n - 1} (\log_e (1 + y_i) - \log_e (1 + \hat{y}_i) )^2.\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。

3.2. 使用示例

from sklearn.metrics import mean_squared_log_error
import numpy as np

n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)

mean_squared_log_error(y_true, y_pred)

mean_squared_log_error就是scikit-learn中用来计算MSLE的函数。

4. 平均绝对百分比误差

平均绝对百分比误差Mean Absolute Percentage Error,简称MAPE),平均绝对误差MAE)相比,MAPE将误差转化为百分比形式,这使得它在不同尺度的数据上具有更好的可比性。
MAPE越小,表示模型的预测结果与实际结果的差异较小,即模型的预测准确性较高。

4.1. 计算公式

\(\text{MAPE}(y, \hat{y}) = \frac{1}{n} \sum_{i=0}^{n-1} \frac{{}\left| y_i - \hat{y}_i \right|}{\max(\epsilon, \left| y_i \right|)}\)
其中,\(n\)是样本数量,\(y_i\)是真实值,\(\hat{y_i}\)是预测值。
\(\epsilon\)是一个任意小但严格为正的数,以避免在\(y_i\)为零时出现未定义的结果。

4.2. 使用示例

from sklearn.metrics import mean_absolute_percentage_error
import numpy as np

n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)

mean_absolute_percentage_error(y_true, y_pred)

mean_absolute_percentage_error就是scikit-learn中用来计算MAPE的函数。

5. 绝对误差中值

绝对误差中值Median Absolute Error,简称MedAE),它用于衡量预测模型对于数据集的精度。
平均误差相比,中值对异常值更为稳健,对于数据集中的异常值和离群点,绝对误差中值具有较强的抗性。
MedAE越小的模型,通常意味着它在大多数数据点上的预测更为准确。

5.1. 计算公式

\(\text{MedAE}(y, \hat{y}) = \text{median}(\mid y_1 - \hat{y}_1 \mid, \ldots, \mid y_n - \hat{y}_n \mid).\)
其中,\(y_i\)是真实值,\(\hat{y_i}\)是预测值,\(median\)表示取中位数。

5.2. 使用示例

from sklearn.metrics import median_absolute_error
import numpy as np

n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)

median_absolute_error(y_true, y_pred)

median_absolute_error就是scikit-learn中用来计算MedAE的函数。

6. 最大误差

最大误差Max Error),它用于衡量模型预测值与真实值之间的最大差异,揭示模型在最坏情况下的表现。
如果模型在大多数情况下的预测误差都很小,但最大误差很大,那么这可能意味着模型对于某些特定情况的处理不够好,需要进一步优化。

6.1. 计算公式

\(\text{Max Error}(y, \hat{y}) = \max(| y_i - \hat{y}_i |)\)
其中,\(y_i\)是真实值,\(\hat{y_i}\)是预测值,\(max\)表示取最大值。

6.2. 使用示例

from sklearn.metrics import max_error
import numpy as np

n = 100
y_true = np.random.randint(1, 100, n)
y_pred = np.random.randint(1, 100, n)

max_error(y_true, y_pred)

max_error就是scikit-learn中用来计算Max Error的函数。

7. 总结

本篇主要介绍了6种常用的误差分析函数,包括:

  • 平均绝对误差
  • 均方误差
  • 均方对数误差
  • 平均绝对百分比误差
  • 绝对误差中值
  • 最大误差

误差的计算方式其实也不算不复杂,不过,掌握scikit-learn中封装好的各种误差计算函数,
还是可以帮助我们在评估回归模型时节约不少时间。文章来源地址https://www.toymoban.com/news/detail-815132.html

到了这里,关于【scikit-learn基础】--『回归模型评估』之误差分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习算法实战(scikit-learn版本)---线性回归

    目录 文章目标: 1,导入库  2,导入数据集 3,缩放/归一化训练数据 4,创建并拟合回归模型 5,查看参数 6,预测 7,可视化  有一个开源的、商业上可用的机器学习工具包,叫做[scikit-learn](https://scikit-learn.org/stable/index.html)。这个工具包包含了你在本课程中要使用的许多算法的实

    2024年02月05日
    浏览(32)
  • Python案例|使用Scikit-learn进行房屋租金回归分析

    回归分析是一种预测性的建模技术,研究的是因变量(目标)和自变量(预测器)之间的关系。回归分析是建模和分析数据的重要工具。比如预测股票价格走势、预测居民收入、预测微博互动量等等。常用的有线性回归、逻辑回归、岭回归等。本文主要使用线性回归。 本文使

    2024年02月15日
    浏览(44)
  • 机器学习-决策树-回归-CPU(中央处理单元)数据-python scikit-learn

    决策树是一种监督机器学习算法,用于回归和分类任务。树是可以处理复杂数据集的强大算法。 决策树特性: 不需要数值输入数据进行缩放。无论数值是多少,决策树都不在乎。 不同于其他复杂的学习算法,决策树的结果是可以解释的,决策树不是黑盒类型的模型。 虽然大

    2024年02月20日
    浏览(26)
  • 【scikit-learn基础】--概述

    Scikit-learn 是一个基于 Python 的开源机器学习库,它提供了大量的机器学习算法和工具,方便用户进行数据挖掘、分析和预测。 Scikit-learn 是基于另外两个知名的库 Scipy 和 Numpy 的, 关于 Scipy 和 Numpy 等库,之前的系列文章中有介绍: Scipy 基础系列 Numpy 基础系列 自从 AlphaGo 再度

    2024年02月05日
    浏览(29)
  • 吴恩达机器学习-可选实验:使用ScikitLearn进行线性回归(Linear Regression using Scikit-Learn)

    有一个开源的、商业上可用的机器学习工具包,叫做scikit-learn。这个工具包包含了你将在本课程中使用的许多算法的实现。 在本实验中,你将:利用scikit-learn实现使用梯度下降的线性回归 您将使用scikit-learn中的函数以及matplotlib和NumPy。 np.set_printoptions(precision=2) 的作用是告诉

    2024年03月14日
    浏览(41)
  • 【scikit-learn基础】--『数据加载』之真实数据集

    上一篇介绍了 scikit-learn 中的几个玩具数据集,本篇介绍 scikit-learn 提供的一些真实的数据集。 玩具数据集:scikit-learn 基础(01)--『数据加载』之玩具数据集 与玩具数据集不同,真实的数据集的数据不仅数据特征多,而且数据量也比较大, 所以没有直接包含在 scikit-learn 库中。

    2024年02月05日
    浏览(28)
  • 【scikit-learn基础】--『预处理』之 正则化

    数据的 预处理 是数据分析,或者机器学习训练前的重要步骤。 通过数据预处理,可以 提高数据质量 ,处理数据的缺失值、异常值和重复值等问题,增加数据的准确性和可靠性 整合不同数据 ,数据的来源和结构可能多种多样,分析和训练前要整合成一个数据集 提高数据性

    2024年02月04日
    浏览(38)
  • 【scikit-learn基础】--『预处理』之 数据缩放

    数据的 预处理 是数据分析,或者机器学习训练前的重要步骤。 通过数据预处理,可以 提高数据质量 ,处理数据的缺失值、异常值和重复值等问题,增加数据的准确性和可靠性 整合不同数据 ,数据的来源和结构可能多种多样,分析和训练前要整合成一个数据集 提高数据性

    2024年02月04日
    浏览(31)
  • 【scikit-learn基础】--『数据加载』之外部数据集

    这是 scikit-learn 数据加载系列的最后一篇,本篇介绍如何加载 外部的数据集 。 外部数据集 不像之前介绍的几种类型的数据集那样,针对每种数据提供对应的接口,每个接口加载的数据都是固定的。 而外部数据集加载之后,数据的字段和类型是不确定的。 简单来说,我们在

    2024年02月05日
    浏览(37)
  • 【scikit-learn基础】--『数据加载』之玩具数据集

    机器学习的第一步是准备数据,好的数据能帮助我们加深对机器学习算法的理解。 不管是在学习还是实际工作中, 准备数据 永远是一个枯燥乏味的步骤。 scikit-learn 库显然看到了这个痛点,才在它的 数据加载 子模块中为我们准备了直接可用的数据集。 在它的 数据加载 子模

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包