Sus objetivos son todos iguales: encontrar vectores similares. ¿Cuál usa en qué situación? (¿algún ejemplo práctico?)distancia euclidiana vs Pearson similitud de correlación vs coseno?
Respuesta
La correlación de Pearson y la similitud del coseno son invariables a escala, es decir, multiplican todos los elementos por una constante distinta de cero. La correlación de Pearson también es invariante para agregar cualquier constante a todos los elementos. Por ejemplo, si tiene dos vectores X1 y X2, y su función de correlación de Pearson se llama pearson()
, pearson(X1, X2) == pearson(X1, 2 * X2 + 3)
. Esta es una propiedad bastante importante porque a menudo no te importa que dos vectores sean similares en términos absolutos, solo que varían de la misma manera.
La diferencia entre Pearson Coeficiente de correlación y el coseno de similaridad se puede ver en sus fórmulas:
La razón Pearson Coeficiente de correlación es invariante a la adición de cualquier constante es que los medios se restan a cabo por la construcción. También es fácil ver que Pearson Correlation Coefficient y Cosine Similarity son equivalentes cuando X
y Y
tienen medias de 0
, por lo que podemos pensar en Pearson Correlation Coefficient como una versión degradada de Cosine Similarity.
Para el uso práctico, vamos a considerar los retornos de los dos activos x
y 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
rendimientos de estos activos tienen exactamente la misma variabilidad, que se mide por Pearson coeficiente de correlación (1) , pero no son exactamente similares, lo que se mide por la similitud del coseno (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]])
Además de respuesta de @ dsimcha, las similitudes coseno de un subconjunto de los datos originales son el mismo que el de los datos originales, que no es cierto para la correlación de Pearson. Esto puede ser útil cuando se agrupan subconjuntos de sus datos: son (topológicamente) idénticos a la agrupación original, por lo que se pueden visualizar e interpretar más fácilmente
- 1. ¿Correlación ponderada de Pearson?
- 2. Similitud de coseno
- 3. agrupamiento con similitud de coseno
- 4. Buscar similitud del coseno entre dos matrices
- 5. Coseno ¿Similitud de vectores de diferentes longitudes?
- 6. Código de similitud de coseno (vectores no de término)
- 7. Python: TF-IDF-coseno: encontrar similitud de documentos
- 8. ¿Cómo calculo la similitud del coseno de dos vectores?
- 9. Similitud de cadenas -> distancia de Levenshtein
- 10. similitud de la oración n-gram con la similitud del coseno medida
- 11. ¿Es posible modelar la similitud del coseno en Solr/Lucene?
- 12. ¿Cómo se puede calcular la distancia euclidiana con numpy?
- 13. Métodos basados en la distancia de Levenshtein Vs Soundex
- 14. Python vs Java para procesamiento de lenguaje natural
- 15. Comparar algoritmos de similitud
- 16. aplicación simple de N-Gram, TF-IDF y la similitud del coseno en Python
- 17. coseno similitud de vectores, con <O (n^2) la complejidad
- 18. J2ME VS Android VS iPhone VS Symbian VS Windows CE
- 19. TagSoup vs Jsoup vs HTML Analizador vs vs HotSax
- 20. Atomikos vs JOTM vs Bitronix vs?
- 21. control.BeginInvoke() Vs Dispatcher Vs SynchronizationContext Vs .. - FIABILIDAD
- 22. ACE vs Boost vs Poco vs wxWidgets
- 23. 'método' vs. 'mensaje' vs. 'función' vs. '???'
- 24. Rhino simulacro vs Typemock vs JustMock vs
- 25. método vs función vs procedimiento vs clase?
- 26. .NET vs ASP.NET vs CLR vs ASP
- 27. VS 2008 vs VS 2008 Express
- 28. Exec vs vs ExecWait ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs vs ExecDos ExeCmd
- 29. bigtable vs cassandra vs simpledb vs dynamo vs couchdb vs hypertable vs riak vs hbase, ¿qué tienen en común?
- 30. Acumular vs fold vs reducir vs compress
Disculpas. Estaba un poco equivocado. La similitud del coseno es ** no ** invariante al agregar una constante a todos los elementos. He arreglado esto El punto más grande aún se mantiene. – dsimcha