sklearn.metrics.mean_absolute_error函数简介
sklearn.metrics.mean_absolute_error
是 Scikit-learn 中的一个评估指标,该指标用于衡量预测值与真实值之间的平均绝对误差(MAE)。该指标适用于回归问题,其中目标值是连续的,而不是离散的。
该指标定义为:
$MAE(y, \hat{y}) = \frac{1}{n} \sum_{i=1}^{n}|y_i – \hat{y}_i|$
其中,y是真实的目标值,$\hat{y}$是预测值,n是样本数量。
在实际应用中,通过计算模型预测值与实际值之间的MAE,可以评估模型的预测精度。MAE的值越小,表示模型预测越准确。
sklearn.metrics.mean_absolute_error函数使用方法
sklearn.metrics.mean_absolute_error
函数的使用方法如下:
sklearn.metrics.mean_absolute_error(y_true, y_pred, sample_weight=None, multioutput='uniform_average')
该函数接受以下参数:
y_true
:真实的目标值,必须是一个数组或稀疏矩阵。y_pred
:预测的目标值,必须与y_true具有相同的形状,可以是一个数组或稀疏矩阵。sample_weight
:样本权重。如果指定,则必须是一个与y_true具有相同长度的数组或稀疏矩阵,其中每个元素表示相应样本的权重。默认值为None表示所有样本的权重均相等。multioutput
:指定如何处理多输出情况。如果值为“raw_values”,则返回每个输出的MAE。如果值为“uniform_average”,则返回所有输出的平均MAE。默认值为“uniform_average”。
下面提供两个实例,演示如何使用 sklearn.metrics.mean_absolute_error
函数:
实例1:使用MAE评估线性回归模型的预测能力
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error
from sklearn.datasets import load_boston
# 加载波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target
# 训练模型
model = LinearRegression().fit(X, y)
# 预测房价
y_pred = model.predict(X)
# 计算MAE评估模型的预测能力
mae = mean_absolute_error(y, y_pred)
print(f"MAE: {mae:.2f}")
输出结果为:
MAE: 3.27
在该实例中,我们使用了 LinearRegression
模型对波士顿房价数据进行了训练,并对该数据集进行了预测。然后,我们使用 mean_absolute_error
函数计算了预测值和真实值之间的 MAE。结果显示预测值和真实值之间的平均绝对误差为3.27。
实例2:使用MAE评估随机森林分类器的预测能力
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# 加载波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练模型
model = RandomForestRegressor(n_estimators=100).fit(X_train, y_train)
# 预测房价
y_pred = model.predict(X_test)
# 计算MAE评估模型的预测能力
mae = mean_absolute_error(y_test, y_pred)
print(f"MAE: {mae:.2f}")
输出结果为:
MAE: 2.18
在该实例中,我们使用了 RandomForestRegressor
模型对波士顿房价数据进行了训练,并在测试集上进行了预测。然后,我们使用 mean_absolute_error
函数计算了预测值和真实值之间的 MAE。结果显示预测值和真实值之间的平均绝对误差为2.18。