首页 > 解决方案 > 如何在 3D 数组上应用 mean_squared_error

问题描述

我正在构建一个带有 2 个参数 $\lambda$ 和 $\alpha$ 的惩罚回归模型。我试图找到这些参数的最佳值,所以我考虑了一个不同值的网格。假设我考虑n_lambda不同的 $\lambda$ 值和n_alpha不同的 $\alpha$ 值。为了测试模型的性能,我考虑 $n$ 数据观察,我有我的响应变量的真实值,我计算每个参数对的这些观察的预测。

我将我的预测存储到一个维度为 的 3D 数组矩阵中(n_lambda, n_alpha, n_observations)。这意味着[0, 0, :]该矩阵的元素包含对 $\lambda$ 的第一个值和 $\alpha$ 的第一个值的 n 个观测值的预测。

现在我想为我的每个预测计算均方误差。我知道我可以使用嵌套的 for 循环来做到这一点,例如:

from sklearn.metrics import mean_squared_error
error_matrix = np.zeros(n_lambda, n_alpha)
for i in range(n_lambda):
    for j in range(n_alpha):
        error_matrix[i, j] = mean_squared_error(true_value, prediction[i, j, :])

这会起作用,但嵌套 for 循环并不是真正的最佳选择。我想一定有更好的方法来得到我想要的。实际上我已经尝试过使用map函数,但它不起作用,所以我会很感激任何建议。

标签: python-2.7nested-loopsmean-square-error

解决方案


推荐阅读