Mengapa ada orang yang menggunakan KNN untuk regresi?

26

Dari apa yang saya pahami, kita hanya bisa membangun fungsi regresi yang terletak di dalam interval data pelatihan.

Misalnya (hanya satu panel yang diperlukan): masukkan deskripsi gambar di sini

Bagaimana saya memprediksi ke masa depan menggunakan regresor KNN? Sekali lagi, tampaknya hanya memperkirakan fungsi yang berada dalam interval data pelatihan.

Pertanyaan saya: Apa keuntungan menggunakan regresor KNN? Saya mengerti bahwa ini adalah alat yang sangat kuat untuk klasifikasi, tetapi tampaknya akan berkinerja buruk dalam skenario regresi.

gung - Reinstate Monica
sumber
Bisakah Anda mengklarifikasi apa yang Anda maksud dengan "memprediksi ke masa depan"? Apakah Anda memiliki deret waktu & Anda ingin melakukan peramalan, atau Anda mencoba menyesuaikan hubungan antara 2 variabel & ingin menggunakannya di masa depan untuk menebak nilai Y dari nilai X yang diketahui?
gung - Reinstate Monica
1
Misalnya, jika saya ingin memprediksi nilai Y sedemikian rupa sehingga X = 15 dari gambar di atas. Seorang KNN-regressor tidak akan memotongnya dengan benar?
1
Saya setuju dengan Anda bahwa jika Anda berlatih pada set dengan tetapi diharapkan bahwa Anda dapat melihat nilai jauh melampaui apa yang ada dalam data Anda maka metode lokal non-parametrik mungkin tidak ideal. Alih-alih, Anda mungkin ingin menggunakan pengetahuan domain itu dan mendefinisikan model parametrik yang mencakup pengetahuan Anda tentang bagaimana perilaku 'tidak teramati' diharapkan untuk berperilaku. x xx[0,5]xx
Meadowlark Bradsher
1
Contoh KNN yang berhasil digunakan untuk regresi adalah prediksi prediksi baseball Nate Silver PECOTA. Anda dapat membaca tentang pro dan kontra dari artikel Wikipedia di PECOTA atau artikel surat kabar seperti ini: macleans.ca/authors/colby-cosh/…
Flounderer
6
Juga untuk membuat poin yang lebih umum, ketika Anda menjadi berpengetahuan luas dalam statistik (atau penambangan data / pembelajaran mesin dll) Anda akan menemukan bahwa jawaban untuk pertanyaan yang sangat umum seperti milik Anda akan sering kali merupakan versi yang diparafrasekan dari 'itu tergantung'. Mengetahui apa itu 'tergantung' dan mengapa pengetahuan itu.
Meadowlark Bradsher

Jawaban:

17

Metode lokal seperti K-NN masuk akal dalam beberapa situasi.

Salah satu contoh yang saya lakukan di pekerjaan sekolah harus dilakukan dengan memprediksi kekuatan tekan berbagai campuran bahan semen. Semua bahan ini relatif tidak mudah menguap sehubungan dengan respons atau satu sama lain dan KNN membuat prediksi yang dapat diandalkan. Dengan kata lain tidak ada variabel independen yang memiliki varians yang tidak proporsional besar untuk diberikan kepada model baik secara individu atau mungkin dengan interaksi timbal balik.

Ambil ini dengan sebutir garam karena saya tidak tahu teknik investigasi data yang secara meyakinkan menunjukkan hal ini tetapi secara intuitif tampaknya masuk akal bahwa jika fitur Anda memiliki beberapa varian tingkat yang proporsional, saya tidak tahu proporsi apa, Anda mungkin memiliki Calon KNN. Saya tentu ingin tahu apakah ada beberapa penelitian dan teknik yang dihasilkan dikembangkan untuk efek ini.

Jika Anda memikirkannya dari perspektif domain umum ada kelas luas aplikasi di mana 'resep' yang sama menghasilkan hasil yang serupa. Ini tentu saja menggambarkan situasi memprediksi hasil pencampuran semen. Saya akan mengatakan jika Anda memiliki data yang berperilaku sesuai dengan deskripsi ini dan sebagai tambahan ukuran jarak Anda juga alami untuk domain yang ada dan terakhir bahwa Anda memiliki data yang cukup, saya akan membayangkan bahwa Anda harus mendapatkan hasil yang bermanfaat dari KNN atau metode lokal lain .

Anda juga mendapatkan manfaat dari bias yang sangat rendah ketika Anda menggunakan metode lokal. Terkadang general aditif model (GAM) menyeimbangkan bias dan varians dengan menyesuaikan setiap variabel individu menggunakan KNN sedemikian rupa sehingga:

