Я написал метод, который возвращает ковариационную матрицу данной матрицы, я думаю, что в коде, который я написал, отсутствует какая-то нормализация, поскольку полученная мной матрица ровно несколько раз постоянна, чем матрица, которую я получаю из np.cov ( )
import numpy as np
def calculate_covariance(matrix: np.array):
mean_rows = np.zeros(matrix.shape[1])
for rows in matrix:
mean_rows += rows
mean_rows /= matrix.shape[0]
mean_matrix = []
for _ in range(matrix.shape[0]):
mean_matrix.append(mean_rows)
mean_matrix = np.array(mean_matrix)
subtracted_matrix = matrix - mean_matrix
cov_matrix = np.dot(subtracted_matrix.T, subtracted_matrix)
return cov_matrix