K-ortalamaları veri kümesinin rasgele alt örnekleri aracılığıyla başlatmak?


13

Belirli bir veri kümem varsa, küme merkezlerini bu veri kümesinin rasgele örneklerini kullanarak başlatmak ne kadar akıllı olurdu?

Örneğin, istediğimi varsayalım 5 clusters. Orijinal veri kümesinden 5 random samplessöz ediyorum size=20%. Daha sonra bu 5 rastgele örneğin her birini ortalayabilir ve bu araçları ilk 5 küme merkezim olarak kullanabilir miyim? Bunu nerede okuduğumu bilmiyorum ama bu fikir hakkında ne düşündüğünüzü bilmek istedim.


GÜNCELLEME: Lütfen bu konuya bakın K-başlatma kümeleme anlamına gelir: mevcut yöntemler nelerdir? çeşitli başlatma yöntemleri hakkında genel tartışma için.


11
Eğer varsa rastgele sizin 5 vasıta olacak neredeyse çakıştığı 5 alt örneklere örnek bölün. Bu tür yakın noktaları ilk küme merkezleri haline getirmenin anlamı nedir? Çoğu K-aracı uygulamasında, ilk küme merkezlerinin varsayılan seçimi tam tersi düşünceye dayanır: en uzak olan 5 noktayı bulmak ve onları ilk merkezler yapmak.
ttnphns

2
@ttnphns Bu güzel bir cevap olurdu.

2
Genel ortalama bir nokta olarak seçmek ve o merkezden çeşitli yönlerde uzakta olan başkalarını seçmek çok daha iyi olacağını düşünüyorum.
Michael R.Chickick

1
Mantıklı. Uzakta olan bu 5 noktayı bulmak için nasıl dolaşırım? Teşekkür ederim!
JEquihua

@JEquihua, yorumumu cevap olarak gönderdim ve talep ettiğiniz ayrıntıları ekledim.
ttnphns

Yanıtlar:


16

Eğer varsa rastgele sizin 5 vasıta olacak neredeyse çakıştığı 5 alt örneklere örnek bölün. Bu tür yakın noktaları ilk küme merkezleri haline getirmenin anlamı nedir?

Birçok K-aracı uygulamasında, ilk küme merkezlerinin varsayılan seçimi tam tersi düşünceye dayanır: en uzak olan 5 noktayı bulmak ve onları ilk merkezler yapmak. Bu uzak noktaları bulmanın yolu ne olabilir diye sorabilirsiniz? SPSS'in K-araçlarının bunun için yaptığı şey:

Veri kümesinin herhangi bir k vakasını (noktası) başlangıç ​​merkezleri olarak alın. Geri kalan tüm durumlar, aşağıdaki koşullar ile bunları başlangıç ​​merkezleri olarak değiştirme yeteneği açısından kontrol edilmektedir:

  • a) Dava, merkeze en yakın merkezden birbirine en yakın iki merkezden daha uzaksa, dava, ikincisinin ortasına daha yakın olduğu ikisinin yerini alır.
  • b) Vaka, kendisine en yakın merkez ile bu merkeze en yakın merkez arasındaki mesafeden daha yakın 2. merkezden daha uzaksa, dava kendisine en yakın merkezin yerine geçer.

Koşul (a) karşılanmazsa koşul (b) kontrol edilir; eğer tatmin olmazsa da dava merkez haline gelmez. Durumlarda aracılığıyla böyle çalışmasının sonucu olarak elde k başlangıç merkezleri haline bulut içinde azami vakaları. Bu algo'nun sonucu, yeterince sağlam olmasına rağmen, "herhangi bir k vakasının" başlangıç ​​seçimine ve veri kümesindeki vakaların sıralama düzenine tamamen duyarsız değildir ; bu nedenle, K-araçlarında her zaman olduğu gibi, birkaç rastgele başlatma denemesi hala memnuniyetle karşılanmaktadır .

Cevabımı , k-araçları için popüler başlatma yöntemlerinin bir listesiyle görün . Rastgele alt örneklere bölme yöntemi (burada ben ve diğerleri tarafından eleştirilir) ve SPSS tarafından kullanılan açıklanan yöntem de listede yer almaktadır.


1
Açıkladığınız şeyi yaptıktan sonra, hangi başlatma noktasının daha iyi bir bölüme yol açtığını belirlemek için hangi istatistiği kullanabilirim? Her şey için teşekkürler.
JEquihua

İlk merkezler olarak en yüksek noktaları bir kez kullanmak , sonunda en iyi bölümü elde etmeyi garanti etmez, (rastgele başlangıç ​​merkezlerine kıyasla) "yerel optimum" a yakalanma şansını azalttığını ve yakınsama sürecini hızlandırdıklarını düşündüler. . Olguların sırasını değiştirmek, tüm k-ortalama bölümünü 2-5 kez yapın, elde edilen son merkezleri kaydedin , ortalama ve bir son kümelenme için ilk olanlar olarak girin. Bu bölüm kesinlikle en iyisidir. Farklı k bölümlerini karşılaştıramazsanız, aslında kontrol etmek için özel bir istatistiğe ihtiyacınız yoktur .
Haziran'da

1
Farklı k bölümlerini karşılaştırmak istiyorum. Ne kullanabilirim? İyi fikir nedir? bana çok yardım ettiğin için teşekkürler @ttnphns.
JEquihua

