K-araçlarında optimal k'nin olmadığı durumlar var mı?


11

Bu en azından birkaç saattir aklımda. Ben k-ortalamalar algoritmasından ( kosinüs benzerlik metriği ile ) çıktı için optimal bir k bulmaya çalışıyordum, bu yüzden çarpıklığı kümelerin sayısının bir fonksiyonu olarak çizdim. Veri setim, 600 boyutlu bir alanda 800 belgeden oluşan bir koleksiyon.

Anladığım kadarıyla, bu eğri üzerindeki diz noktasını veya dirsek noktasını bulmak, en azından yaklaşık verilerimi yerleştirmem gereken kümelerin sayısını söylemelidir. Grafiği aşağıya koydum. Kırmızı dikey çizginin çizildiği nokta, maksimum ikinci türev testi kullanılarak elde edildi . Tüm bunları yaptıktan sonra, çok daha basit bir şeye sıkıştım: bu grafik bana veri seti hakkında ne anlatıyor?

Bana kümelenmeye değmediğini ve belgelerimin yapısının olmadığını veya çok yüksek bir k ayarlamam gerektiğini söylüyor mu? Garip bir şey, düşük k ile bile, benzer belgelerin birlikte kümelendiğini görüyorum, bu yüzden bu eğriyi neden aldığımdan emin değilim. Düşüncesi olan var mı?

resim açıklamasını buraya girin


2
Dürüstçe anlamadığım şey, yakınlık matrisi girdisi (ve kosinüs olmak!) İle k-ortalama kümelemeyi nasıl kullanabileceğinizdir. K-kümeleme ham veri (X değişkenleri nesneleri) girdisine ihtiyaç duyar ve dahili olarak öklid mesafesinden çalışır.
ttnphns

2
@ttnphns: Umarım amacınızı anladım ama bilgim dahilinde, k-araçlarıyla herhangi bir mesafe metriğini kullanabiliriz, değil mi? Bunu Python'da yapıyorum ama R için bir kütüphane bile var gibi görünüyor: cran.r-project.org/web/packages/skmeans/index.html Giriş bir yakınlık matrisi değil, terms x documenttekil vektör yaptıktan sonra elde edildi ayrışma. Lütfen yanılıyorsam beni düzeltin.
Efsane

Küresel k- kosinüs ölçüsüne dayalı kümeleme demek benim için yeni, itiraf etmeliyim. Bir gün bunun hakkında daha fazla okumak isterim.
ttnphns

@ttnphns: Geri döndüğün için teşekkürler. Sadece elma ve portakalları birlikte kullanmadığımdan emin olmak istedim :)
Legend

Modifiye edilmemiş k-ortalamalar için tek mantıklı olan -Norms. Çünkü ortalama vektörleri hesaplar ve bu diğer mesafe fonksiyonları için uygun bir ML tahmini değildir. Lp
QUIT - Anony-Mousse

Yanıtlar:


12

Çoğu durumda, bir arsanın temelde verilerde küme yapısı olmadığı anlamına geldiğini düşünürdüm. Bununla birlikte, bunun gibi çok yüksek boyutlardaki kümelenme, Öklid uzaklık metriğinde olduğu gibi aldatıcıdır, tüm mesafeler boyutların sayısı arttıkça aynıdır. Bu konuyla ilgili bazı makaleler için bu Wikipedia sayfasına bakın . Kısacası, sorun sadece veri kümesinin yüksek boyutsallığı olabilir.

Bu aslında "boyutluluğun laneti" dir, bu Wikipedia sayfasına da bakınız .

İlgilenebilecek bir yazı Sanguinetti, G., "Kümelenmiş veri kümelerinin boyutsal olarak azaltılması", IEEE Desen Analizi ve Makine İstihbaratı İşlemleri, cilt. 30 hayır. 3, sayfa 535-540, Mart 2008 ( www ). Küme yapısını vurgulayan düşük boyutlu bir alan arayan LDA'nın denetimsiz bir versiyonu gibi. Belki bunu k-araçlarını gerçekleştirmeden önce bir özellik çıkarma yöntemi olarak kullanabilirsiniz?


Ayy üzgünüm. Kosinüs benzerliğini kullandığımı söylemeliydim.
Efsane

Boyutsallığın lanetinin kosinüs benzerliği için de geçerli olduğunu düşünüyorum. Temel olarak, boyutların sayısı arttıkça bir dağılımı tanımlamak için (en kötü durum) katlanarak daha fazla desene ihtiyacınız olduğunu söylüyor. Etkin bir şekilde yaptığınız kümelemede alt popülasyonları temsil eden dağılımları tanımlamaktır, bu nedenle yüksek boyutlardaki kümelemenin doğası gereği zor olması muhtemeldir.
Dikran Marsupial

+1 Bağlantı için teşekkürler. Ben gidip geri döneceğim. Boyut sayısını azaltmak için k-ortalamaları uygulamadan önce orijinal matrisime SVD uyguladım.
Efsane

3

