模型评估在统计学和机器学习中具有至关重要,它帮助我们主要目标是量化模型预测新数据的能力。
在这个数据充斥的时代,没有评估的模型就如同盲人摸象,可能带来误导和误判。
模型评估不仅是一种方法,更是一种保障,确保我们在数据海洋中航行时,能够依赖准确的服务器托管网模型,做出明智的决策。
本篇主要介绍模型评估时,如何利用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)
medi服务器托管网an_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
中封装好的各种误差计算函数,
还是可以帮助我们在评估回归模型时节约不少时间。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 中文编程开发语言工具系统化教程零基础入门篇和初级1专辑课程已经上线,可以进入轻松学编程
中文编程开发语言工具系统化教程零基础入门篇和初级1专辑课程已经上线,可以进入轻松学编程 学习编程捷径:(不论是正在学习编程的大学生,还是IT人士或者是编程爱好者,在学习编程的过程中用正确的学习方法 可以达到事半功倍的效果。对于初学者,可以通过下面的方法学习编程…