Pengelompokan data tipe campuran dengan R


19

Saya bertanya-tanya apakah mungkin untuk melakukan dalam R clustering data yang memiliki variabel data campuran. Dengan kata lain saya memiliki satu set data yang berisi variabel numerik dan kategoris di dalamnya dan saya menemukan cara terbaik untuk mengelompokkannya. Dalam SPSS saya akan menggunakan klaster dua langkah. Saya bertanya-tanya apakah dalam R dapatkah saya menemukan teknik yang serupa. Saya diberitahu tentang paket poLCA, tapi saya tidak yakin ...


1
Bukankah SPSS TwoStep dirancang untuk menangani kumpulan data besar? (Saya memberikan respons terhadap pertanyaan terkait di sini .) Jika tidak, apakah tanggapan saya terhadap analisis komponen utama dapat diterapkan pada kumpulan data yang berisi campuran variabel kontinu dan kategorikal? dapat membantu?
chl

Di dalam cluster paket R ada ? Daisy yang akan membuat matriks ketidaksamaan untuk data campuran (koefisien kemiripan Gower). Kemudian Anda dapat menggunakan ? Agnes atau fungsi pengelompokan lainnya.
rhonda

1
Jangan bingung antara metode dengan implementasi. Pertama mencari algoritma pengelompokan yang masuk akal. Kemudian cari paket R yang mengimplementasikannya.
shadowtalker

Kesamaan Gower dapat digunakan.
ttnphns

@ung baru-baru ini menutup pertanyaan yang sangat mirip yang saya tanyakan. Saya diberi tahu bahwa pertanyaan saya di luar topik karena sebagian besar tentang perangkat lunak. Ini tampaknya sama tentang perangkat lunak. Saya akan sangat tertarik untuk mengetahui mengapa peraturan di sini ditegakkan secara tidak konsisten. Pikiran Anda, saya pikir pertanyaannya informatif, tetapi aturan harus aturan.
Weiwen Ng

Jawaban:


8

Ini mungkin datang terlambat tetapi coba klaR ( http://cran.r-project.org/web/packages/klaR/index.html )

install.packages("klar")

Ia menggunakan algoritma k-mode non-hirarkis, yang didasarkan pada pencocokan sederhana sebagai fungsi jarak, sehingga jarak δ antara variabel m dari dua titik data dan y diberikan olehxy

δ(xm,ym)={1xmym,0otherwise

Ada cacat dengan paket, yaitu jika dua titik data memiliki jarak yang sama ke pusat-cluster, yang pertama dalam data Anda dipilih sebagai lawan dari titik acak, tetapi Anda dapat dengan mudah memodifikasi bit dalam kode.

Untuk mengakomodasi pengelompokan variabel campuran, Anda harus masuk ke kode dan memodifikasi fungsi jarak untuk mengidentifikasi mode dan variabel numerik dan non-numerik.


7

Cara lain yang menarik untuk menangani variabel tipe campuran adalah dengan menggunakan proximy / similarity matrix dari Random Forests: http://cogns.northwestern.edu/cbmg/LiawAndWiener2002.pdf . Ini memfasilitasi cara terpadu untuk secara adil memperlakukan semua variabel (namun, waspadai masalah bias pemilihan variabel). Di sisi lain, sebenarnya tidak ada cara universal untuk menentukan jarak untuk variabel tipe campuran. Itu semua tergantung pada konteks aplikasi.


4

Anda mungkin menggunakan beberapa analisis korespondensi untuk membuat dimensi kontinu dari variabel kategori dan kemudian menggunakannya dengan variabel numerik di langkah kedua.


1
Bagaimana Anda memperlakukan variabel numerik dalam MCA? Menggunakan diskritisasi?
chl

Ada ekstensi MCA yang dapat mencakup variabel kontinu, lihat misalnya homogenitas analisis homals
kjetil b halvorsen

3

Yah, kamu pasti bisa. Dengan membuat variabel kategorikal angka artifisial. Atau menggunakan pengelompokan berbasis jarak-matriks (fpc mungkin bisa melakukan itu). Pertanyaan pertama yang harus Anda coba jawab adalah: apakah itu masuk akal?


3

jk

SG=i=1nwi,j,ksi,j,ki=1nwi,j,k
i

wi,j,k

si,j,k

  • variabel biner: 1 untuk konkordansi, 0 untuk diskordansi (setara dengan koefisien Jaccard jika wi,j,k

  • karakter multistat (nominal atau ordinal): 1 untuk kesetaraan, 0 lainnya (setara dengan koefisien kecocokan sederhana)

  • si,j,k=1|Xi,jXi,k|RiRii

SG

1SG


Bisakah Anda mendefinisikan apa itu "karakter" (dan "karakter utama") dalam jawaban Anda? Apakah maksud Anda variabel / atribut / fitur? Selain itu, saya dapat menambahkan bahwa Gower dapat dihitung untuk variabel ordinal tanpa memperlakukannya sebagai nominal ("multistate"), lihat .
ttnphns

Karakter, variabel, fitur semuanya adalah sinonim. Kardinal berarti interval atau skala rasional.
Engelbert Buxbaum

Terima kasih telah menjelaskannya. Saya hanya bertanya karena terminologi Anda tampaknya tidak terlalu umum dalam statistik atau pembelajaran mesin: "karakter" tidak biasa, dan apa yang Anda sebut tipe variabel "kardinal" biasanya dikenal sebagai variabel "skala" alias variabel "metrik", itu bertentangan dengan kategorikal .
ttnphns

1

Jika nilai yang mungkin dari variabel kategori tidak terlalu banyak, maka Anda mungkin berpikir untuk membuat variabel biner dari nilai-nilai itu. Anda bisa memperlakukan variabel biner ini sebagai variabel numerik dan menjalankan pengelompokan Anda. Itulah yang saya lakukan untuk proyek saya.



0

VarSelLCM penawaran paket

Seleksi Variabel untuk Clustering Berbasis Model dari Set Data Campuran dengan Nilai Hilang

Pada CRAN , dan dijelaskan lebih dalam kertas .

Keuntungan dari beberapa metode sebelumnya adalah ia menawarkan beberapa bantuan dalam pemilihan jumlah cluster dan menangani data yang hilang. Aplikasi bagus mengkilap yang disediakan juga tidak disukai.

masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.