Руководство о том, как рассчитать ковариацию без использования 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.