Как применить mean_squared_error к трехмерному массиву - PullRequest
0 голосов
/ 25 апреля 2018

Я строю модель регрессионного наказания с 2 параметрами $ \ lambda $ и $ \ alpha $.Я пытаюсь найти оптимальные значения для этих параметров, поэтому я рассматриваю сетку различных значений.Допустим, я рассматриваю n_lambda разные значения $ \ lambda $ и n_alpha разные значения $ \ alpha $.Чтобы проверить работоспособность модели, я рассматриваю данные наблюдений за $ n $, для которых у меня есть истинное значение моего изменяемого ответа, и вычисляю прогнозы для этих наблюдений для каждой пары параметров.

Iсохранить мои прогнозы в матрице трехмерного массива с размером (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, но она не работает, поэтому я был бы признателен за любые советы.

...