K-araçlarının (veya yakın akrabalarının) kümelemeyi, sadece nokta-özellik verileriyle değil, yalnızca bir mesafe matrisiyle kümelemeyi gerçekleştirin.


22

Sahip olduğum nesnelere K-aracı kümelemesi yapmak istiyorum, ancak nesneler uzayda nokta, yani objects x featuresveri kümesi tarafından tanımlanmadı . Ancak, herhangi iki nesne arasındaki mesafeyi hesaplayabiliyorum (benzerlik işlevine dayanıyor). Bu yüzden mesafe matrisini elden çıkarıyorum objects x objects.

Daha önce K-araçları kullandım, ancak bu nokta veri kümesi girdisiydi; ve uzaklık matrisi girişi ile, kümelenmelerin bir nokta gösterimi olmadan "merkez" olacak şekilde kümelerin nasıl güncelleneceği bana açık değildir. Bu normal olarak nasıl yapılır? Bunun için K-araçlarının versiyonları veya buna yakın yöntemler var mı?


Ne demek nokta olarak tanımlanmaz?
meraklı

Yanıtlar:


24

Açıkçası, k-ortalamalar ihtiyaçları hesaplamak için muktedir demektir .

Bununla birlikte, kedoid veya PAM (Medoidlerin Etrafında Bölünme) olarak bilinen iyi bilinen bir varyasyonu vardır; burada medoid, küme için en merkezi olan mevcut nesnedir. K-medoidler sadece ikili mesafelere ihtiyaç duyar.


21

Çekirdek problem ayarını tam olarak tanımlıyorsunuz ; Bir veri noktasını Öklid vektörü olarak temsil edemezseniz , ancak iç ürünü iki veri noktası arasında hala hesaplayabilir (veya tanımlayabilirseniz) , algoritmayı çekirdekleştirebilirsiniz . Aşağıdaki web sayfası algoritmanın kısa bir açıklamasını sunar:k

Çekirdek sayfa sayfasık

Bu çekirdek numarası , İstatistik ve makine öğreniminde çok popüler ve temel bir fikirdir.

Çekirdek numarasıyla ilgili Wiki sayfası

Eğer ilgileniyorsanız, Bernhard Schölkopf ve Alexander J. Smola tarafından yazılmış Çekirdeklerle Öğrenme kitabı çok güzel bir giriş olacaktır.

Max Welling'in bu notu çok hoş görünüyor; Ayrıca, R kullanıyorsanız, bu R paketine bakabilirsiniz .

MDS, sorununuzu çözmenin bir yolu olabilir, ancak çözmek istediğiniz soruna doğrudan saldırmaz; Çekirdek k anlamına gelir.


Daha fazla bağlantı eklemek istedim ancak itibarımı düşüktü. Max Welling notuna ait bu not çok hoş görünüyor; Ayrıca, R kullanıyorsanız, bu R paketine
d_ijk_stra

(+1) Siteye Hoşgeldiniz. Yorumunuzdaki bağlantıları yazının gövdesine ek olarak Schölkopf ve Smola metnine de ekledim.
kardinal

9

@gung, mesafe matrisinden veri oluşturmak için bir ön araç olarak çok boyutlu ölçeklendirmeyi (YTH) önermek için kesinlikle doğrudur points X dimensions. Sadece birkaç vuruş ekleyeceğim. K-aracı kümelemesi öklid mesafelerini ifade eder . MDS size boyut-içi koordinatlar verecek ve böylece öklid mesafelerini garanti edecektir. Metrik MDS kullanmalı ve olabildiğince büyük boyutlarda talep etmelisiniz, çünkü amacınız verileri yeniden oluşturma hatasını en aza indirmektir, 2D veya 3D olarak eşlemek değil.

Elinizde MDS yazılımınız yoksa, özdeğer ayrışması veya tekil değer ayrıştırması gibi bazı matris fonksiyonlarına sahipseniz ne olur? O zaman basit metrik MDS'yi kendiniz de yapabilirsiniz - Ana Koordinatlar analizi (PCoA) olarak da bilinen Torgerson MDS. Biraz "bükülmüş" Temel Bileşenler analizi anlamına gelir. Oldukça basit olmasına rağmen, burada açıklamayacağım. Bu konuda birçok yerde okuyabilirsiniz, örneğin burada .

