İkili veri kümelememin önemli olup olmadığını nasıl test edebilirim


12

Alışveriş sepeti analizleri veri setim, satın alınan ürünlerle işlem vektörleri kümesi yapıyorum.

İşlemlere k-ortalamaları uygularken, her zaman bir sonuç alacağım . Rastgele bir matris muhtemelen bazı kümeler de gösterir.

Bulduğum kümelenmenin önemli olup olmadığını test etmenin bir yolu var mı, yoksa bu bir tesadüf olabilir. Evet ise, bunu nasıl yapabilirim.

Yanıtlar:


14

Alışveriş sepeti analiziyle ilgili olarak, asıl amacın müşteriler tarafından satın alınan en sık ürün kombinasyonlarını bireyselleştirmek olduğunu düşünüyorum. Buradaki association rulesen doğal metodolojiyi temsil eder (aslında bu amaç için geliştirilmiştir). Müşteriler tarafından satın alınan ürün kombinasyonlarını ve bu kombinasyonların kaç kez tekrarlandığını analiz etmek, karşılık gelen bir ilginçlik ölçümü ile 'koşul, sonra sonuç' türünde bir kurala yol açar. Ayrıca dikkate Log-linear modelsalınan değişkenler arasındaki ilişkileri araştırmak için düşünebilirsiniz.

Kümelenmeye gelince, işinize yarayabilecek bazı bilgiler şunlardır:

İlk önce düşünün Variable clustering. Değişken kümeleme, eşdoğrusallığı, fazlalığı değerlendirmek ve değişkenleri tek bir değişken olarak puanlanabilen kümelere ayırmak ve böylece veri azalması için kullanılır. varclusİşlevi arayın (paket Hmisc, R)

Kümelenme kararlılığının değerlendirilmesi: clusterboot{{package fpc} işlevi

Küme doğrulaması için uzaklık tabanlı istatistikler: cluster.stats{{package fpc} işlevi

MBq'ın belirttiği gibi, en iyi kümeleri değerlendirmek için siluet genişliklerini kullanın. Bunu izle . Siluet genişlikleri için ayrıca bkz. Optsil işlevi.

Boşluk istatistiği ile bir veri kümesindeki kümelerin sayısını tahmin etme

Farklılık Endeksleri ve Mesafe Ölçümlerini hesaplamak için bkz. Dsvdis ve vegdist

EM kümeleme algoritması, çapraz doğrulamayla kaç kümenin oluşturulacağına karar verebilir (eğer apriori'ye kaç kümenin üretileceğini belirleyemezseniz). EM algoritmasının bir maksimum değere yakınsama garantisi verilse de, bu yerel bir maksimumdur ve mutlaka küresel maksimumla aynı olmayabilir. Küresel maksimum değeri elde etmek için daha iyi bir şans elde etmek için, tüm prosedür parametre değerleri için farklı başlangıç ​​tahminleri ile birkaç kez tekrarlanmalıdır. Toplam log olabilirlik rakamı, elde edilen farklı son konfigürasyonları karşılaştırmak için kullanılabilir: sadece yerel maksimumların en büyüğünü seçin . EM kümesinin bir uygulamasını WEKA açık kaynaklı projesinde bulabilirsiniz.

Bu da ilginç bir bağlantı.

Ayrıca arama Buraya içinFinding the Right Number of Clusters in k-Means and EM Clustering: v-Fold Cross-Validation

Son olarak, clusterfly kullanarak kümeleme sonuçlarını keşfedebilirsiniz


8

Bu, bir sonucun doğru olup olmadığını göstermek için Monte Carlo kullanan bir yöntemdir.

Null Hipotezimiz H_0, veri setimizin ilginç bir kümelenmeye sahip olmamasıdır. Alternatif hipotezimiz H_1, veri setimizin ilginç bir kümelenme içermesidir.

Burada ilginç olarak, aynı satır ve sütun kenar boşluklarına sahip rastgele bir veri kümesinin kümeleme yapısından daha ilginç olduğunu düşünüyoruz. Tabii ki başka kısıtlamalar da seçilebilir, ancak kısıtlamaları gevşetmek sonucumuzu çok genel hale getirecek ve dar kısıtlamalara kümelenmeyi çok fazla sabitleyecek, böylece sonucum otomatik olarak önemsiz hale gelecektir. Göreceğimiz gibi marjlar, onunla randomize etmek için mevcut yöntemler nedeniyle iyi bir seçimdir.

Test istatistiğimiz olarak error_0'dan T kümeleme hatasını (küme içi kare mesafesi) tanımlayalım. Orijinal veri setimizin değeri t'dir .

Bu dağılım hakkında hiçbir şey bilmiyoruz, ancak ondan örnekler çizebilmemiz. Bu da Monte Carlo için iyi bir aday olmasını sağlıyor.

Şimdi Π_0'dan n (iid) rastgele örnekler çiziyoruz ve ampirik p- değerini p_emp = 1 / (n + 1) * (Σ_i = 1-n I (t_i> = t) + 1) formülüyle hesaplıyoruz.

Rastgele örnekleme takas randomizasyonu ile yapılabilir. Basit bir ifadeyle, iki karşıt köşede bir 1 ve diğer iki köşede bir 0 ile bir kare aranır. Sonra köşeler çevrilir. Bu sütun ve satır kenar boşluklarını korur. Veri seti yeterince rastgele hale getirilinceye kadar prosedür yeterince tekrarlanır (bu, bazı deneyler alacaktır). Bu konuda daha fazla bilgi Gionis et. ark.

Bunu yapmanın bir yolu, verilerinizin dağılımını tanımlamak ve kümeleme hatasını test istatistiği olarak almaktır.

Örneğin, aynı satır ve sütun kenar boşluklarına sahip tüm veri kümelerini veri dağıtımımız olarak kabul edersek, bu dağıtımdan n rastgele matris Xi alabilir ve bunlar için kümeleme hatasını hesaplayabiliriz. Daha sonra formülle emperikal p değerini hesaplayabiliriz


4

Küme kalitesini belirleyen istatistiği bir dereceye kadar tanımlayan siluet gibi bir şey vardır (örneğin, k'nin optimizasyonunda kullanılır). Şimdi olası bir Monte Carlo şu şekilde gider: orijinalinize benzer çok sayıda rastgele veri kümesi oluşturursunuz (örneğin, her sütundaki satırlar arasındaki değerleri karıştırarak), kümelenir ve daha sonra önemini test etmek için kullanılabilecek ortalama bir siluet dağılımı elde edersiniz veri siluet kümesi. Yine de bu fikri hiç denemediğimi düşünüyorum.


1
Bu bana Human Brain Mapping 2010 konferansında gördüğüm bir posteri hatırlatıyor. Tom Nichols, hiyerarşik kümelenmede kofenetik korelasyon ve siluetin kararlılığını değerlendirmek için parametrik bootstrap kullandı, ancak posterine bakın: j.mp/9yXObA .
chl

@chl Teşekkürler; gerçekten de son zamanlarda laboratuvarımda benzer şeyler yapıldığını gördüm; sonuçta kümeler önemli değildi: - /

Bunun önyükleme gibi göründüğüne katılıyorum.
Vass

(FYI: siluet değerinin yorumlanması ). Ayrıca, siluet değerinin k = 1 kümesi için tanımlanmadığına dikkat edin, bu nedenle siluet değerini kullanarak k> 1 (veri kümesi kümelenmemiş) ile k> 1 (veri kümesi kümelenir) hipotezlerini karşılaştıramayız.
Franck Dernoncourt
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.