Pemilihan fitur untuk masalah pengelompokan

9

Saya mencoba untuk membuat kelompok kumpulan data yang berbeda menggunakan algoritma yang tidak diawasi (clustering). Masalahnya adalah saya memiliki banyak fitur (~ 500) dan sejumlah kecil case (200-300).

Sejauh ini saya hanya melakukan masalah klasifikasi yang selalu saya beri label data sebagai set pelatihan. Di sana saya menggunakan beberapa kriteria (yaitu random.forest.importance atau information.gain) untuk pemilihan fitur dan kemudian saya menggunakan pilihan forward berurutan untuk pelajar yang berbeda untuk menemukan fitur yang relevan.

Sekarang saya melihat bahwa dalam hal pembelajaran tanpa pengawasan saya tidak memiliki kriteria untuk pemilihan sebelumnya dan saya juga tidak dapat menggunakan pilihan forward sequential (setidaknya tidak dalam paket mlr).

Saya bertanya-tanya apakah saya bisa melakukan analisis komponen utama sebelum menemukan sejumlah kecil fitur untuk diterapkan pada algoritma clustering saya. Atau apakah Anda punya ide lain?

Terima kasih

edit:

Ok, jadi setelah beberapa riset online saya bisa memperbarui pertanyaan saya sedikit: Pertama-tama saya telah membaca beberapa artikel yang mengecilkan penggunaan PCA sebelum algoritma pengelompokan, karena dua alasan:

  • PC adalah fungsi dari semua fitur sehingga sulit untuk menghubungkan hasilnya dengan set data awal dan oleh karena itu lebih sulit untuk menafsirkan

  • Selain itu, jika Anda memiliki masalah yang sebenarnya hanya sebagian kecil dari fitur Anda yang membantu untuk melakukan pengelompokan, tidak dikatakan bahwa fitur-fitur ini juga menggambarkan varian terbesar di antara sampel (yang dilakukan PC).

Jadi PCA tidak masuk akal ...

Sekarang saya kembali ke ide awal saya untuk melakukan seleksi maju berurutan untuk pengelompokan.

Ukuran kinerja apa yang akan Anda rekomendasikan? (Saya memikirkan tentang Dunn-Index) Algoritma pengelompokan mana yang akan mengarah pada kelompok yang ukurannya kurang lebih sama? (untuk pengelompokan hierarkis saya biasanya mendapatkan satu klaster dengan outlier tunggal dan yang lainnya dengan sisanya -> jadi saya akan membutuhkan sesuatu yang entah bagaimana melindungi dari pencilan)

Semoga kalian bisa membantu saya ...

JohnDoe
sumber
Hutan acak dapat diterapkan dalam masalah yang tidak diawasi. Dan saya pikir Anda masih dapat mengekstrak beberapa fitur informatif dalam prosesnya.
amanita kiki

Jawaban:

11

Saya memiliki beberapa pemikiran untuk dibagikan tentang pengurangan dimensi dalam masalah pembelajaran yang tidak diawasi. Dalam menjawab, saya berasumsi bahwa minat Anda adalah pada "sentuhan-tinggi," keterlibatan manusia interpretasi kluster sebagai lawan dari pendekatan pembelajaran mesin otomatis, turnkey, kotak hitam dan "sentuhan rendah" di mana penafsiran sengaja tidak ditekankan . Jika itu yang terakhir, mengapa Anda bahkan mengajukan pertanyaan? Juga, perhatikan bahwa saya sudah memiliki banyak pengalaman menjalankan solusi klaster di berbagai lingkungan bisnis selama bertahun-tahun termasuk pemasaran B2C strategis, arena teknologi B2B dan kebijakan pendidikan (pengelompokan siswa dan sekolah).

Pertama, saya punya pertanyaan tentang komentar Anda tentang "mengelompokkan berbagai dataset." Saya tidak tahu apa yang Anda maksudkan dengan itu atau bagaimana hal itu dapat memengaruhi pendekatan dan berharap Anda bisa menguraikan.

Saya ingin menantang asumsi Anda di # 1 di atas bahwa solusi berdasarkan PCA "sulit untuk diartikan." Alasan bahkan menjalankan PCA sebagai langkah awal dalam pengelompokan sebagian besar berkaitan dengan kebersihan solusi yang dihasilkan sejauh banyak algoritma pengelompokan sensitif terhadap fitur redundansi. PCA menciutkan redundansi ini menjadi beberapa komponen yang dapat dikelola, sehingga meminimalkan tantangan dan kesulitan yang Anda perhatikan terkait pemilihan fitur. Meskipun benar bahwa komponen yang dihasilkan dari PCA mengaburkan rincian dan kekhususan fitur individual, ini adalah masalah jika Anda hanya mengandalkanpada komponen-komponen tersebut dalam menganalisis hasil. Dengan kata lain, Anda sama sekali tidak terkunci hanya menggunakan komponen untuk interpretasi cluster. Tidak hanya itu, Anda bahkan tidak perlu peduli apa arti dimensi faktor. Mereka hanya sarana perantara dan (akhirnya) sekali pakai untuk tujuan memfasilitasi solusi yang dapat ditindaklanjuti. Tetapi dalam membuat poin ini saya berbeda dari banyak praktisi karena tim dapat, akan dan memang menghabiskan berminggu-minggu dengan hati-hati membangun solusi faktor yang "bermakna". Bagi saya, ini adalah pemborosan waktu dan uang klien.

