Esasen dil stats
paketinde uygulanan farklı k-ortalama kümeleme algoritmalarını anlamaya çalışıyorum R
.
Lloyd'un algoritmasını ve MacQueen'in çevrimiçi algoritmasını anlıyorum. Onları anlama şeklim şu şekildedir:
Lloyd Algoritması:
Başlangıçta 'k' kümelerinin sentroidleri olarak işlev görecek 'k' rastgele gözlemler seçilir. Daha sonra sentroidler birleşene kadar yineleme aşağıdaki adımlar gerçekleşir.
- Her bir gözlem ile seçilen sentroidler arasındaki Öklid mesafesi hesaplanır.
- Her sentroide en yakın gözlemler 'k' kovaları içinde etiketlenir.
- Her bir kovadaki tüm gözlemlerin ortalaması yeni centroidler olarak hizmet eder.
- Yeni sentroidler eski sentroidlerin yerini alır ve eski ve yeni sentroidler yakınsak değilse tekrarlama 1. adıma geri döner.
Yakınsama koşulları şunlardır: eski ve yeni sentroidler tamamen aynıdır, sentroidler arasındaki fark küçüktür (10 ^ -3 mertebesinde) veya maksimum yineleme sayısına (10 veya 100) ulaşılır.
MacQueen'in Algoritması:
Bu, ilk 'k' örneklerinin centroid olarak seçildiği çevrimiçi bir sürümdür.
Daha sonra, her bir örnek, o örneğe en yakın hangi sentroidin olduğuna bağlı olarak kovalara yerleştirilir. İlgili sentroid yeniden hesaplanır.
Her örnek uygun kovaya yerleştirilene kadar bu adımı tekrarlayın.
Bu algoritmanın yalnızca bir yinelemesi vardır ve döngü 'x' örnekleri için devam eder
Hartigan-Wong Algoritması:
- Tüm noktaları / örnekleri rastgele kovalara atayın ve ilgili sentroidi hesaplayın.
- İlk örnekten başlayarak en yakın centroidi bulun ve o kovayı değerlendirin. Kova değiştiyse, yeni sentroidleri yeniden hesaplayın, yani yeni atanan kepçenin sentroidini ve eski kova ödevinin sentroidini değiştirin, çünkü bunlar değişiklikten etkilenen iki sentroiddir
- Tüm noktaları gözden geçirin ve yeni sentroidler alın.
- Bir tür temizleme işlemi gerçekleştiren ve kaçak noktaları kovalara yeniden atayan 2. ve 3. noktaların tekrarını yapın.
Bu nedenle, bu algoritma yakınsama sonucunu görmeden önce 2 yineleme gerçekleştirir.
Şimdi, Hartigan-Wong algoritmasındaki 4. noktada düşündüğüm algoritmanın doğru yöntemi olup olmadığından emin değilim. Benim sorum şu: Hartigan-Wong için aşağıdaki yöntem k-araçlarını uygulamak için doğru yöntemse? Bu yöntem için yalnızca iki yineleme var mı? değilse, yakınsama koşulu nedir (ne zaman durmalı)?
Anladığım başka bir olası uygulama açıklaması.
- Tüm noktaları / örnekleri rastgele kovalara atayın ve ilgili sentroidi hesaplayın.
- İlk örnekten başlayarak en yakın centroidi bulun ve bu kovayı atayın. Kova değiştiyse, yeni sentroidleri yeniden hesaplayın, yani yeni atanmış kepçenin sentroidini ve eski kova atamasının sentroidini değiştirin; bunlar, değişiklikten etkilenen iki sentroiddir.
- Grupta herhangi bir nokta için değişiklik olduğunda, ilk örneğe geri dönün ve adımları tekrarlayın.
- Yineleme, tüm örnekler yinelendiğinde ve noktaların hiçbiri bölümleri değiştirmediğinde sona erer.
Bu şekilde, veri kümesinin her değişmesinde veri kümesinin başından tekrar tekrar başlayan çok sayıda yineleme vardır.
Herhangi bir açıklama yardımcı olacaktır ve bu yöntemlerden herhangi biri için anlayışım yanlışsa lütfen bana bildirin.