Çok boyutlu verileri (LSI) 2B olarak görüntüleme


11

Belgeler arasındaki benzerlikleri bulmak için gizli anlamsal indeksleme kullanıyorum ( teşekkürler, JMS! )

Boyut küçültmeden sonra, belgeleri çok iyi çalışan kümeler halinde gruplamak için k-ortalama kümelemeyi denedim. Ama biraz daha ileri gitmek ve belgeleri herhangi bir iki düğüm arasındaki mesafenin benzerlikleriyle ters orantılı olduğu bir düğüm kümesi olarak görselleştirmek istiyorum (son derece benzer düğümler birbirine yakın).

Verilerim> 2 boyut olduğundan, benzerlik matrisini 2 boyutlu bir grafiğe doğru bir şekilde indiremediğim beni çarpıcı kılıyor. İlk sorum: Bunu yapmanın standart bir yolu var mı?

Verilerimi iki boyuta indirgeyebilir ve sonra bunları X ve Y ekseni olarak çizebilir miyim ve bu ~ 100-200 belge grubu için yeterli olur mu? Çözüm buysa, verilerimi en başından itibaren 2 boyuta azaltmak daha mı iyi, yoksa çok boyutlu verilerimden iki "en iyi" boyutu seçmenin herhangi bir yolu var mı?

Bir fark yaratırsa Python ve gensim kütüphanesini kullanıyorum.


Boyutsallığı neden azaltmanız gerekiyor? İstediğiniz grafiği oluşturmak için, yalnızca kenar uzunluğunun belgeler arasındaki mesafeyle orantılı olduğu kenarlara ihtiyacınız vardır. K-anlamına gelen kümelemeniz için kullanılan metrikten zaten buna sahipsiniz.
Aman

@ 2B düzlemde> 2 belge arasındaki benzerliği görüntülemek için çalışmayan Adam (grafik). Tabii ki, A ve B noktalarını k-ortalama mesafesine göre ayırarak çizebilirim. ama sonra A ve B mesafelerine bağlı olarak C noktasını çizmem gerektiğinde, tipik olarak 2B alanda çift yönlü ilişkileri tatmin eden hiçbir nokta yoktur.
Jeff

Yanıtlar:


7

MDS (çok boyutlu ölçeklendirme) bunun için tasarlanmıştır. Eğer bir benzerlik matrisi M sunulur Kısacası, ki en yakın yaklaşım bulmak istiyoruz Bu, SVD işlem yapılabilir rank 2. Burada burada .S=XXSM=VΛV=XXX=VΛ1/2

Şimdi, özdeğerlerin azalan sırada olacağı varsayılırsa , ilk iki sütunu düzlemde istediğiniz gömme şeklindedir.ΛX

MDS için çok sayıda kod var (ve scipy'nin bazı sürümleri yoksa şaşırırdım). Her durumda, ayarladığınız python'daki bazı SVD rutinlerine erişiminiz olduğu sürece.


1
LDA bunun için daha iyi olacağını düşünüyorum. SVA aracılığıyla elde ettiğiniz PCA, OP'nin peşinde olduğu küme (sınıf) ayrımcı bilgilerini korumaz.
Zhubarb

0

Size yardımcı olabilecek ggobi adlı bir yazılım var. Çok boyutlu sözde uzayları keşfetmenizi sağlar. Çoğunlukla veri araştırması içindir, ancak arayüzü son derece dostudur ve 'sadece çalışır'!

Sadece bir CSV formatına (RI'de sadece varsayılan parametrelerle write.csv kullanın) veya bir XML dosyasına (bu format daha fazla kontrole izin verir; Genellikle CSV'de masamı kaydedip ggobi ile XML'ye dışa aktarır ve manuel olarak düzenlerim örneğin bazı faktörlerin sırasını değiştirmek için).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.