Я пытаюсь получить собственные векторы и значения для набора данных MNIST. Я тестирую концепцию набора данных, чтобы я мог перенести ее в другой набор данных.
У меня есть матрица M, где строки - это изображения, а столбцы - значения пикселей. Я пытаюсь сделать это двумя способами (взято из https://mml-book.github.io/book/mml-book.pdf, глава 10, раздел 1 и раздел 5):
M имеет форму 500 строк x 784 столбца
Сначала я использую следующий код:
V = cov(M.T)
, а затем:
V2 = np.dot(matrix.T,matrix) / 783
Согласно руководству numpy по cov (), кажется, что с одной переменной, заданной I, результаты обеих должны быть идентичны, но это не так. https://numpy.org/doc/stable/reference/generated/numpy.cov.html
извините, если вопрос прост и есть очевидный ответ
РЕДАКТИРОВАТЬ: если я возьму наивысший собственный вектор обоих методов и масштабируйте его так, чтобы наименьшее число было равно нулю, а наибольшее - 255, я получаю тот же вектор. Что мне здесь не хватает?