Подтвердить что ты не робот

Ошибка среднего квадрата в Numpy?

Существует ли метод numpy для вычисления средней квадратичной ошибки между двумя матрицами?

Я пробовал поиск, но не нашел. Это под другим именем?

Если нет, как вы это преодолеете? Вы пишете это самостоятельно или используете другую библиотеку?

4b9b3361

Ответ 1

Как было предложено @larsmans, вы можете использовать:

mse = ((A - B) ** 2).mean(axis=ax)
  • с ax=0 среднее выполняется вдоль строки для каждого столбца, возвращая массив
  • с ax=1 среднее выполняется по столбцу, для каждой строки возвращается массив
  • с ax=None среднее выполняется по элементу по массиву, возвращая одно значение

Ответ 2

Это не часть numpy, но она будет работать с объектами numpy.ndarray. A numpy.matrix можно преобразовать в numpy.ndarray, а a numpy.ndarray можно преобразовать в numpy.matrix.

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(A, B)

См. Scikit Learn mean_squared_error для документации о том, как управлять осью.

Ответ 3

Другая альтернатива принятому ответу, которая позволяет избежать любых проблем с умножением матрицы:

 def MSE(Y, YH):
     return np.square(Y - YH).mean()

Из документов для np.square: "Возвращаем квадрат элемента к входу".

Ответ 4

Еще больше numpy

np.square(np.subtract(A, B)).mean()