Как применить mean_squared_error к трехмерному массиву
Я строю штрафную модель регрессии с 2 параметрами $\lambda$ и $\alpha$. Я пытаюсь найти оптимальные значения для этих параметров, поэтому я рассматриваю сетку различных значений. Допустим, я считаю n_lambda
разные значения $\lambda$ и n_alpha
разные значения $\alpha$. Чтобы проверить производительность модели, я рассматриваю данные наблюдений за $ n $, для которых у меня есть истинное значение моего изменяемого отклика, и вычисляю прогнозы для этих наблюдений для каждой пары параметров.
Я храню свои прогнозы в матрице трехмерного массива с размерностью (n_lambda, n_alpha, n_observations)
, Это означает, что элемент [0, 0, :]
этой матрицы содержит предсказания для n наблюдений для первого значения $\lambda$ и первого значения $\alpha$.
Теперь я хочу вычислить для каждого из моих прогнозов среднеквадратичную ошибку. Я знаю, что могу сделать это, используя вложенные циклы, такие как:
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, :])
Это бы сработало, но вложение для циклов не совсем оптимально. Я думаю, должен быть лучший способ получить то, что я хочу. На самом деле я пытался использовать map
функция, но она не работает, поэтому я был бы признателен за любые советы.