Mengapa KNN tidak “berbasis model”?

10

ESL bab 2.4 tampaknya mengklasifikasikan regresi linier sebagai "berbasis model", karena mengasumsikan , sedangkan tidak ada perkiraan serupa yang dinyatakan untuk k-tetangga terdekat. Tapi bukankah kedua metode membuat asumsi tentang ?f ( x )f(x)xβf(x)

Kemudian di 2.4 bahkan dikatakan:

  • Kuadrat terkecil mengasumsikan didekati dengan baik oleh fungsi linear global.f(x)
  • k-tetangga terdekat menganggap didekati dengan baik oleh fungsi konstan lokal.f(x)

Asumsi KNN sepertinya juga bisa diformalkan (walaupun tidak yakin jika melakukan hal itu akan mengarah pada algoritma KNN dengan cara mengasumsikan adalah linear mengarah ke regresi linier).f

Jadi jika KNN sebenarnya tidak berbasis model, mengapa? Atau apakah saya salah membaca ESL?

Alec
sumber

Jawaban:

8

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)=wx+ϵϵ

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.

Saulius Lukauskas
sumber
"satu khusus memodelkan f (x)" Apa artinya ini? Tampaknya seseorang dapat memformalkan asumsi bahwa f adalah konstan secara lokal. Apakah hanya KNN yang tidak dapat diturunkan dengan formalisasi semacam itu?
Alec
"Regresi linier akan sering memiliki ide bagus tentang nilai f (x) untuk beberapa x tak terlihat hanya dari nilai x" tidak yakin apa yang Anda maksud dengan ini juga ... Anda masih memerlukan parameter model linear, hanya karena Anda memerlukan parameter untuk KNN (meskipun parameternya lebih terlibat)
Alec
Poin bagus, saya mencoba mengedit jawaban saya untuk membuatnya lebih jelas dan semoga menjawab poin Anda (batas karakter untuk komentar rendah).
Saulius Lukauskas
+1, ini dijelaskan dengan baik. 'perbedaan antara "pemodelan f (x)" dan "memiliki asumsi tentang f (x)"', menangkap gagasan dengan sangat baik, IMO. Mungkin cara lain untuk menempatkan ini adalah dengan mempertimbangkan bahwa pemodelan f (x) sama dengan membuat asumsi tentang proses pembuatan data , sedangkan knn tidak melakukan ini, tetapi hanya memperkirakan bahwa nilai datum yang diberikan mungkin sama dengan nilai terdekat. data.
gung - Reinstate Monica
Hm, oke. Suntingan Anda membuatnya sedikit lebih jelas, tetapi saya masih mengalami kesulitan untuk benar-benar melihat perbedaan formal. Tampaknya dengan "memodelkan" Anda berarti "mendapatkan ide yang baik untuk bentuk f secara global", sedangkan KNN hanya peduli pada perilaku lokal. Jadi apakah perbedaan global vs lokal ini yang membuat pemodelan regresi linier dan KNN tidak?
Alec
5

f^(X)=β^X

X

tjnel
sumber
Walaupun secara intuitif saya mengerti apa yang Anda maksud, perbedaannya masih terasa goyah bagi saya ... tidak bisakah Anda melihat KNN sebagai parameter dengan partisi R ^ d dan bobot yang ditetapkan untuk partisi?
Alec
1
Jika seseorang meminta Anda untuk membenarkan prediksi Anda, Anda bisa melakukannya jika Anda menggunakan regresi linier dengan menjelaskan hubungan antara input dan output yang diasumsikan oleh model Anda. Model berusaha menjelaskan hubungan input dan output b / w. KNN tidak berusaha menjelaskan hubungan antara input dan output, jadi tidak ada model.
tjnel
4

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.

DL Dahly
sumber
1
Sejauh ini yang paling masuk akal bagi saya dalam hal perbedaan formal, meskipun ESL tidak benar-benar menyajikan regresi linier dengan cara ini. Mereka memperkenalkan fungsi biaya kesalahan kuadrat terlebih dahulu, jenis sewenang-wenang (alih-alih melakukan MLE untuk Gaussian), menggunakannya untuk menemukan bahwa kita harus memprediksi f (x) = E (Y | X = x), menjelaskan bagaimana perkiraan KNN ini berdasarkan asumsi tertentu, dan kemudian menganggap f adalah linier untuk mendapatkan regresi linier.
Alec
Proposisi yang menarik, tetapi akan jauh lebih baik jika kita memiliki beberapa referensi tentang ini.
ivanmp
0

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).

k=5

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).

Xiaoshi
sumber