En Yakın Komşu Bulma Algoritması (KNN)

En Yakın Komşu Bulma Algoritması

Sınıflandırmada kullanılan bu algoritmaya göre sınıflandırma sırasında çıkarılan özelliklerden, sınıflandırılmak istenen yeni bireyin daha önceki bireylerden k tanesine yakınlığına bakılır. Örneğin k=3 için yeni bir eleman sınıflandırılmak istensin. Bu durumda eski sınıflandırılmış elemanlardan en yakın 3 tanesi alınır. k değeri çok küçük olursa model çok etkilenir. Çok büyük olursa da tek bir sınıf gibi olur.  Yani k sayısının sınıflandırmaya etkisi vardır.

Algoritmanın Adımları;

1- Yeni gelen birey sınıfa eklenir.

2- k komşusuna bakılır.

3- Çeşitli uzaklık fonksiyonları kullanılarak uzaklık hesaplanır. (Ki bu fonksiyonlardan en çok tercih edileni Öklid uzaklık fonksiyonudur.)

4- En yakın neresi ise birey oraya atanır.

Uzaklık Fonksiyonları

1- Manhattan Uzaklık Fonksiyonu:

d(i,j):|xi1– xj1|+|xi2-xj2|+….

2- Minkowski Uzaklık Fonksiyonu:

d(i,j):(|xi1-xj1|q+|xi2-xj2|q+…)1/q

3- Öklid Uzaklık Fonksiyonu:

d(i,j):(|xi1-xj1|2+|xi2-xj2|2+…)1/2

Bölgesel Ağırlıklandırılmış Ortalama Yöntemine göre W=1/d2 hesaplanarak ağırlıklar belirlenir. Bu kestirme ve tahminleme için kullanılır.

Bir örnek verecek olursak:

Ekran Alıntısı

10 tane verimiz olsun. X1=8 ve X2=4 değerleri için en yakın komşu bulma algoritmasını kullanarak hangi sınıfa ait olduğunu bulalım. k=4 verilmiş olsun. Öklid uzaklık fonksiyonunu kullanarak;

Ekran Alıntısı

Hesaplamaları yaptık şimdi en yakın 4 noktayı alıp bakacağız. 2.24, 2.83, 3.16, 4.24 sonuçlarının  tabloda karşılık geldiği değerler GOOD,BAD,BAD,BAD olarak gözüküyor. 3tane BAD 1 tane GOOD olduğundan en çok olan sınıfa dahil ederiz. Yani BAD sınıfına dahil oldu.

İyi Çalışmalar..

Ali Demirci

1991 Ankara doğumluyum. Bilgisayar Mühendisliği bölümü 2013 mezunuyum. Bakanlığın bir kurumunda, Sistem(Linux, Windows Server) üzerine çalışmaktayım. Fakat boş zamanlarımda, kendimi yazılım konusunda da geliştirmekteyim. 20'ye yakın Android programım vardır. Her türlü soru(n)larınızda iletişime geçmekten çekinmeyin.

En Yakın Komşu Bulma Algoritması (KNN)” için 4 yorum

  • 18 Aralık, 2014 tarihinde, saat 17:24
    Permalink

    Güzel yazınız için teşekkürler. İleri derecede resmi ve formülasyon odaklı paylaşımlara göre, gayet sade ve anlaşılır bir paylaşım olmuş. Kolay gelsin.

    • 30 Aralık, 2014 tarihinde, saat 14:38
      Permalink

      teşekkürler yorumunuz için tuğrul bey

  • 25 Aralık, 2015 tarihinde, saat 19:18
    Permalink

    Sevgili Ali,

    Rapidminer kullanarak veri madenciliği yapıyorum. K-nn algoritmasını kullanıyorum. Önceden pozitif ve negatif anahtar kelime listelerinin olduğu iki listeye göre metnin değerlendirilmesini sağlıyorum. Sonuçlar yönelimi gösterse de, istediğim ölçüde kesin değil. Bu kesinliği artırmak için neler yapılabilir?

    Selamlar,
    Oğuz

  • 29 Mayıs, 2016 tarihinde, saat 16:37
    Permalink

    Bilgiler için sağol kardeşim.

Yorumlar kapatıldı.