Sangat sulit untuk membandingkan kNN dan regresi linier secara langsung karena mereka adalah hal yang sangat berbeda, namun, saya pikir poin kunci di sini adalah perbedaan antara "pemodelan " dan "memiliki asumsi tentang f ( x ) ".f( x )f( x )
Ketika melakukan regresi linier, seseorang secara khusus memodelkan , seringkali sesuatu di antara garis f ( x ) = w x + ϵ di mana ϵ adalah istilah noise Gaussian. Anda dapat mengatasinya bahwa model kemungkinan maksimum setara dengan model jumlah kesalahan minimum.f( x )f( x ) = w x + ϵϵ
KNN, di sisi lain, seperti yang ditunjukkan poin kedua Anda, mengasumsikan bahwa Anda dapat memperkirakan fungsi tersebut dengan fungsi konstan lokal - suatu ukuran jarak antara -ses, tanpa secara khusus memodelkan seluruh distribusi.x
Dengan kata lain, regresi linier akan sering memiliki gagasan bagus tentang nilai untuk beberapa x yang tidak terlihat hanya dari nilai x , sedangkan kNN memerlukan beberapa informasi lain (yaitu tetangga k), untuk membuat prediksi tentang f ( x ) , karena nilai x , dan hanya nilai itu sendiri, tidak akan memberikan informasi apa pun, karena tidak ada model untuk f ( x ) .f( x )xxf( x )xf( x )
EDIT: mengulangi ini di bawah ini untuk mengekspresikan kembali ini lebih jelas (lihat komentar)
Jelas bahwa baik regresi linier dan metode tetangga terdekat bertujuan memprediksi nilai untuk x baru . Sekarang ada dua pendekatan. Regresi linier berjalan dengan mengasumsikan bahwa data jatuh pada garis lurus (plus minus beberapa noise), dan oleh karena itu nilai y sama dengan nilai f ( x ) kali kemiringan garis. Dengan kata lain, ekspresi linier memodelkan data sebagai garis lurus.y= f( x )xf( x )
Sekarang metode tetangga terdekat tidak peduli tentang bagaimana data terlihat (tidak memodelkan data), yaitu, mereka tidak peduli apakah itu garis, parabola, lingkaran, dll. Asumsinya, adalah bahwa dan f ( x 2 ) akan serupa, jika x 1 dan x 2 serupa. Perhatikan bahwa asumsi ini kira-kira berlaku untuk hampir semua model, termasuk semua yang saya sebutkan di atas. Namun, metode NN tidak bisa mengatakan bagaimana nilai f ( x ) terkait dengan xf( x1)f( x2)x1x2f( x )x (apakah itu garis, parabola, dll.), karena tidak memiliki model hubungan ini, itu hanya mengasumsikan bahwa itu dapat diperkirakan dengan melihat ke titik dekat.
sumber
Istilah berbasis model identik dengan "berbasis distribusi" ketika membahas metode pengelompokan. Regresi linier membuat asumsi distribusi (bahwa kesalahannya adalah Gaussian). KNN tidak membuat asumsi distribusi. Itulah perbedaannya.
sumber
kNN berbasis instance
Untuk membuat prediksi untuk pengamatan baru, Anda harus menyimpan semua dataset pelatihan, karena, tidak ada model tentang dataset.
Beginilah cara kNN bekerja: mengingat pengamatan baru, kami akan menghitung jarak antara pengamatan baru ini dan semua pengamatan lain dalam dataset pelatihan. Kemudian Anda mendapatkan tetangga (yang paling dekat dengan pengamatan baru).
Bagaimana bisa menemukan model?
Sekarang, jika kita mencoba menemukan fungsi yang bukan "konstanta lokal", itu akan menjadi distribusi normal. Dalam hal ini, Anda akan mendapatkan panggilan algoritma Analisis Diskriminan Linier atau Naif Bayes (tergantung pada beberapa asumsi lain).
sumber