Saya ingin mempelajari (menyimpulkan) bobot atribut untuk ukuran ketidaksamaan yang dapat saya gunakan untuk pengelompokan.
Saya punya beberapa contoh pasangan objek yang "mirip" (harus berada di cluster yang sama), serta beberapa contoh pasangan objek yang "tidak mirip" (tidak boleh). berada di cluster yang sama). Setiap objek memiliki sejumlah atribut: jika Anda suka, kita dapat menganggap setiap objek sebagai vektor dimensi dimensi, di mana setiap fitur adalah bilangan bulat non-negatif. Apakah ada teknik untuk menggunakan contoh serupa / objek yang berbeda untuk memperkirakan dari mereka bobot fitur yang optimal untuk ukuran ketidaksamaan?( c i , d i ) d
Jika itu membantu, dalam aplikasi saya, mungkin akan masuk akal untuk fokus pada belajar ukuran ketidaksamaan yang merupakan norma L2 tertimbang:
di mana bobot tidak diketahui dan harus dipelajari. (Atau, semacam ukuran kesamaan cosinus tertimbang mungkin masuk akal juga.) Apakah ada algoritma yang baik untuk mempelajari bobot untuk ukuran seperti itu, mengingat contohnya? Atau adakah metode lain untuk mempelajari ukuran kesamaan / perbedaan yang harus saya pertimbangkan?α j
Jumlah dimensi sayangnya sangat besar (ribuan atau lebih tinggi; itu berasal dari fitur bag-of-words). Namun, saya punya puluhan ribu contoh. Saya kemudian memiliki ratusan ribu objek yang ingin saya klaster, jadi penting untuk menggeneralisasi dari contoh untuk mempelajari metrik perbedaan yang baik.
Saya mengetahui bahwa ini termasuk ke dalam rubrik semi-supervised clustering, dan kedengarannya seperti nada "kesamaan-adaptasi", tetapi saya belum dapat menemukan deskripsi algoritma yang jelas untuk digunakan untuk tujuan ini.
Jawaban:
Ini adalah masalah besar di beberapa bidang pembelajaran mesin. Saya tidak terbiasa dengan itu seperti yang saya inginkan, tapi saya pikir ini harus Anda mulai.
Pengurangan Dimensi dengan Belajar Pemetaan Invarian (DrLIM) tampaknya bekerja dengan sangat baik pada beberapa set data.
Analisis komponen lingkungan adalah algoritma linier yang sangat bagus, dan versi nonlinier telah dikembangkan juga.
Ada seluruh literatur yang membahas masalah ini dari perspektif "belajar kernel". Saya tidak tahu banyak tentang itu, tetapi makalah ini sangat dikutip.
Mengingat bahwa data Anda sangat berdimensi tinggi (dan mungkin jarang?), Anda mungkin tidak perlu sesuatu yang terlalu linier. Mungkin analisis komponen lingkungan adalah tempat terbaik untuk memulai? Ini paling dekat dengan gagasan norma tertimbang , seperti yang Anda sarankan dalam pertanyaan Anda.L.2
sumber
Menempatkan bobot pada fitur dalam ukuran kesamaan Anda adalah sama, jadi data Anda ditetapkan oleh . 1 / w iSebuahsaya 1 / wsaya
Dengan kata lain, Anda bertanya tentang preprocessing dan penskalaan data. Ini terlalu luas untuk dijawab dengan baik dalam satu pertanyaan. Mencari:
Ada sejumlah besar literatur dan bahkan trek konferensi yang didedikasikan untuk ini. Beberapa metode untuk Anda mulai:
sumber