Daha düşük boyutlu uzayda bir belge topluluğunu temsil etmek için gizli anlamsal analiz kullanıyorum. Bu belgeleri k-araçlarını kullanarak iki gruba ayırmak istiyorum.
Birkaç yıl önce, bunu Python'un gensim'ini kullanarak ve kendi k-ortalama algoritmamı yazdım. Öklid mesafesini kullanarak küme sentroidlerini belirledim, ancak daha sonra her bir belgeyi sentroidin kosinüs benzerliğine dayanarak kümelendirdim. Çok iyi çalışıyor gibiydi.
Şimdi bunu çok daha büyük bir belgeler topluluğunda yapmaya çalışıyorum. K-araç yakınsama değil ve kodumda bir hata olup olmadığını merak ediyorum. Son zamanlarda, kosinüs benzerliğini kullanarak kümelenmemeniz gerektiğini okudum , çünkü k-araçları sadece Öklid mesafesinde çalışır. Bahsettiğim gibi, daha küçük test durumumda işe yaradı.
Şimdi LSA Wikipedia sayfasında bununla karşılaşıyorum :
Belgeler ve terim vektörü gösterimleri, kosinüs gibi geleneksel kümeleme algoritmaları kullanılarak, kosinüs gibi benzerlik ölçümleri kullanılarak kümelenebilir.
Peki hangisi? Kosinüs benzerliğini kullanabilir miyim?
I then assigned each document to a cluster based on cosine similarity
- Bir doktor ve bir sentroid arasındaki kosinüs? Ve tüm dokümanlar atandıktan sonra, sentroidleri normal (Öklid) bir şekilde güncellersiniz, çünkü uzaydaki dokümanların koordinatları bilinir. Öyle mi?