R'deki Büyük Verileri Kümele ve Örnekleme Alakalı mı?


13

Veri biliminde yeniyim ve R'de 200.000 satır ve 50 sütun içeren bir veri kümesinde kümeleri bulmakta sorun yaşıyorum.

Verilerin hem sayısal hem de nominal değişkenleri olduğundan, Öklid uzaklık ölçüsü kullanan K-araçları gibi yöntemler uygun bir seçim gibi görünmemektedir. Bu yüzden bir mesafe matrisini girdi olarak kabul eden PAM, agnes ve hclust'a dönüyorum.

Papatya yöntemi karışık tip veriler üzerinde çalışabilir, ancak mesafe matrisi çok büyüktür: 200.000 kez 200.000 kez 2 ^ 31-1'den çok daha büyüktür (R 3.0.0'dan önceki vektör uzunluğu sınırı).

Dün yayınlanan yeni R 3.0.0, uzunluğu 2 ^ 31-1'den daha uzun olan vektörleri desteklemektedir. Ancak 200.000 x 200.000'lik bir çift matris, makinemde mümkün olmayan 16Gb'den büyük sürekli bir RAM gerektirir.

Paralel bilgi işlem ve bigmemory paketini okudum ve yardım edip etmeyeceklerinden emin değilim: papatya kullanıyorsam, yine de belleğe sığmayan büyük bir matris oluşturur.

Örnekleme hakkındaki yazıyı da okudum: Örnekleme, 'büyük veri' zamanında alakalı mi?

Yani benim durumumda, veri kümesinde örnekleme, örnek üzerinde küme kullanmak ve daha sonra tüm veri kümesinin yapısını çıkarmak uygun mu?

Bana biraz öneri verebilir misiniz? Teşekkür ederim!

Benim makine hakkında:

R sürüm 3.0.0 (2013-04-03)

Platform: x86_64-w64-mingw32 / x64 (64 bit)

İşletim Sistemi: Windows 7 64bit

Rastgele erişimli hafıza: 16.0GB


Hangisinin büyük veri (örneğin milyonlarca vaka) için olduğunu ve sayısal değişkenlerle birlikte nominal değişkenleri kabul edebildiğini bildiğim tek kümeleme yöntemi SPSS'de bulunan TwoStep kümesidir.
ttnphns

Yanıtlar:


4

Fark ettiğiniz gibi, tam mesafe matrisi gerektiren hiçbir yöntem çalışmaz. Bellek bir şeydir, diğeri çalışma zamanıdır. Hiyerarşik kümelemenin tipik uygulamaları tedir ( ELKI'nin tek bağlantılı kümelemeye algoritması olan SLINK olduğunu biliyorum ). Bu sadece büyük veri kümelerine ölçeklenmez.O ( n 2 )O(n3)O(n2)

PAM'ın kendisi tam bir mesafe matrisi gerektirmemelidir, ancak algoritmanın kötü bir şekilde ölçeklendiği bilinmektedir, çünkü daha sonra en merkezi öğeleri bulmak için her bir yinelemede her kümedeki tüm çift mesafeleri hesaplaması gerekir. Çok sayıda kümeniz varsa bu çok daha azdır, ancak yine de oldukça pahalıdır!

Bunun yerine, hızlanma için dizin yapılarını kullanabilen yöntemlere bakmalısınız. İyi bir indeksle, bu tür kümeleme algoritmaları büyük veri setleri için çok daha iyi olan içinde çalışabilir .O(nlogn)

Ancak, bu algoritmaların çoğu için, önce mesafe fonksiyonunuzun gerçekten iyi olduğundan emin olmanız gerekir; uygun dizinleri kullanarak sorguları hızlandırmanın yollarını düşünmeniz gerekir.

Ayrıca, birçok durumda - ve bunun PAM için de geçerli olabileceğini unutmayın - önce algoritmayı bir örnek üzerinde çalıştırabilir , ardından yalnızca tam veri kümesinde hassaslaştırabilirsiniz. Örneğiniz temsili ise, k-means ve PAM gibi algoritmalar, temel olarak tüm veri setinde olduğu gibi aynı sonucu vermelidir.


Burada OP'ye yardım etmeyecek, ancak "ara" örnek numaralarına sahip başka birinin gelmesi durumunda: R için de fastcluster var (bkz. Math.stanford.edu/~muellner/fastcluster.html ).
Sb ile mutsuz cbeleites

Merhaba Anony-Mousse, lütfen beni dizin yapısı hızlandırma kullanan bazı algoritmalara işaret edebilir misiniz? Çok teşekkürler!

Örneğin, DBSCAN, epsilon aralığı sorgularını destekleyen dizinlerle iyi hızlandırılabilir. Muhtemelen vardiya kümelenmesi anlamına da geliyor. Bu şekilde hızlandırılabilen OPTİK, bağlantı kümelemenin daha gelişmiş bir sürümü olarak görülebilir (buna "hiyerarşik yoğunluk bağlantı kümelemesi" diyebilirsiniz)
QUIT - Anony-Mousse

2

R'deki küme paketinden CLARA işlevini deneyin. Verilerinizi alt örnekleyerek pam benzeri bir algoritma uygular (varsayılan olarak çok küçük olduğundan verileriniz için anlamlı olan alt örnek boyutları sağladığınızdan emin olun). Verilerinizdeki ortalamalar, toplam verilerin küçük bir örneğiyle temsil edilebiliyorsa iyi çalışır (yani, veri kümesinde nispeten daha az küme varsa). Bu şekilde küçük bir rastgele örnekle verimli bir şekilde kümelenebilir ve önceden hesaplanmış kümeleme çözümüne noktalar ekleyebilirsiniz.

http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Clustering/CLARA


merhaba zzk, cevap için teşekkürler. Daha önce clara hakkında okudum ama sadece öklid ve manhattan metriği sağladığı anlaşılıyor. Temel sorun, veri kümemin hem sayısal hem de nominal değişkenlere sahip olmasıdır. Bu nedenle, mesafe ölçümü için hiçbir metriğin kullanılması uygun değildir.

ah evet, bu benim için de bir sınırlama. Yöntemin aslında herhangi bir keyfi mesafede yapılabileceğine inanıyorum, ancak değiştirilip değiştirilemeyeceğini görmek için henüz kaynak koduna bakmayı zahmet etmedim.
zzk

0

Ayrıca nitel değişkenlerinize birden fazla yazışma analizi uygulayabilir ve sayısal bir değişkene dönüşümler yapabilirsiniz.


2
Bu iyi bir fikir gibi görünüyor, ama biraz seyrek olabilir. Bunun ne olduğunu ve neden işe yarayacağını açıklamak için bunu biraz halledebilir misiniz?
gung - Monica'yı
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.