y^=f1(x1)+f2(x2)++fn(xn)+ϵ

Bagian aditif (simbol plus) melindungi terhadap varian tinggi sementara penggunaan KNN sebagai ganti melindungi terhadap bias tinggi.fn(xn)

Saya tidak akan menghapus KNN begitu cepat. Itu memiliki tempatnya.

Meadowlark Bradsher
sumber
1
Jawaban tentang penskalaan data untuk knn ini dapat membantu mengungkapkan apa yang Anda maksud dengan "tingkat variasi yang proporsional." stats.stackexchange.com/questions/287425/…
eric_kernfeld
5

Saya tidak suka mengatakannya tetapi sebenarnya jawaban singkatnya adalah, bahwa "memprediksi ke masa depan" tidak mungkin dilakukan dengan knn atau dengan pengklasifikasi atau regressor yang ada saat ini.

Tentu Anda dapat memperkirakan garis regresi linier atau bidang hiper SVM tetapi pada akhirnya Anda tidak tahu apa yang akan terjadi di masa depan, untuk semua yang kita tahu, garis mungkin hanya sebagian kecil dari kenyataan melengkung. Ini menjadi jelas ketika Anda melihat metode Bayesian seperti proses Gaussian misalnya, Anda akan melihat ketidakpastian besar segera setelah Anda meninggalkan "domain input yang dikenal".

Tentu saja Anda dapat mencoba untuk menggeneralisasi dari apa yang terjadi hari ini ke apa yang mungkin terjadi besok, yang dapat dengan mudah dilakukan dengan seorang ahli perunding (misalnya nomor pelanggan tahun lalu selama waktu Natal dapat memberi Anda petunjuk yang baik tentang angka tahun ini). Tentu metode lain dapat menggabungkan tren dan sebagainya, tetapi pada akhirnya Anda dapat melihat seberapa baik itu bekerja ketika datang ke pasar saham atau prediksi cuaca jangka panjang.

meong
sumber
+1 untuk hati-hati terhadap ekstrapolasi dan untuk mendiskusikan perilaku (relatif konservatif) KNN ketika melakukan ekstrapolasi.
eric_kernfeld
KNN lebih konservatif daripada regresi linier ketika mengekstrapolasi dengan tepat karena perilaku yang dicatat oleh OP: KNN hanya dapat menghasilkan prediksi dalam kisaran nilai Y yang sudah diamati. Ini bisa menjadi keuntungan dalam banyak situasi.
eric_kernfeld
1

Pertama contoh untuk "Bagaimana saya memprediksi ke masa depan menggunakan regressor KNN?".

skamunt+1skamunt..skamunt-6
skamunt

weektskamunt..skamunt-6tHaimHairrHaiw(weekt))skamunt+1

weekt
week
tHaimHairrHaiw0..tHaimHairrHaiw9
halredsayact(week)tHaimHairrHaiw0..tHaimHairrHaiw9

Tune the weight, lihat misalnya invers-distance-weighted-idw-interpolasi-with-python ,
dan metrik jarak untuk "Tetangga terdekat" di 7d.

"Apa keuntungan menggunakan regresor KNN?"
Untuk komentar baik orang lain, saya akan menambahkan kode dan pemahaman yang mudah, dan meningkatkannya menjadi data besar.
Kekurangan: sensitif terhadap data dan penyetelan, tidak banyak pemahaman .




XY
Yt=b0Xt+b1Xt-1+...
Yt+1
Yt+1=Sebuah0Yt+Sebuah1Yt-1+...

Jadi baris pertama Anda "kami hanya dapat membangun fungsi regresi yang terletak di dalam interval data pelatihan" tampaknya tentang kata "regresi" yang membingungkan.)

denis
sumber
1

Dari Pengantar Pembelajaran Statistik , bagian 3.5:

Dalam situasi kehidupan nyata di mana hubungan yang sebenarnya tidak diketahui, orang mungkin menarik kesimpulan bahwa KNN harus disukai daripada regresi linier karena paling buruk akan sedikit lebih rendah daripada regresi linier jika hubungan yang sebenarnya adalah linier, dan dapat memberikan secara substansial lebih baik hasil jika hubungan yang sebenarnya adalah non-linear.

Tetapi ada kendala (bukan dari buku teks, hanya apa yang saya simpulkan):

  1. jumlah pengamatan per prediktor yang memadai.
  2. jumlah prediktor tidak boleh terlalu besar.
Hangyu Tian
sumber