如何在3D数组上使用mean_squared_error

时间:2018-04-25 18:32:12

标签: python-2.7 nested-loops mean-square-error

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

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

现在我想为每个预测计算均方误差。我知道我可以使用嵌套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功能,但它没有工作,所以我很感激任何建议。

0 个答案:

没有答案