Mengapa data campuran merupakan masalah untuk algoritma pengelompokan berbasis euclidean?

21

Kebanyakan algoritma pengelompokan dan pengurangan dimensi klasik (pengelompokan hierarkis, analisis komponen utama, k-means, peta pengorganisasian sendiri ...) dirancang khusus untuk data numerik, dan data inputnya dipandang sebagai titik dalam ruang euclidean.

Ini tentu saja merupakan masalah, karena banyak pertanyaan di dunia nyata melibatkan data yang dicampur: misalnya jika kita mempelajari bus, tinggi dan panjang dan ukuran motor akan menjadi angka, tetapi kita mungkin juga tertarik dengan warna (variabel kategori: biru / merah / hijau ...) dan kelas kapasitas (variabel dipesan: kapasitas kecil / sedang / besar). Secara khusus, kami mungkin ingin mempelajari berbagai jenis variabel ini secara bersamaan.

Ada sejumlah metode untuk memperluas algos pengelompokan klasik ke data campuran, misalnya menggunakan Gower dissimilarity untuk dihubungkan ke pengelompokan hierarkis atau penskalaan multidimensi, atau metode lain yang menggunakan matriks jarak sebagai input. Atau misalnya metode ini , ekstensi SOM ke data campuran.

Pertanyaan saya adalah: mengapa kita tidak bisa menggunakan jarak euclidean saja pada variabel campuran? atau mengapa itu buruk? Mengapa kita tidak bisa begitu saja menyandikan variabel-variabel kategori, menormalkan semua variabel sehingga mereka memiliki bobot yang sama dalam jarak antara pengamatan, dan menjalankan algos yang biasa pada matriks ini?

Ini sangat mudah, dan tidak pernah dilakukan, jadi saya kira itu sangat salah, tetapi adakah yang bisa memberi tahu saya alasannya? Dan / atau beri saya beberapa referensi? Terima kasih

Jubo
sumber
5
Anda dapat melakukan semua yang Anda suka dengan data Anda untuk mewakili mereka sebagai titik di ruang Euclidean, tetapi makna fitur mungkin hilang. Masalahnya adalah pada tingkat skala pengukuran, bukan pada tingkat ruang. Skala ordinal harus dikuantifikasi dengan benar, pengkodean dummy tidak akan membantu. Skala biner dari indra asimetris (sekarang vs tidak ada) secara alami membutuhkan metrik jarak lain selain jarak Euclidean; ditambah masalah interpolasi (tidak ada mean substantif dapat ada antara ya dan tidak).
ttnphns
(Lanj.) Ruang Euclidean adalah tentang dua hal: ruang ini kontinu (berbutir halus) dan memungkinkan segala arah. Tidak semua tipe data memerlukan atau menyapa ruang seperti itu untuk mengakomodasi perbedaan yang timbul dari sifat data.
ttnphns
Hierarchical clustering bekerja dengan segala jenis kesamaan, btw. (Kecuali untuk beberapa kasus seperti Ward) - khususnya, Anda dapat menggunakan misalnya koefisien Jaccard yang berarti untuk beberapa kasus kategori / biner.
Anony-Mousse -Reinstate Monica

Jawaban:

5

Ini bukan tentang tidak mampu menghitung sesuatu .

Jarak jauh banyak digunakan untuk mengukur sesuatu yang bermakna . Ini akan gagal jauh lebih awal dengan data kategororial. Jika pernah bekerja dengan lebih dari satu variabel, itu adalah ...

Jika Anda memiliki atribut ukuran sepatu dan massa tubuh, jarak Euclidean juga tidak masuk akal. Ada baiknya ketika x, y, z adalah jarak. Maka jarak Euclidean adalah garis jarak pandang antara titik-titik.

Sekarang jika Anda dummy-encode variabel, apa artinya ini menghasilkan?

Plus, jarak Euclidean tidak masuk akal ketika data Anda terpisah.

Jika hanya ada nilai integer x dan y, jarak Euclidean masih akan menghasilkan jarak non-integer. Mereka tidak memetakan kembali ke data. Demikian pula, untuk variabel yang dikodekan dummy, jarak tidak akan memetakan kembali ke jumlah variabel dummy ...

Ketika Anda kemudian berencana untuk menggunakan misalnya k-means clustering, ini bukan hanya tentang jarak, tetapi tentang menghitung rerata . Tapi tidak ada alasan yang masuk akal pada variabel dummy-encoded, kan?

Akhirnya, ada kutukan dimensi . Jarak Euclidean diketahui menurun ketika Anda meningkatkan jumlah variabel. Menambahkan variabel disandikan dummy berarti Anda kehilangan kontras jarak cukup cepat. Semuanya sama seperti yang lainnya, karena variabel dummy tunggal dapat membuat semua perbedaan.

Anony-Mousse -Reinstate Monica
sumber
3

Inti dari masalah pengelompokan berbasis metrik ini adalah ide interpolasi.

