【问题标题】:RMSE for Multidimensional Data多维数据的 RMSE
【发布时间】:2021-06-16 19:52:17
【问题描述】:

对于一维数据或由单列组成的数据,计算误差 (RMSE) 很简单。例如,我们可以使用 python 库

from sklearn.metrics import mean_squared_error
RMSE = mean_squared_error(y_actual, y_predicted, squared=TRUE)

模型可以有多个输出列 2、10 甚至 100..

如果数据列少,如何计算RMSE

例如:

y_act = np.array([1.022,0.94,1.278,2.096,1.404,
2.035,1.622,2.348,1.909,1.678, 
1.638,1.742,2.279,1.878,2.045] ) 
y_actual = y_act.reshape((5,3))
y_pred = np.array([1.021,0.84,1.111,2.091,1.314,
2.131,1.622,2.348,1.888,1.178, 
1.238,1.632,2.119,1.677,2.145] )
y_predicted = y_pred.reshape((5,3))

RMSE(y_actual - y_predicted)?

误差公式如何变化?

【问题讨论】:

    标签: python machine-learning multidimensional-array


    【解决方案1】:

    公式保持不变。您如何使用它取决于您的用例。

    在您的情况下,您有 5 个样本和 3 个输出(列)。可能您在 3 种不同的算法上运行了一些模型并从中获得了这些结果。

    与一维版本的不同之处在于您希望如何处理每个输出。你可以用它做三件事。在 1D 版本中,您只有一个值,这里有 3 个。

    1. 保持原样:在这种情况下,所有 3 个输出都有一个 MSE 值。
    2. 统一平均:取三个 MSE 值的平均值,得到一个 MSE 值。
    3. 加权平均:您可以对三个 MSE 值进行加权平均。

    这些功能在 sklearn 中的“多输出”参数下可用。

    以下示例可帮助您进行手动计算与包计算

    【讨论】:

    • 不要张贴代码图片;将代码复制并粘贴为 text,以便 OP 可以实际复制和使用它。另外,请不要在答案中包含接受答案的恳求(已删除)。
    • 我正在运行一个模型,我得到十个输出。这是多变量示例。我只是简单地提出了问题。我不能让它保持原样。
    • @desertnaut 会照办。
    • @Green - 在一个多变量的例子中,如果你不能让它们保持原样,那么你必须想办法从多个输出值中获取 1 个结果值。在这种情况下,您可以使用我上面强调的统一平均或加权平均方法。
    猜你喜欢
    • 2020-02-23
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2021-12-17
    • 2017-10-12
    相关资源
    最近更新 更多