Mengapa Anda perlu skala data di KNN

15

Bisakah seseorang tolong jelaskan kepada saya mengapa Anda perlu menormalkan data saat menggunakan K tetangga terdekat.

Saya sudah mencoba mencari ini, tetapi saya masih belum bisa memahaminya.

Saya menemukan tautan berikut:

https://discuss.analyticsvidhya.com/t/why-it-is-n perlu-to-normalisasi-in-knn/2715

Namun dalam penjelasan ini, saya tidak mengerti mengapa kisaran yang lebih besar di salah satu fitur mempengaruhi prediksi.

bugyb
sumber
Saya pikir normalisasi harus dibenarkan dari sudut pandang subjek. Intinya, yang penting adalah yang menentukan jarak antar titik. Anda harus menemukan definisi aritmatika jarak yang nyaman yang mencerminkan definisi jarak subjek-materi. Dalam pengalaman saya yang terbatas, saya telah menormalkan dalam beberapa tetapi tidak semua arah berdasarkan pertimbangan subjek.
Richard Hardy
1
Untuk contoh instruktif, silakan lihat stats.stackexchange.com/questions/140711 .
whuber

Jawaban:

26

Algoritma k-tetangga terdekat bergantung pada suara terbanyak berdasarkan keanggotaan kelas sampel 'k' terdekat untuk titik uji yang diberikan. Kedekatan sampel biasanya didasarkan pada jarak Euclidean.

Pertimbangkan masalah klasifikasi dua kelas sederhana, di mana sampel Kelas 1 dipilih (hitam) bersama dengan 10 tetangga terdekatnya (terisi hijau). Pada gambar pertama, data tidak dinormalisasi, sedangkan pada yang kedua adalah data.

Data tanpa normalisasi Data dengan normalisasi

x1

Normalisasi menyelesaikan masalah ini!

kedarps
sumber
1
Jawaban ini benar, tetapi saya khawatir ilustrasinya menipu karena distorsi yang terlibat. Titik mungkin lebih baik dibuat dengan menggambar keduanya sehingga kedua sumbu di masing-masing berada pada skala yang sama.
whuber
1
Saya merasa sulit untuk mencocokkan semua titik data dalam skala yang sama untuk kedua angka. Karenanya, saya menyebutkan dalam sebuah catatan bahwa skala sumbu berbeda.
kedarps
1
Kesulitan itu sebenarnya adalah inti dari respons Anda! Salah satu cara untuk mengatasinya adalah dengan tidak menggunakan skala skala ekstrim seperti itu. Perbedaan dalam skala 5: 1, dan bukannya perbedaan 1000: 1, akan tetap membuat poin Anda bagus. Cara lain adalah menggambar gambar dengan setia: scatterplot atas tampaknya akan menjadi garis titik vertikal.
Whuber
2
@whuber, saya salah mengerti komentar pertama Anda. Memperbaiki plot, semoga sekarang lebih baik!
kedarps
1
@Undertherainbow Itu benar!
kedarps
5

Misalkan Anda memiliki kumpulan data (m "contoh" dengan n "fitur") dan semua kecuali satu dimensi fitur memiliki nilai ketat antara 0 dan 1, sedangkan dimensi fitur tunggal memiliki nilai yang berkisar antara -1000000 hingga 1000000. Saat mengambil jarak euclidean antara pasangan "contoh", nilai-nilai dimensi fitur yang berkisar antara 0 dan 1 dapat menjadi tidak informatif dan algoritma pada dasarnya akan bergantung pada dimensi tunggal yang nilainya jauh lebih besar. Cukup kerjakan beberapa contoh perhitungan jarak euclidean dan Anda dapat memahami bagaimana skala memengaruhi perhitungan tetangga terdekat.

Derek Jones
sumber