Kosinüs benzerliğini tam olarak nasıl kullanıyorsunuz? Küresel K-araçları olarak adlandırılan bu mudur? Veri kümeniz oldukça küçük, bu yüzden bir ağ olarak görselleştirmeye çalışacağım. Bunun için bir benzerlik (gerçekten de kosinüs benzerliği veya Pearson korelasyonu) kullanmak, bir kesim uygulamak (sadece belirli bir benzerliğin üzerindeki ilişkileri düşünün) ve sonucu örneğin Cytoscape veya BioLayout'ta bir ağ olarak görmek doğaldır. . Bu veriler hakkında fikir edinmek için çok yararlı olabilir. İkincisi, veri matrisiniz için tekil değerleri veya uygun şekilde dönüştürülmüş ve normalleştirilmiş bir matrisin (bir biçimde elde edilen bir belge-belge matrisi) özdeğerlerini hesaplayacağım. Küme yapısı (tekrar) sıralı özdeğerler veya tekil değerler listesinde bir sıçrama olarak görünmelidir.


+1 İşaretçiler için teşekkür ederim. Cytoscape'in farkında değildim. Onu deneyeceğim. Ve evet, kosinüs benzerliğine sahip k-araçlarına Küresel k-araçları denir. Bu k-araçlarını SVD uyguladıktan ve boyut sayısını azalttıktan sonra uyguladım. Boyut sayısını azaltma şeklim, varyans kuralını kullanmaktı (orijinal verilerdeki varyansın% 95'ine katkıda bulunan tekil değerleri seçin).
Efsane

Sakıncası yoksa, bunun nasıl yapılacağını (veya en azından böyle bir şeyi) açıklayan bir eğiticiye işaret edebilir misiniz? Matrisi oluşturduktan sonra, onu dışa aktarıp ardından Cytoscape'e alıp önerdiklerinizi gerçekleştirebilir miyim? Merak ettiğim şey Cytoscape'in kosinüs benzerliği için yerleşik yöntemleri olup olmadığı veya bazı veri formatlarını önceden hesaplayıp girdi olarak vermek zorunda mıyım?
Efsane

Bu programlarla çalışırken, tüm ikili benzerlikleri harici olarak hesaplar, eşik değerine göre filtreler ve <label1> <label2> <benzerlik> biçiminde bir dosya üretirim. Her ikisi de bu girdiyi okuyabilmelidir. BioLayout'ta bence bir .txt soneki olması gerekir; CytoScape 'tablodan içe aktar' kullanın.
mikans

Anladım. Bunu yapacağım ve yakında geri döneceğim. Tekrar teşekkürler.
Efsane

Aptalca soru için özür dilerim ama verilerimi <label1> <label2> <benzerlik> olarak biçimlendirdim ancak tam olarak nasıl içe aktaracağımı anlayamıyorum. File-> Import-> Network'ü Tablodan yaptım ve kaynak ve hedef sütunlarımı seçtim. Etkileşimi varsayılan olarak bıraktım. Ancak kenarlarla birlikte kenar ağırlıklarını nasıl içe aktarmam gerekir? Herhangi bir öneriniz olur mu?
Efsane

2

Genel olarak evet, k-araçları, uygun olmadığı sonucuna varılabilecek çok farklı çözümlere yakınlaşabilir. Bu özellikle düzensiz şekillere sahip kümeler için olur.

Daha fazla sezgi elde etmek için başka bir görselleştirme yaklaşımı da deneyebilirsiniz: k-ortalamaları için Graphgrams kullanarak k-ortalamaları ile birkaç çalışmayı görselleştirebilirsiniz (bkz. WEKA grafik paketi - en iyi paket yöneticisi veya burada elde edilmiştir .). burada bulundu .


1

Grafiği doğru bir şekilde anlarsam, x-eksenindeki K, y eksenindeki kümeler arasındaki mesafenin bir grafiğidir?

K-demek objektif fonksiyonunuz WCSS'yi en aza indirmek olduğu için, bu grafik her zaman monoton olarak azalmalıdır. Daha fazla küme ekledikçe, kümedeki noktalar arasındaki mesafe her zaman azalır. Bu, model seçiminin temel problemidir, bu yüzden biraz daha karmaşıklık kullanmanız gerekir.

Belki de Gap istatistiğini deneyin: www-stat.stanford.edu/~tibs/ftp/gap.ps ya da onun gibi diğerleri.

Ayrıca, K-araçlarının iş için doğru araç olmadığını da görebilirsiniz. Kaç küme bulmayı umuyorsunuz? Kümeleme için boyutsal küçültme için varyans kuralının kullanılması uygun değildir. İlk K-1 PC'lere yansıtma yaparken bu makaleye bakın: uygun bir önişleme önlemidir: http://people.csail.mit.edu/gjw/papers/jcss.ps

Projeksiyonu ilk iki temel bileşene çizerek bunun doğru bir şey olup olmadığını hızlıca görebilirsiniz. Açık bir ayrım varsa, K-araçları tamam olmalıdır, eğer değilse başka bir şeye bakmanız gerekir. Belki de K-altuzayları veya diğer altuzay kümeleme yöntemleri. Unutmayın ki bu yöntemler Öklid mesafesi için geçerlidir. Bunun kosinüs için nasıl değiştiğinden emin değilim.

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.