Parece que a semelhança de cosseno de dois recursos é apenas o produto escalar escalonado pelo produto de suas magnitudes. Quando a semelhança de cosseno produz uma métrica de distância melhor que o produto escalar? Ou seja, o produto escalar e a semelhança de cosseno têm diferentes pontos fortes ou fracos em diferentes situações?
classification
ahoffer
fonte
fonte
Respostas:
Pense geometricamente. A similaridade do cosseno se importa apenas com a diferença de ângulo, enquanto o produto escalar se importa com o ângulo e a magnitude. Se você normalizar seus dados com a mesma magnitude, os dois serão indistinguíveis. Às vezes é desejável ignorar a magnitude, portanto a semelhança de cosseno é boa, mas se a magnitude desempenhar um papel, o produto escalar seria melhor como medida de similaridade. Observe que nenhum deles é uma "métrica de distância".
fonte
Você está certo, a semelhança de cosseno tem muito em comum com o produto escalar de vetores. Na verdade, é um produto escalonado, dimensionado por magnitude. E por causa do dimensionamento, é normalizado entre 0 e 1. O CS é preferível porque leva em consideração a variabilidade das frequências relativas dos dados e dos recursos. Por outro lado, o produto de ponto simples é um pouco "mais barato" (em termos de complexidade e implementação).
fonte
Gostaria de acrescentar mais uma dimensão às respostas dadas acima. Geralmente usamos semelhança de cosseno com texto grande, porque o uso de matriz de distância em parágrafos de dados não é recomendado. E também, se você pretende que seu cluster seja amplo, tende a usar a semelhança de cosseno, pois captura a similaridade em geral.
Por exemplo, se você tiver textos com duas ou três palavras no máximo, sinto que a similaridade do cosseno não alcança a precisão alcançada pela métrica de distância.
fonte
Há uma excelente comparação das métricas de similaridade comuns baseadas em produtos internos aqui .
Em particular, a Similaridade Cosina é normalizada para ficar dentro de [0,1], diferentemente do produto escalar, que pode ser qualquer número real, mas, como todo mundo está dizendo, isso exigirá ignorar a magnitude dos vetores. Pessoalmente, acho que é uma coisa boa. Penso na magnitude como uma estrutura interna (dentro do vetor) e no ângulo entre os vetores como estrutura externa (entre os vetores). São coisas diferentes e (na minha opinião) são frequentemente melhor analisadas separadamente. Não consigo imaginar uma situação em que prefiro calcular produtos internos do que calcular semelhanças de cosseno e apenas comparar as magnitudes posteriormente.
fonte
Visualmente, todos os seus dados vivem em uma esfera unitária. Usar um produto de ponto como distância fornecerá uma distância cordal, mas se você usar essa distância de cosseno, ela corresponderá ao comprimento do caminho entre os dois pontos na esfera. Isso significa que, se você deseja obter uma média dos dois pontos, escolha o ponto intermediário nesse caminho (geodésico) em vez do ponto médio obtido da 'média aritmética / produto pontual / geometria euclidiana', pois esse ponto não não vive na esfera (portanto, essencialmente, não é o mesmo objeto)!
fonte
Como outros já apontaram, essas não são "métricas" de distância, porque não atendem aos critérios de métrica. Em vez disso, diga "medida de distância".
Enfim, o que você está medindo e por quê? Essas informações nos ajudarão a dar uma resposta mais útil para sua situação.
fonte