Bir Orada var harika sayısını "iç" kümelenme kriterler . K-araçları için en uygun olanlardan biri Calinski-Harabasz'dır (çok değişkenli Fisher F). Google veya başkaları için.
ttnphns

7

Araçlar çok benzer olacak. Veri kümesi ortalamasını da bulabilir ve ardından ilk sentroidleri bu ortalamanın etrafındaki küçük bir daireye / küreye yerleştirebilirsiniz.

K-means için daha fazla ses başlatma şeması görmek istiyorsanız, k-means ++ 'a bir göz atın. K-araçlarını tohumlamak için oldukça akıllı bir yöntem geliştirdiler.

  • Arthur, D. ve Vassilvitskii, S. (2007).
    k-ortalamalar ++: Dikkatli tohumlama avantajları".
    Ayrık algoritmalarına onsekizinci yıllık ACM-SIAM Sempozyumu,

Yazar slaytları: http://www.ima.umn.edu/~iwen/REU/BATS-Means.pdf


Bunu okudum, sezgisel olarak avantajlı görünüyor, ancak bence çok fazla rastgele başlatma noktası almaktan daha iyi çalıştığı henüz kanıtlanmadı. Denemek istediğinizde bu basit kodu buldum: kmpp <- fonksiyon (X, k) {n <- nrow (X) C <- sayısal (k) C [1] <- örnek (1: n, 1) (2'de i: k) {dm <- distmat (X, X [C,]) pr <- uygula (dm, 1, dak); pr [C] <- 0 C [i] <- örnek (1: n, 1, prob = pr)} kmeans (X, X [C,])}
JEquihua

Yakınsamaya kadar yineleme sayısını önemli ölçüde azalttığı ve ortalama olarak daha iyi sonuçlar ürettiği bilinmektedir. Kendi deneylerimde, kmeans ++ 'ın gidilecek yol olduğunu onaylayabilirim. ELKI uygulamasını kullanıyorum.
ÇIKIŞ - Anony-Mousse

ELKI uygulaması nedir? nereye bakabilirim? selamlar!
JEquihua


4

Rastgele örneklerin araçlarını kullanmak, yorumunda işaret ettiği gibi, ihtiyacınız olan şeyin tam tersini verecektir. İhtiyacımız olan şey, birbirinden oldukça uzakta olan veri noktalarını bulmanın bir yoludur.

İdeal olarak, tüm noktalar üzerinde tekrarlayabilir, aralarındaki mesafeleri bulabilir, mesafelerin en büyük olduğu yerleri belirleyebilirsin ...

OP'nin niyetini ortadan kaldırmak için değil, ama bence "çözüm" k-ortalama algoritmasına dahil edildi. Birden çok yineleme gerçekleştiriyoruz ve önceki yinelemelere dayanarak küme sentroidlerini yeniden hesaplıyoruz. Ayrıca genellikle kmeans algoritmasını birkaç kez çalıştırıyoruz (rastgele başlangıç ​​değerleriyle) ve sonuçları karşılaştırıyoruz.

Biri varsa önsel bilgiye, alan bilgisi, daha sonra bu ilk küme merkezleri olması gereken yerde belirlemek üstün bir yönteme yol açabilir. Aksi takdirde, büyük olasılıkla başlangıç ​​değerleri olarak rastgele veri noktaları seçmek ve daha sonra birden fazla çalışma ve çalışma başına birden çok yineleme kullanmak önemlidir.


Açıkladığınız şeyi yaptıktan sonra, hangi başlatma noktasının daha iyi bir bölüme yol açtığını belirlemek için hangi istatistiği kullanabilirim? Her şey için teşekkürler.
JEquihua

2

Önerilen cevapların tümü etkilidir, ancak orijinal teklifinizden daha işlevsel hale getirilmesi çok daha zordur. İnitialize çok basit bir şekilde almaktır orijinal noktaları olarak rasgele gözlemler. İki başlangıç ​​noktasını kapatma olasılığı oldukça düşüktür ve algoritma, en uç durumlar dışındaki herkes için hızlı bir şekilde yürütülür.k


Çok mantıklı. Size de aynı soruyu sorabilir miyim Aman'a. Diyelim ki bir milyon rastgele ilk puan aldım. Ortaya çıkan bölümlerden hangisinin en iyi olduğunu belirlemek için ne kullanabilirim? Selamlar! @gmacfarlane
JEquihua

Tipik olarak, algoritmaları ortalama kare hatası (veya ortalama mutlak hata) en aza indirilene ve tekrarlar arasında kararlı olana kadar yinelenir anlamına gelir. Herhangi bir veri kümesinde, bu MSE'yi gerçekten en aza indiren sınırlı sayıda kombinasyon olacaktır. Yani bir milyon koşu muhtemelen bir ila on bölüm şeması üretecektir (verilerinizin tuhaflığına bağlı olarak) ve tüm gruplar arasında en düşük MSE'ye sahip olanı seçerdim. k
gregmacfarlane

Bölümlerinizin ilk nokta seçimine karşı oldukça hassas olması durumunda, verilerinizin doğal kümelere sahip olmadığı ve anlamına gelen kümeleme algoritmasının kullanılması için en iyi şey olmayabileceği anlamına gelmelidir . Veya, doğal olarak mevcut olan verilerden daha fazla küme sığdırmaya çalışıyorsunuz. k
Haziran'da gregmacfarlane
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.