Pada titik ini akan ada banyak pertimbangan teknis untuk ditangani. Pertama, jika algoritma PCA Anda bukan skala invarian (misalnya, adalah OLS vs ML), maka solusi PCA yang dihasilkan akan terdistorsi, memuat lebih banyak pada fitur varians tinggi. Dalam kasus ini, fitur Anda harus diproses terlebih dahulu atau diubah sedemikian rupa untuk meratakan varian ini. Ada sejumlah besar kemungkinan di sini termasuk standardisasi rata-rata, kisaran atau standar IQR, penskalaan ipsative, dan sebagainya. Manfaatkan transformasi itu untuk memberikan solusi terbaik dan paling dapat ditafsirkan.

Setelah solusi cluster dihasilkan, interpretasi termotivasi (dalam pengalaman saya) paling baik dengan mengabaikan komponen dan melipat kembali fitur asli bersama dengan informasi deskriptif tambahan yang tidak langsung digunakan dalam solusi. Pada titik ini beberapa heuristik adalah panduan terbaik untuk wawasan kualitatif. Ini bisa semudah membuat spreadsheet yang memprofilkan kluster Anda berdasarkan rata-rata atau median untuk setiap fitur (baris sheet), untuk setiap kluster (kolom) serta kolom tambahan yang mewakili mean rata-rata untuk total sampel Anda . Kemudian, dengan mengindeks rata-rata kluster untuk setiap fitur terhadap grand mean (dan mengalikan dengan 100), heuristik dibuat yang seperti skor IQ sejauh sekitar "100" adalah IQ "normal" atau perilaku rata-rata, indeks 120+ menunjukkan kemungkinan tinggi untuk fitur "benar" tentang perilaku cluster dan indeks 80 atau kurang merupakan indikasi fitur yang "tidak benar" dari sebuah cluster. Indeks 120+ dan 80 atau kurang ini seperti proxy t-test untuk signifikansi fitur yang diberikan dalam menggerakkan solusi. Tentu saja, Anda dapat menjalankan antara tes kelompok yang signifikan dan, tergantung pada ukuran sampel, akan mendapatkan jawaban yang bervariasi di sekitar aturan praktis yang cepat dan kotor ini.

Ok ... setelah semua itu, misalkan Anda masih menentang menggunakan PCA sebagai input langsung ke dalam algoritma pengelompokan, masalahnya tetap tentang bagaimana memilih set fitur yang berkurang. PCA masih dapat berguna di sini karena PCA seperti menjalankan regresi tanpa variabel dependen. Fitur pemuatan teratas pada setiap komponen dapat menjadi input ke dalam algoritma cluster.

Untuk poin Anda tentang sejumlah besar fitur dan ukuran sampel yang relatif kecil dari data Anda, aturan umum dalam banyak analisis multivariat "informasi lengkap" adalah minimum sekitar 10 pengamatan per fitur. Ada beberapa metode khusus yang dapat dimanfaatkan untuk mengatasi tantangan ini. Sebagai contoh, partial least square (PLS) pertama kali dikembangkan oleh Herman Wold dalam bukunya tahun 1990, Theoretical Empiricism untuk digunakan dalam bidang-bidang seperti chemometrics yang menghadapi masalah tepat ini. Ini adalah faktor analitik, tetapi jauh lebih ketat dalam membutuhkan n besar untuk menghasilkan dimensi. Solusi lain termasuk pendekatan acak pembelajaran seperti mesin, "bagilah dan taklukkan," yang digunakan dengan sejumlah besar informasi. Metode-metode ini ditinjau dalam pdf inihttp://www.wisdom.weizmann.ac.il/~harel/papers/Divide%20and%20Conquer.pdf

Tetapi seandainya Anda telah memutuskan bahwa Anda masih tidak ingin melakukan apa pun dengan analisis faktor dan sudah hampir mati menjalankan beberapa jenis proses seleksi "berurutan" yang diawasi. Dalam pandangan saya, masalah yang paling penting adalah kurang tentang menemukan metrik kinerja post-hoc (Dunn Index) dan lebih lanjut tentang mengidentifikasi proxy yang sesuai - variabel dependen - untuk membuat pendekatan ini mungkin. Keputusan ini sepenuhnya merupakan fungsi penilaian Anda dan status UKM untuk data Anda. Tidak ada "praktik terbaik," jawaban yang jauh lebih mudah untuk ini dan mengingat bagaimana Anda menggambarkan data Anda, tidak ada tantangan kecil.

