You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多输出回归模型RMSE计算疑问:sklearn两种方法结果为何不同?

多输出回归RMSE计算:两种方法的差异与选择

两种方法都是合法的RMSE计算方式,但对应不同的统计逻辑,结果差异源于计算顺序的不同:

  • 方法1是各输出维度RMSE的平均值
  • 方法2是全局平均MSE的平方根

方法1:mean_squared_error(y_test, y_pred, squared=False)

计算逻辑(默认multioutput="uniform_average"参数):

  1. 对每个输出维度,单独计算该维度所有样本的均方误差(MSE)
  2. 对每个维度的MSE开根号,得到该维度的RMSE
  3. 将所有维度的RMSE取算术平均,得到最终结果

用公式表示:
$$\text{RMSE}1 = \frac{1}{n{\text{outputs}}} \sum_{j=1}^{n_{\text{outputs}}} \sqrt{\frac{1}{n_{\text{samples}}} \sum_{i=1}^{n_{\text{samples}}} (y_{ij} - \hat{y}_{ij})^2}$$


方法2:math.sqrt(mean_squared_error(y_test, y_pred))

计算逻辑:

  1. 计算所有样本、所有输出维度的平方误差的算术平均值(即全局MSE)
  2. 对这个全局MSE开根号,得到最终结果

用公式表示:
$$\text{RMSE}2 = \sqrt{\frac{1}{n{\text{samples}} \times n_{\text{outputs}}} \sum_{i=1}^{n_{\text{samples}}} \sum_{j=1}^{n_{\text{outputs}}} (y_{ij} - \hat{y}_{ij})^2}$$


为什么结果不同?

根据Jensen不等式,平方根作为凹函数,满足:
$$\sqrt{\frac{1}{k} \sum_{j=1}^k x_j} \geq \frac{1}{k} \sum_{j=1}^k \sqrt{x_j}$$
只有当所有输出维度的MSE完全相等时,等号才成立。你的测试结果中$\text{RMSE}_2 > \text{RMSE}_1$,正好符合这个规律,说明不同输出维度的预测误差存在差异。


哪种方法合理?

取决于你的业务需求:

  • 如果需要先评估每个输出维度的预测精度,再取各维度的平均水平,选方法1
  • 如果需要从全局视角衡量所有样本、所有维度的整体预测误差,选方法2

内容的提问来源于stack exchange,提问作者tgwsk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:46:29