Чи існує метод numpy для обчислення середньоквадратичної помилки між двома матрицями?
Я намагався шукати, але не знайшов жодного. Це під іншою назвою?
Якщо немає, то як це подолати? Ви пишете це самостійно або використовуєте іншу бібліотеку?
Чи існує метод numpy для обчислення середньоквадратичної помилки між двома матрицями?
Я намагався шукати, але не знайшов жодного. Це під іншою назвою?
Якщо немає, то як це подолати? Ви пишете це самостійно або використовуєте іншу бібліотеку?
Відповіді:
Ви можете використовувати:
mse = ((A - B)**2).mean(axis=ax)
Або
mse = (np.square(A - B)).mean(axis=ax)
ax=0середнім значенням виконується вздовж рядка, для кожного стовпця, повертаючи масивax=1середнім значенням виконується вздовж стовпця, для кожного рядка, повертаючи масивax=Noneсереднім значенням виконується елементно вздовж масиву, повертаючи скалярне значенняnp.ndarrayволю, виконайте елементне множення для a**2, але використання np.matrixlib.defmatrix.matrixволі зробіть матричне множення для a**2...
Acmp = np.array(A, dtype=int))
np.nanmean(((A - B) ** 2))якщо відсутні значення
Це не є частиною numpy, але це буде працювати з numpy.ndarrayоб’єктами. A numpy.matrixможна перетворити на a, numpy.ndarrayа a numpy.ndarray- на a numpy.matrix.
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(A, B)
Див. Scikit Learn mean_squared_error для отримання документації щодо управління віссю.
Ще більше онімілий
np.square(np.subtract(A, B)).mean()
Стандартні методи Numpy для розрахунку середньої квадратичної помилки (дисперсії) і його квадратний корінь (стандартне відхилення) є numpy.var()і numpy.std()дивіться тут і тут . Вони застосовуються до матриць і мають такий самий синтаксис, як numpy.mean().
Я припускаю, що питання та попередні відповіді могли бути опубліковані до того, як ці функції стали доступними.
((A - B) ** 2).mean(axis=ax), деax=0на стовпець,ax=1це на рядок іax=Noneдає загальний підсумок.