Setelah keputusan itu dibuat, maka ada ratusan kemungkinan solusi pemilihan variabel untuk dipilih. Seleksi variabel adalah area topik di mana setiap ahli statistik dan saudara mereka telah menerbitkan makalah. Pendekatan pilihan Anda tampaknya "seleksi maju berurutan" baik-baik saja.

Perlu dicatat bahwa ada model pembelajaran terawasi yang terlipat dalam solusi cluster sebagai bagian dari algoritma. Contohnya termasuk pendekatan besar dan sangat fleksibel yang dikenal sebagai model kelas laten. Inti dari model LC adalah bahwa mereka adalah dua tahap: pada tahap satu DV didefinisikan dan model regresi dibangun. Pada tahap kedua, setiap heterogenitas dalam output residual dari model - vektor laten tunggal - dipartisi menjadi "kelas" laten. Ada tinjauan umum pemodelan LC dalam diskusi CV ini di sini ... Model latit multinomial logit diragukan

Semoga ini membantu.

Mike Hunter
sumber
Terima kasih telah meluangkan waktu untuk menjawab pertanyaan saya secara luas. Pertama-tama lucu bahwa Anda menyebutkan chemometrics karena ini adalah bidang yang saya kerjakan. Saya mencoba untuk menemukan cluster dalam pengukuran sampel yang berbeda dan fitur saya adalah sinyal dalam spektrum-nmr. Ini juga alasan utama mengapa saya berpikir untuk membuang PCA sejak awal, karena tujuan analisis saya adalah untuk menghubungkan cluster dengan beberapa fitur aktual (sinyal). Saya tidak mati untuk menggunakan pilihan berurutan, itu hanya apa yang saya gunakan sejauh ini. Saya akan melihat tautan yang Anda berikan.
JohnDoe
Itu lucu tentang chemometrics. Buku Wold adalah bacaan yang baik, hanya secara umum. "Subjek" apa yang termasuk dalam sampel? Dan apa pencitraan nmrs?
Mike Hunter
Sampel adalah ekstrak tanaman berair dan mengambil spektrum 1H-nmr. Tugas saya murni bersifat eksploratif. Saya seharusnya menemukan gugus yang ingin kita hubungkan dengan genotipe yang berbeda di kemudian hari atau fitur yang berbeda dari tanaman seperti tahan kekeringan-stres, dll. Tidak mudah untuk menemukan titik awal yang baik untuk menemukan set metabolit yang tepat / fitur yang membantu membagi cluster, karena akan ada cluster berbeda yang dibuat oleh fitur yang berbeda untuk pertanyaan yang berbeda.
JohnDoe
Oleh karena itu, saya pikir pendekatan sekuensial dapat bekerja paling baik: - menemukan satu set fitur untuk mengelompokkan data - kemudian menghapus fitur-fitur itu dari seluruh set dan memulai dari awal. Dengan cara ini saya berharap menemukan beberapa set cluster yang nantinya bisa saya hubungkan pertanyaan yang berbeda
JohnDoe
1
Yang perlu dipertimbangkan adalah membandingkan setiap pekerjaan eksplorasi dengan kumpulan kluster yang ditentukan atau ditentukan yang disebut juga analisis kluster "konfirmasi". Saya menyarankan ini karena sepertinya Anda dan tim Anda memiliki beberapa hipotesis kuat tentang pembentukan kluster sebagai fungsi, misalnya, menanam "tahan kekeringan-stres." Saya pikir Anda akan menemukan bahwa pekerjaan eksplorasi akan memberikan wawasan dan hasil yang unggul. Pengelompokan eksplorasi memanfaatkan informasi lengkap yang tersedia di data Anda sedangkan aturan penetapan "konfirmasi" biasanya memanfaatkan fitur yang relatif sedikit
Mike Hunter
1

Yang Anda butuhkan hanyalah kriteria kualitas pengelompokan. Inilah idenya: Anda membagi data pada kereta dan tes, membangun pengelompokan pada bagian kereta; gunakan pengelompokan ini untuk mengelompokkan masing-masing elemen dari set tes (oleh kluster terdekat); membangun pengelompokan terpisah pada set tes; menemukan kesamaan pengelompokan dalam tes dengan pengelompokan yang diprediksi. Kesamaan ini adalah kriteria kualitas pengelompokan. Sekarang, bagaimana mengukur kesamaan ini terserah Anda. Setelah Anda mendapatkannya, Anda memilih subset fitur untuk memaksimalkan kesamaan ini.

Marina
sumber