KNN'deki verileri neden ölçeklendirmeniz gerekiyor?


15

Birisi bana en yakın komşuları kullanırken neden verileri normalleştirmeniz gerektiğini açıklayabilir mi?

Bunu aramaya çalıştım, ama hala anlayamıyorum.

Aşağıdaki bağlantıyı buldum:

https://discuss.analyticsvidhya.com/t/why-it-is-necessary-to-normalize-in-knn/2715

Ancak bu açıklamada, özelliklerden birinde daha geniş bir aralığın neden tahminleri etkilediğini anlamıyorum.


Bence normalleşme konu açısından doğrulanmalıdır. Esasen, önemli olan noktalar arasındaki mesafeyi tanımlayan şeydir. Mesafenin özne tanımını yansıtan, uygun bir mesafe aritmetik tanımı bulmalısınız. Sınırlı deneyimlerime göre, konu ile ilgili hususlara dayalı olarak bazı yönlerde normalleştim, ancak bazı yönlerde normalleştim.
Richard Hardy

1
Eğitici bir örnek için lütfen stats.stackexchange.com/questions/140711 adresine bakın .
whuber

Yanıtlar:


27

K-en yakın komşu algoritması, belirli bir test noktası için en yakın 'k' örneğinin sınıf üyeliğine dayalı olarak çoğunluk oylamasına dayanır. Numunelerin yakınlığı tipik olarak Öklid mesafesine dayanır.

Bir Sınıf 1 örneğinin (siyah) ve en yakın 10 komşusu (yeşil dolu) ile seçildiği iki sınıflı basit bir sınıflandırma problemini düşünün. İlk şekilde veriler normalleştirilmezken, ikincisinde veriler normalleştirilmez.

Normalleştirilmeden veriler Normalleştirilen veriler

Normalleştirme olmadan, en yakın komşuların eksenin yönünde daha küçük aralıklarla nasıl hizalandığına, yani yanlış sınıflandırmaya yol .x1

Normalizasyon bu sorunu çözer!


1
Bu cevap tam olarak doğru, ancak ilgili çarpıtmalardan dolayı çizimlerin aldatıcı olabileceğinden korkuyorum. Nokta her ikisinin de çizilmesiyle daha iyi olabilir, böylece her birindeki iki eksen aynı ölçekte olur.
whuber

1
Her iki rakam için de tüm veri noktalarını aynı ölçekte uydurmakta zorlandım. Bu nedenle, bir notta eksen ölçeklerinin farklı olduğunu belirttim.
kedarps

1
Bu zorluk aslında cevabınızın konusu! Bunun üstesinden gelmenin bir yolu, bu kadar aşırı bir ölçek aralığı kullanmak değildir. Ölçeklerde 5: 1 fark, 1000: 1 fark yerine, yine de güzel bir noktaya değinecektir. Başka bir yol, resmi sadakatle çizmektir: üst dağılım grafiği dikey bir nokta çizgisi gibi görünecektir.
whuber

2
@whuber, ilk yorumunu yanlış anladım. Arsalar düzeltildi, umarım şimdi daha iyidir!
kedarps

1
@Un thethebow Bu doğru!
kedarps

6

Bir veri kümeniz olduğunu (n "özelliklerle m" örnekleri ") ve bir özellik boyutu dışındaki tüm değerlerin kesinlikle 0 ile 1 arasında değerlere sahip olduğunu, ancak tek bir özellik boyutunun -1000000 ila 1000000 aralığında değerlere sahip olduğunu varsayalım. Öklid mesafesini alırken "örnek" çiftleri arasında, 0 ile 1 arasında değişen özellik boyutlarının değerleri bilgi vermez hale gelebilir ve algoritma esasen değerleri büyük ölçüde daha büyük olan tek boyuta dayanacaktır. Sadece bazı örnek öklid uzaklık hesaplamaları yapın ve ölçeğin en yakın komşu hesaplamayı nasıl etkilediğini anlayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.