Ambil metode apa pun yang baru saja Anda kutip, dan biarkan kami mempertimbangkan variabel berkelanjutan seperti berat badan. Anda memiliki 100kg dan Anda memiliki 10kg dalam data Anda. Ketika Anda melihat 99kg baru, metrik akan memungkinkan Anda untuk mendekati 100kg --- meskipun Anda belum pernah melihatnya. Sayangnya, tidak ada interpolasi yang ada untuk data diskrit.

Argumen lain untuk pertanyaan ini adalah tidak ada cara alami untuk melakukannya. Anda ingin menetapkan 3 nilai dalam R dan membuatnya sama-jarak antara masing-masing pasangan, ini tidak mungkin. Jika Anda menetapkan mereka ke dalam kategori yang berbeda dan menjalankan katakanlah PCA, maka Anda kehilangan informasi yang mereka cerminkan dalam kategori yang sama.

jmf_zaiecp
sumber
1
Terima kasih! Saya memahami masalah interpolasi, tetapi dalam banyak aplikasi ini tidak ada masalah (mis. Ketika kita tahu bahwa bus berwarna hijau, merah atau biru, dan tidak ada warna lain yang ada dalam dataset kami). Dan saya pikir ada cara mudah untuk menstandarisasi variabel dummy sehingga setiap variabel kategori memiliki "bobot" yang sama dengan setiap variabel numerik (jika variabel numerik juga distandarisasi sebelumnya). Atau untuk secara acak menetapkan bobot ke variabel yang berbeda ...
jubo
0

Masalah dengan nilai-nilai kategori tidak teratur adalah bahwa jika Anda mengkodekannya, Anda memaksakan pemesanan dan dengan demikian makna baru untuk variabel. Misalnya jika Anda menyandikan biru sebagai 1 dan oranye sebagai 2 dan hijau 3 maka Anda menyiratkan bahwa pola data dengan nilai oranye lebih dekat ke pola dengan nilai hijau daripada yang dengan nilai biru.

Salah satu cara untuk mengatasinya adalah menjadikannya fitur baru (kolom). Untuk setiap nilai yang berbeda Anda membuat fitur biner baru dan mengaturnya ke true / false (dengan kata lain biner mengkodekan nilai-nilai dan membuat setiap bit menjadi kolom). Untuk setiap pola data dari set fitur baru ini, hanya satu fitur yang akan memiliki nilai 1 dan yang lainnya 0. Tapi ini biasanya tidak menghentikan algoritma pelatihan untuk menetapkan nilai centroid mendekati 1 ke lebih dari satu fitur. Ofcourse ini dapat menyebabkan masalah interpretasi karena ini tidak masuk akal dalam domain data.

Anda tidak memiliki masalah yang sama dengan "kelas kapasitas" yaitu kategori yang dipesan karena dalam kasus itu penetapan nilai numerik masuk akal.

Dan tentu saja adalah Anda menggunakan fitur yang berbeda sifat atau unit pengukuran atau rentang nilai yang berbeda maka Anda harus selalu menormalkan nilai-nilai tersebut.

/programming/19507928/growing-self-organizing-map-for-mixed-type-data/19511894#19511894

/programming/13687256/is-it-right-to-normalize-data-and-or-weight-vectors-in-a-som/13693409#13693409

ayah
sumber
Itulah yang saya maksud dengan "dummy encoding" untuk variabel kategori, tapi terima kasih. Dan saya tidak setuju dengan pernyataan Anda tentang faktor-faktor yang dipesan ("kelas kapasitas") karena tidak ada cara untuk memilih antara mis. (1,2,3) atau (1,2.100), yang akan membuat perbedaan besar untuk algoritma berbasis jarak.
jubo
0

Jawabannya sebenarnya cukup sederhana, kita hanya perlu memahami apa sebenarnya informasi dalam variabel dummy. Gagasan variabel dummy menunjukkan ada atau tidak adanya tingkat faktor (nilai diskrit dari variabel kategorikal). Ini dimaksudkan untuk mewakili sesuatu yang tidak dapat diukur, tidak dapat diukur, dengan menyimpan informasi apakah itu ada atau tidak. Inilah sebabnya mengapa variabel dummy diekspresikan dalam digit biner, sebanyak nilai diskrit dari variabel kategorikal yang diwakilinya (atau minus 1).

Mewakili level faktor sebagai nilai 0/1 hanya masuk akal dalam persamaan analitis, seperti model linier (ini adalah konsep yang mudah bagi mereka yang dapat menafsirkan koefisien model statistik). Dalam variabel dummy, informasi variabel kategorikal yang mendasarinya disimpan dalam urutan bit. Ketika menggunakan bit tersebut sebagai dimensi untuk memetakan sampel input ke ruang fitur (seperti dalam kasus kesamaan / matriks jarak), informasi dalam urutan bit benar-benar hilang.

Digio
sumber
1
Terima kasih! Sebenarnya, maksud saya adalah bahwa variabel kategori dummy-encoded masuk akal (tertentu) masuk akal dalam jarak euclidean: jika nilainya berbeda itu menambah 2 ke jarak kuadrat, jika tidak menambahkan 0. Dan Anda bisa menormalkan boneka di berbagai cara, untuk memperhitungkan jumlah kategori atau probabilitasnya.
jubo