均方对数误差(Mean Squared Logarithmic Error, MSLE)是一种用于衡量回归模型预测准确性的指标。该指标通过计算预测值与真实值之间对数误差的平方的平均值来评估模型性能。在机器学习领域,特别是在预测连续数值型数据时,MSLE是一个常用的损失函数。
y_true
:真实目标值,可以是形状为(n_samples,)或(n_samples, n_outputs)的数组。
y_pred
:预测目标值,形状应与真实目标值相同。
sample_weight
:可选参数,样本权重,用于调整每个样本在损失计算中的权重。
multioutput
:多输出处理方式,可以是'raw_values'、'uniform_average'或形状为(n_outputs,)的数组。
返回一个非负浮点数或浮点数数组,表示每个单独目标的损失值。最佳值为0.0。
以下是使用Python的sklearn库中的mean_squared_log_error函数的示例。
from sklearn.metrics import mean_squared_log_error
# 单输出示例
y_true = [3, 5, 2.5, 7]
y_pred = [2.5, 5, 4, 8]
print(mean_squared_log_error(y_true, y_pred)) # 输出: 0.039...
# 多输出示例
y_true = [[0.5, 1], [1, 2], [7, 6]]
y_pred = [[0.5, 2], [1, 2.5], [8, 8]]
print(mean_squared_log_error(y_true, y_pred)) # 输出: 0.044...
# 返回所有输出的误差
print(mean_squared_log_error(y_true, y_pred, multioutput='raw_values')) # 输出: array([0.00462428, 0.08377444])
# 使用自定义权重平均误差
print(mean_squared_log_error(y_true, y_pred, multioutput=[0.3, 0.7])) # 输出: 0.060...
通过这些示例,可以看到如何使用均方对数误差来评估回归模型的性能。在实际应用中,根据数据的特点和需求,可以选择不同的多输出处理方式来优化模型评估结果。