Son olarak, "uzaklık matrisi girişi için K araçları" nı doğrudan programlamak mümkündür - PCoA veya başka bir metrik MDS yapan işlevleri çağırmak veya yazmaksızın. Biliyoruz ki, (a) merkezden kare sapmaların toplamı, nokta sayısına bölünen çift kareli kare Öklid mesafelerinin toplamına eşittir ; ve (b) küme centroidleri arasındaki mesafenin uzaklık matrisinden nasıl hesaplanacağını bilmek ; (c) ve ayrıca , Toplam Kareler toplamının K-araçlarıyla nasıl ilişkili olduğunu da biliyoruz . Hepsi bir arada, istediğiniz algoritmayı basit ve karmaşık bir taahhüt değil yazıyor. K-araçlarının sadece Öklid mesafeleri / öklid uzayları için olduğu hatırlanmalıdır. Öklid olmayan mesafeler için K-medidler veya başka yöntemler kullanın.

Benzer bir soru .


7

Kesinlikle "normal" nasıl yapıldığını bilmiyorum ve kayıt için küme analizi hakkında fazla bir şey bilmiyorum. Ancak, Çok Boyutlu Ölçeklemeye aşina mısınız? ( Burada başka bir referans, wiki ve etiketi altında CV'de arama yapabilirsiniz .) Çok boyutlu ölçeklendirme, durumunuza benzeyen, çift mesafeli bir matris alır. MDS'den nesnelerin yerlerini, yeterince temsil etmek için gereken en düşük boyutlu uzayda elde edebilirsiniz. Sanırım bu yerleri daha sonra k-means gibi küme analizi yapmak için kullanabilirsiniz; alternatif olarak, bir kez çıktı aldığınızda, CA'ya artık ihtiyacınız kalmayabilir.

R kullanıp kullanmadığınızı bilmiyorum, ama işte MD'de RS'de bir bölüm içeren Psikometri'nin görev görünümü.


4

k

Senin durumunda, temelde yapmanız gereken şey:

  1. D
  2. DbenjDjben
  3. Dc
  4. Sc=-12Dc
  5. ScScS~c
  6. S~c=VΛV
  7. n-1X=VΛ1/2

n


Açıklanan adımlar cevabımda bahsettiğim Asli Koordinat Analizinden başka bir şey değildir.
ttnphns

Lütfen 5. adımınızı örneklendirin. Son (negatif) özdeğer (ler) in S matris elemanlarından çıkarılması, S'nin pozitif yarı-yarı-sonlu olmasını sağlamaya yardımcı olmaz.
ttnphns

@ Ttnphns: Temel olarak PCA, evet, ancak mesafelerin metrik olmasını gerektirmiyor. Adım 5'in açıklaması talihsizdi, tespit ettiğiniz için teşekkürler. Şimdi açık mı?
blubb

Tüm özdeğerler olumsuz özdeğerler toplamı çıkarılarak ve daha sonra restorasyon S matrisi S. This çapraz elemanların tutarınızdan çıkararak eşdeğerdir endeed haline getirir pozitif (yarı) kesin fakat ...
ttnphns

... ancak, bu şekilde elde edilen öklid veri X'in , orijinal farklılıklardan D çok uzak olan öklid mesafeleri D_new üretmesi anlamında çok kötü. D, bu yüzden, 5. adımınızı tavsiye etmem. özdeğerleri 0 olarak ayarlayın ve 7. adıma geçin. Veya biraz daha iyi bir yaklaşım: negatif özdeğerleri 0 olarak ayarlayın, pozitif özdeğerleri yeniden toplayın, böylece orijinal olurlar (= iz (S)) ve sonra 7. adıma atlayın. bana göre.
ttnphns

2

Verileriniz bir ağ olarak da görüntülenebilir ve mevcut birçok ağ kümeleme algoritmasından birini kullanabilirsiniz. Bunun için, kenar ağırlıkları üzerinde bir eşik uygulamanız ve mesafeleri benzerliklere dönüştürmeniz gerekebilir. Bir şeyleri yapmanın 'istatistik' yolu değildir, ancak küme analizi başlangıçta belirtilmiş bir sorundur ve araştırma araçları ağ kümeleme algoritmaları çok iyi performans gösterir.


2

Literatürde neden bu kadar nadir olduğunu bilmiyorum, ancak @gung ve @ttnphns tarafından önerilen çözüm (ilk önce, örneğin R kullanıyorsanız bu paket üzerinden Temel Koordinatlar Analizi kullanarak çift mesafeli mesafelerinizi Öklid uzayına yansıtın). K-her zamanki gibi yapmak) basittir ve özel algoritmalar gerektirmez. Şahsen kullanılan burada bir optimizasyon çerçevesinde gömülü ve oldukça iyi çalıştı.


1

Kümeleme ve YTH ile ilgili olarak aşağıdaki kaynakları öneriyorum:

Bu referanslar aynı zamanda ikili ve sürekli veriler için benzerlik ve uzaklık fonksiyonlarını (yakınlık önlemleri) güzel bir şekilde kapsar.

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.