Руководство о том, как рассчитать ковариацию без использования NumPy.
Ковариация — это совместная изменчивость двух случайных величин, т. е. если значение переменной x_ii увеличивается так, как значение x_ij изменения. Если значение x_ii увеличивается вместе со значением x_ij, которое увеличивается (и уменьшается вместе), мы можем скажем, ковариация положительна. Если они движутся в противоположных направлениях, то ковариация отрицательна, а если они не коррелированы, ковариация равна 0 (ноль).
Для вычисления ковариации мы можем использовать метод ковариации NumPy:
import numpy as np a = [[1,2,3],[6,7,8]] c1 = np.cov(a) print(c1) >> [[1. 1.] [1. 1.]]
Мы можем реализовать его без использования NumPy или любого внешнего пакета в Python. Прежде всего, нам нужно понять, как вычислить ковариацию. Ковариация матрицы может быть рассчитана по следующей формуле:
q_jk – элемент ковариационной матрицы (j-я строка, k-столбец). По сути, мы вычисляем среднее значение каждого вектора-строки, вычитаем это среднее значение из каждого элемента в векторах-строках и агрегируем (суммируем) произведения этих значений.
Чтобы реализовать это, мы сначала определяем вспомогательную функцию для поиска отдельных значений ковариации q_jk по двум векторам-столбцам матрицы; например v_j, v_k
После определения нашей вспомогательной функции мы готовы вычислить значения ковариации для каждой ячейки в матрице. Для этого наша функция получит матрицу в качестве входных данных и создаст ковариационную матрицу:
Вот и все, мы закончили! Кроме того, мы можем добавить несколько дополнительных элементов управления, чтобы проверить правильность формата и размера ввода. Мы можем написать вспомогательную функцию, как показано ниже, для проверки длин векторов перед вычислением матрицы ковариации:
Окончательный код будет выглядеть следующим образом:
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.