Их цели одинаковы: найти похожие векторы. Что вы используете в какой ситуации? (любые практические примеры?)
Евклидовое расстояние против корреляции Пирсона против косинусного сходства?
Ответ 1
Корреляция Пирсона и сходство косинусов инвариантны к масштабированию, т.е. умножению всех элементов на ненулевую константу. Корреляция Пирсона также инвариантна к добавлению любой константы ко всем элементам. Например, если у вас есть два вектора X1 и X2, а ваша корреляционная функция Пирсона называется pearson()
, pearson(X1, X2) == pearson(X1, 2 * X2 + 3)
. Это довольно важное свойство, потому что вам часто неважно, что два вектора похожи в абсолютных терминах, только они меняются одинаково.
Ответ 2
Различие между Коэффициентом корреляции Пирсона и сходством Косина можно увидеть по их формулам:
Причина Коэффициент корреляции Пирсона является инвариантом к добавлению любой константы в том, что средства вычитаются по построению. Легко также видеть, что Коэффициент корреляции Пирсона и сходство Косина эквивалентны, когда X
и Y
имеют средства 0
, поэтому мы можем думать о Коэффициенте корреляции Пирсона как унизительной версии сходства Косина.
Для практического использования рассмотрим возврат двух активов X
и Y
:
In [275]: pylab.show()
In [276]: x = np.array([0.1, 0.2, 0.1, -0.1, 0.5])
In [277]: y = x + 0.1
Эти доходы от активов имеют точно такую же изменчивость, которая измеряется коэффициентом корреляции Пирсона (1), но они не совсем аналогичны, что измеряется по подобию косинуса (0,971).
In [281]: np.corrcoef([x, y])
Out[281]:
array([[ 1., 1.], # The off diagonal are correlations
[ 1., 1.]]) # between x and y
In [282]: from sklearn.metrics.pairwise import cosine_similarity
In [283]: cosine_similarity(x, z)
Out[283]: array([[ 0.97128586]])
Ответ 3
В дополнение к ответу @dsimcha, сходства косинусов подмножества исходных данных такие же, как и исходные данные, что неверно для корреляции Пирсона. Это может быть полезно при кластеризации подмножеств ваших данных: они (топологически) идентичны исходной кластеризации, поэтому их легче визуализировать и интерпретировать