Statistik dan alat perangkat lunak penambangan data untuk berurusan dengan dataset besar

27

Saat ini saya harus menganalisis sekitar 20 juta catatan dan membangun model prediksi. Sejauh ini saya sudah mencoba Statistica, SPSS, RapidMiner dan R. Di antara Statistica ini tampaknya paling cocok untuk berurusan dengan data mining dan antarmuka pengguna RapidMiner juga sangat berguna tetapi tampaknya bahwa Statistica, RapidMiner dan SPSS hanya cocok untuk dataset yang lebih kecil. .

Adakah yang bisa merekomendasikan alat yang bagus untuk dataset besar?

Terimakasih!

niko
sumber
6
Bisakah Anda lebih spesifik? Apa yang sebenarnya Anda inginkan untuk menambang data dan bagaimana Anda berencana untuk melakukannya? Saya telah menggunakan R untuk menganalisis catatan ukuran yang sama seperti milik Anda, dan itu bukan pengalaman buruk sama sekali.
suncoolsu
Pertanyaan ini akan segera dikencani. Mungkin baik untuk memiliki pembulatan semi-tahunan (wiki) untuk yang terbaru dalam alat tersebut.
Iterator

Jawaban:

19

Saya akan berkomentar @suncoolsu kedua: Dimensi kumpulan data Anda bukan satu-satunya kriteria yang harus mengarahkan Anda ke perangkat lunak tertentu. Misalnya, jika Anda hanya berencana untuk melakukan pengelompokan tanpa pengawasan atau menggunakan PCA, ada beberapa alat khusus yang menangani kumpulan data besar, seperti yang biasa ditemui dalam studi genom.

Sekarang, R (64 bit) menangani data yang besar cukup baik, dan Anda masih memiliki pilihan untuk menggunakan penyimpanan disk, bukan akses RAM, tapi lihat CRAN Tugas View High-Performance dan Paralel Computing dengan R . Standar GLM akan dengan mudah mengakomodasi 20.000 obs. (tapi lihat juga speedglm ) dalam waktu yang wajar, seperti yang ditunjukkan di bawah ini:

> require(MASS)
> n <- 20000
> X <- mvrnorm(n, mu=c(0,0), Sigma=matrix(c(1,.8,.8,1), 2, 2))
> df <- cbind.data.frame(X, grp=gl(4, n/4), y=sample(c(0,1), n, rep=TRUE))
> system.time(glm(y ~ ., data=df))
   user  system  elapsed
  0.361   0.018    0.379

