Saya mengerti dasar dari algoritma kNN untuk data spasial. Dan saya tahu saya dapat memperluas algoritma untuk digunakan pada variabel data kontinu (atau data nominal dengan Jarak Hamming). Namun, strategi apa yang digunakan ketika berhadapan dengan data dimensi yang lebih tinggi?
Misalnya, saya memiliki tabel data (x [1], x [2], x [3], ..., x [n]) dan saya ingin membangun seperangkat pengklasifikasi untuk memprediksi salah satu kolom tersebut (katakanlah x [n]). Dengan menggunakan algoritma kNN, saya akan memilih dua kolom dari kolom yang tersisa (x [1] -x [n-1]) untuk dilatih. Jadi katakan saya bisa memilih x [1] dan x [2] dan membangun classifier dari itu. Atau saya dapat memilih x [1] dan x [4], atau saya dapat memilih x [5] dan x [8], dll. Saya bahkan dapat memilih hanya satu kolom dan membuat classifier dari itu, atau 3 kolom dan membangun sebuah pengklasifikasi dari itu. Apakah ada keuntungan menggunakan dimensi yang lebih tinggi (2D, 3D, dll) atau haruskah Anda hanya membangun pengklasifikasi dimensi tunggal x-1 dan menggabungkan prediksi mereka dengan cara tertentu?
Karena membangun semua pengklasifikasi ini dari semua kombinasi potensial dari variabel akan menjadi mahal secara komputasi. Bagaimana saya bisa mengoptimalkan pencarian ini untuk menemukan pengklasifikasi kNN terbaik dari set itu? Dan, begitu saya menemukan serangkaian pengklasifikasi, apa cara terbaik untuk menggabungkan hasil mereka ke prediksi tunggal? Voting mungkin jawaban paling sederhana untuk pertanyaan ini. Atau menimbang setiap suara dengan tingkat kesalahan dari data pelatihan untuk setiap classifier.
Bagaimana sebagian besar implementasi menerapkan kNN pada pembelajaran yang lebih umum?
sumber
Jawaban:
Ini tergantung pada apakah fitur Anda informatif atau tidak. Apakah Anda menduga bahwa beberapa fitur tidak akan berguna dalam tugas klasifikasi Anda? Untuk mendapatkan gambaran yang lebih baik tentang data Anda, Anda juga dapat mencoba menghitung korelasi berpasangan atau informasi timbal balik antara variabel respons dan masing-masing fitur Anda.
Untuk menggabungkan semua (atau subset) fitur Anda, Anda dapat mencoba menghitung jarak L1 (Manhattan), atau L2 (Euclidean) antara titik kueri dan setiap titik 'pelatihan' sebagai titik awal.
Ini adalah masalah pemilihan subset fitur. Ada banyak karya akademis di bidang ini (lihat Guyon, I., & Elisseeff, A. (2003). Pengantar Variabel dan Seleksi Fitur. Jurnal Machine Learning Research, 3, 1157-1182. Untuk ikhtisar yang baik ).
Ini akan tergantung pada apakah fitur yang dipilih independen atau tidak. Dalam hal fitur independen, Anda dapat mempertimbangkan setiap fitur dengan informasi timbal baliknya (atau ukuran keinformatifan lainnya) dengan variabel respons (apa pun yang Anda klasifikasikan). Jika beberapa fitur tergantung, maka model klasifikasi tunggal mungkin akan bekerja paling baik.
Dengan memungkinkan pengguna untuk menentukan matriks jarak mereka sendiri di antara set poin. kNN bekerja dengan baik ketika metrik jarak yang sesuai digunakan.
sumber