Kümeleme dağılımları


10

Birkaç dağıtımım var (aşağıdaki şekilde 10 dağıtım). dağılımları

Aslında bunlar histogramlardır: x ekseni üzerinde bir çözeltideki bazı parçacıkların boyutları olan 70 değer vardır ve her x değeri için karşılık gelen y değeri, boyutu x değeri civarında olan parçacıkların oranıdır.

Bu dağılımları kümelemek istiyorum. Şu anda örneğin Öklid mesafesiyle hiyerarşik bir kümeleme kullanıyorum. Mesafe seçiminden memnun değilim. Kullback-Leibler gibi bilgi-kuramsal mesafeyi denedim ancak verilerde çok sayıda sıfır var ve bu da zorluklara neden oluyor. Uygun bir mesafe ve / veya başka bir kümeleme yöntemi önerisi var mı?

Yanıtlar:


16

Tüm dağıtımların potansiyel olarak aynı 70 ayrık değeri alabileceği şekilde anlıyorum. Sonra dağılımların kümülatif eğrilerini karşılaştırmanız kolay olacaktır (kümülatif eğrileri karşılaştırmak dağılımları karşılaştırmanın genel yoludur). Bu, şekil, yer ve yayılma farkları için çok amaçlı karşılaştırma olacaktır.

Bu nedenle, (A, B, ... vb. Dağılımlar) şeklinde veri hazırlayın.

Value CumProp_A CumProp_B ...
1       .01       .05
2       .12       .14
...     ...       ...
70      1.00      1.00

ve dağılımlar arasındaki mesafe matrisini hesaplar. Hiyerarşik kümelemeye gönderin (tam bağlantı yöntemini öneriyorum). Ne mesafe? Eğer iki kümülatif eğrinin sadece bir değerde ( b ) çok uzaklarsa çok farklı olduğunu düşünüyorsanız , Chebyshev mesafesini kullanın. İki kümülatif eğrinin yalnızca geniş bir değer aralığı ( c ) boyunca diğerinin üzerinde kararlı olması durumunda çok farklı olduğunu düşünüyorsanız , otokorelatif mesafe kullanın. Eğriler arasındaki herhangi bir yerel farkın önemli olması durumunda ( a ) Manhattan mesafesini kullanın.

resim açıklamasını buraya girin

PS Otokorelatif mesafe, X ve Y kümülatif eğrileri arasındaki farklılıkların otokorelasyonunun normalleştirilmemiş bir katsayısıdır:

i=2N(XY)i(XY)i1


Mükemmel - çok teşekkürler! Bunu yarın yapacağım
Stéphane Laurent

Otokorelatif mesafe muhtemelen negatiftir. Gerçekten iyi bir tanım mı?
Stéphane Laurent

Başka bir soru sormayı unuttum: Tam bağlantıyı neden tavsiye edesin?
Stéphane Laurent

Varsa, negatif negatif ürün terimlerini ayarlayabilirsiniz. Tam bir bağlantı konusunda ısrar etmiyorum, bunun yerine Ward veya centroid gibi "geometrik" yöntemlere karşı uyarırdım çünkü mesafeler öklid değildir. Ben de tam bir bağlantı gibi bir "
dilatif

4

Verileriniz histogramsa, "histogram kesişme mesafesi" gibi uygun mesafe işlevlerine bakmak isteyebilirsiniz.

ELKI adlı çok çeşitli kümeleme algoritmalarına sahip bir araç vardır (k-araçlarından ve hiyerarşik kümelemeden çok daha modern olanlardan) ve hatta çoğu algoritmada kullanabileceğiniz bir histogram kesişme mesafesi sürümü vardır. İçinde bulunan algoritmalardan birkaçını denemek isteyebilirsiniz. Yukarıda verdiğiniz çizimden, ne yapmak istediğinizi net değil. Bireysel histogramları gruplandırın, değil mi? Yukarıda gösterdiğin 10 tanesine bakılırsa, kümeler olmayabilir.


Teşekkürler. Ancak R veya SAS'ta bir araç arıyorum. Sonra yukarıdaki on dağıtım sadece bir örnek, küme dağıtım bir sürü var.
Stéphane Laurent

2

Bir k-aracı veya başka bir kümeleme türü için tanımlayıcıları türetmek amacıyla bazı özellik çıkarma tekniğini kullanmak isteyebilirsiniz.

Temel bir yaklaşım, histogramlarınıza belirli bir dağılımı sığdırmak ve parametrelerini tanımlayıcı olarak kullanmak olacaktır. Örneğin, 2 yol ve 2 standart sapma ile tanımlayabileceğiniz bimodal dağılımınız var gibi görünüyor.

Başka bir olasılık, histogramların sayımlarının ilk iki veya üç ana bileşeni üzerinde kümelenmektir.

Alternatif olarak dalgacık yaklaşımları kullanılabilir.

Bu sayfa, hücre dışı sivri uçlarla uğraşırken bunun nasıl yapılacağını açıklar. Veriler farklı, ancak fikir sizin durumunuz için geçerli olmalıdır. Ayrıca alt kısımda birçok referans bulacaksınız.

http://www.scholarpedia.org/article/Spike_sorting

R'de, princompveya prcompişlevini kullanarak piklerinizin temel bileşenlerini hesaplayabilirsiniz . Burada R'de PCA hakkında bir eğitim bulacaksınız.

Dalgacıklar için waveletspakete bakabilirsiniz .

k- kmeansfonksiyonu , kümeleme fonksiyonu kullanılarak gerçekleştirilebilir .


Teşekkürler, mümkün olduğunda teklifinize bir göz atacağım.
Stéphane Laurent
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.