Untuk memberikan ilustrasi yang lebih konkret, saya menggunakan R untuk memproses dan menganalisis data genetik besar (800 individu x 800k SNP , di mana model statistik utama adalah GLM bertingkat dengan beberapa kovariat (2 menit); yang dimungkinkan berkat R dan efisien Kode C tersedia dalam paket snpMatrix (sebagai perbandingan, model yang sama membutuhkan waktu sekitar 8 menit menggunakan perangkat lunak C ++ khusus ( plink ). Saya juga bekerja pada studi klinis (12k pasien x 50 variabel yang menarik) dan R sesuai kebutuhan saya Akhirnya, sejauh yang saya tahu, paket lme4 adalah satu-satunya perangkat lunak yang memungkinkan untuk menyesuaikan model efek campuran dengan set data yang tidak seimbang dan besar (seperti halnya dalam penilaian pendidikan skala besar).

Stata / SE adalah perangkat lunak lain yang dapat menangani kumpulan data besar . SAS dan SPSS adalah perangkat lunak berbasis file, sehingga mereka akan menangani volume data yang besar. Tinjauan perbandingan perangkat lunak untuk datamining tersedia di Alat Penambangan Data: Yang Mana yang Terbaik untuk CRM . Untuk visualisasi, ada juga banyak pilihan; mungkin awal yang baik adalah Grafik dari dataset besar: memvisualisasikan sejuta ( ditinjau dalam JSS oleh P Murrell), dan semua utas terkait di situs ini.

chl
sumber
@ chl: Sudahkah Anda menemukan solusi komputasi paralel yang efektif untuk R 64-bit? Ketika saya terakhir kali melihat (akhir musim panas ini) satu-satunya yang non-komersial tampaknya bekerja hanya dalam 32-bit R.
whuber
1
@whuber Tidak. Saya harus beralih ke 64 bit tahun lalu untuk mengelola set data genetik yang besar, tetapi model statistik yang kami gunakan tidak menyerukan paralelisasi (sejauh yang saya tahu). Saya pikir ada OpenMP yang mengikat untuk R tetapi tidak menyelidiki ini lebih lanjut. Saya tahu Revolution Analytics telah berupaya dalam hal ini ( j.mp/d7dFb5 ), tetapi masih dalam 32 bit (ini mungkin yang Anda maksudkan ). Sementara itu saya menemukan R / parallel ( rparallel.org ), tetapi saya tidak tahu seberapa dapat diandalkan / dewasa itu.
chl
@ chl Saya mencoba semuanya tetapi tidak bisa membuat mereka bekerja.
whuber
@ Wouber: apakah Anda di windows atau kotak * nix (mac, linux, ...)
user603
2
Saya akan menyarankan Anda untuk menginstal ubuntu (google 'unduh ubuntu') dan menjalankan aplikasi windows-only dari dalam ubuntu melalui virtualbox ( youtube.com/watch?v=KXgKnd-u2R4 ). Editor R dan lateks berjalan di ubuntu seperti pesona.
user603
8

Sebagian besar algoritma pada skala Apache Mahout melampaui catatan 20M, bahkan dengan data dimensi tinggi. Jika Anda hanya perlu membuat model prediksi, ada alat khusus seperti Vowpal Wabbit (http://hunch.net/~vw/) yang dapat dengan mudah menskala hingga milyaran catatan pada satu mesin.

Pedro Oliveira
sumber
Hebat ... Saya tidak menyadarinya!
chl
7

Ada paket RHIPE (integrasi R-Hadoop). Hal ini dapat membuatnya sangat mudah (dengan pengecualian) untuk menganalisis sejumlah besar data dalam R.

suncoolsu
sumber
Apakah Anda sukses dengan itu? Jika ya, untuk jenis aplikasi apa?
chl
Ya, RHIPE bagus. Beberapa teman saya menggunakannya untuk menganalisis data lalu lintas internet. Salah satu tujuan mereka adalah memodelkan upaya pembobolan. Data sangat besar dalam kasus seperti itu, petabyte adalah hal biasa!
suncoolsu
4

Sulit untuk memberikan jawaban yang baik tanpa mengetahui model seperti apa yang Anda pikirkan.

Untuk regresi linier, saya telah berhasil menggunakan paket biglm di R.

NPE
sumber
4

Karena Anda sedang membangun model prediksi dari kumpulan data besar, Anda mungkin mendapat manfaat dari Google's BigQuery (versi host dari teknologi dari makalah penelitian Google tentang analisis dataset besar-besaran dengan Dremel). Anda dapat mengekspor hasil kueri sebagai CSV untuk dicerna ke dalam klasifikasi prediktif, misalnya.

BigQuery memiliki WebUI yang memungkinkan Anda menjalankan kueri dan mengekspor hasil. Versi beta (v1) dari BigQuery menampilkan klien R, dan versi produksi (v2) pada akhirnya akan memiliki klien R juga.

Michael Manoochehri
sumber
3

Kami melatih pengamatan 3,5 juta dan 44 fitur menggunakan 64-bit R pada instance EC2 dengan ram 32GB dan 4 core. Kami menggunakan hutan acak dan itu bekerja dengan baik. Perhatikan bahwa kami harus memproses / memanipulasi data sebelum pelatihan.

sabunime
sumber
3

SAS Enterprise Miner versi 6.2 tidak akan memiliki masalah dalam menangani 20 juta pengamatan, dan beragam model yang dapat disesuaikan dengan situasi Anda. Masalah dengan SAS biasanya adalah biaya. Berikut ringkasan apa yang dapat dilakukan SAS EM : SAS EM 6.2: Apa yang Baru

Feral Oink
sumber
0

Bisakah Anda melihat ScaVis ( http://jwork.org/scavis )? Saya tidak melihat 20 juta, tetapi Anda dapat mencoba memeriksanya.

Jim12
sumber
0

RHIPE adalah solusi yang bagus, dan saya mungkin akan memilih yang ini, jika memiliki masalah ini! tetapi apakah Anda sudah mempertimbangkan NCSS? Sejauh yang saya tahu, versi terbaru 10 dapat membangun model ini. Ver lengkap. sangat mahal, tetapi pada beberapa layanan desktop jarak jauh Anda dapat menjalankan aplikasi hanya dengan biaya kecil tapi saya tidak tahu .. lebih baik memeriksanya

Brandon
sumber