Ошибка среднего квадрата в Numpy?
Существует ли метод numpy для вычисления средней квадратичной ошибки между двумя матрицами?
Я пробовал поиск, но не нашел. Это под другим именем?
Если нет, как вы это преодолеете? Вы пишете это самостоятельно или используете другую библиотеку?
Ответы
Ответ 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()