Saya baru dalam ilmu data dan memiliki masalah menemukan cluster dalam kumpulan data dengan 200.000 baris dan 50 kolom di R.
Karena data memiliki variabel numerik dan nominal, metode seperti K-means yang menggunakan ukuran jarak Euclidean sepertinya bukan pilihan yang tepat. Jadi saya beralih ke PAM, agnes dan hclust yang menerima matriks jarak sebagai input.
Metode daisy dapat bekerja pada data tipe campuran tetapi matriks jarak terlalu besar: 200.000 kali 200.000 jauh lebih besar dari 2 ^ 31-1 (batas panjang vektor sebelum R 3.0.0.)
R 3.0.0 yang baru dirilis kemarin mendukung vektor panjang dengan panjang lebih dari 2 ^ 31-1. Tetapi matriks ganda 200.000 kali 200.000 membutuhkan RAM terus menerus yang lebih besar dari 16Gb yang tidak mungkin pada mesin saya.
Saya membaca tentang komputasi paralel dan paket bigmemory dan saya tidak yakin apakah mereka akan membantu: jika saya menggunakan daisy, itu akan menghasilkan matriks besar yang tidak bisa muat dalam memori.
Saya juga membaca tentang pos tentang pengambilan sampel: Apakah pengambilan sampel relevan dengan waktu 'data besar'?
Jadi dalam kasus saya, apakah relevan untuk menggunakan pengambilan sampel pada kumpulan data, mengelompokkan pada sampel dan kemudian menyimpulkan struktur seluruh kumpulan data?
Bisakah Anda memberi saya saran? Terima kasih!
Tentang mesin saya:
R versi 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32 / x64 (64-bit)
OS: Windows 7 64bit
RAM: 16.0GB
sumber
Jawaban:
PAM sendiri seharusnya tidak memerlukan matriks jarak yang lengkap, tetapi algoritme diketahui memiliki skala yang buruk, karena kemudian perlu (kembali) menghitung semua jarak berpasangan dalam setiap kluster pada setiap iterasi untuk menemukan elemen yang paling sentral. Ini jauh lebih sedikit jika Anda memiliki sejumlah besar cluster, tetapi tetap sangat mahal!
Namun, untuk sebagian besar algoritma ini, pertama-tama Anda harus memastikan fungsi jarak Anda benar-benar baik; maka Anda perlu mempertimbangkan cara untuk mempercepat kueri dengan menggunakan indeks yang sesuai.
Perhatikan juga bahwa dalam banyak kasus - dan ini mungkin berlaku untuk PAM - Anda dapat menjalankan algoritma pada sampel terlebih dahulu , kemudian hanya memperbaikinya pada set data lengkap. Jika sampel Anda representatif, algoritma seperti k-means dan PAM seharusnya memberi Anda hasil yang sama seperti pada set data lengkap.
sumber
coba fungsi CLARA dari paket cluster di R. Ini mengimplementasikan algoritme pam-seperti dengan subsampling data Anda (pastikan Anda memberikan ukuran subsampel yang masuk akal untuk data Anda karena standarnya sengaja terlalu kecil). Ini bekerja sangat baik jika media dalam data Anda dapat diwakili oleh sampel kecil dari total data (yaitu - ada lebih sedikit cluster dalam dataset). Dengan cara ini Anda dapat mengelompokkan secara efisien dengan sampel acak kecil dan menambahkan poin ke solusi pengelompokan yang dikomputasi.
http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Clustering/CLARA
sumber
Anda juga dapat menerapkan analisis korespondensi berganda pada variabel kualitatif Anda dan membuat transformasi menjadi variabel numerik.
sumber