K-NN ve Örnek Uygulama

Bundan önceki bölümlerde regression algoritmalarından bahsetmiştik. Bu bölümde supervisied(gözetimli ögrenme) algoritması olan classification(sınıflandırma) bölümünde yer alan ama aynı zaman da regression algoritması olarak da çalışabilecek bir algoritmadır. Algoritmanın uzun halde nitelendirilen ismi K-Neirest Neighbour dur. Daha da anlaşılır olabilmesi için en yakın komşu algoritması olarak türkçeleştirilmiştir.

K-NN algoritması temelde ecludian(mesafe hesaplaması) temeline dayandırılmıştır. K-NN algoritması seçilen noktanın hangi sınıfa ait olduğunu tespit için kullanılan sınıflandırma algoritmasıdır.

K-NN algoritmasının çalışma mantığı;

  • K değeri seç.
  • K ya yakın noktaları bul.
  • K değerine yakın komşular arasında hangi sınıftan kaç tane var.
  • Daha sonra bu k değeri hangi sınıfa ait olduğunu tespit et.
  • Eğer bir değer atanacak ise bu seçilen noktaya o zaman dahil olduğu sınıfın ortama değeri atanır.

K-NN algoritmasını daha net pekiştirmek için kanser hücresi tespiti üzerine python kullanarak örnek bir uygulama yapalım. Burada kanser hücrelerinin boyutları hakkında bilgi verilmiştir.

Veri setimiz içerisinden ihtiyacımız olmadığını düşündüğümüz id ve Unnamed kolonlarını verileriyle birlikte silinir.

Veri seti hakkında bilgi edinme ve kanser hücrelerini temsil eden M ve B degerlerine göre iki ayrı veri seti haline dönüştürülür.

Veri setimiz hakında biraz daha bilgi alabilmek ve daha yi anlaşılabilmesi için görselleştirme işlemi yapılır. Veri setimizi M(Kötü huylu kanser hücresi) ve B(iyi huylu kanser hücresi) diye böldükten sonra matplotlib kütüphanesi ile görselleştirilir.

Verimizi daha iyi tanıdıktan sonra makine ögrenmesi için 0 ve 1 degerlerine dönüştürülmelidir.

Makine ögrenmesi için gerekli dönüşümü tamamladıktan sonra tahmin ve sınıflandırma için kullanacagımız diagnosis kolonunuda veri setimiz içerisinden çıkardıktan sonra train ve test olarak veri setimizi bölebiliriz.

Tüm ayarlamaları gerçekleştirdikten sonra model oluşturma aşamasına geçebiliriz. Burada “KNeighborsClassifieer” sınıfı import edilmelidir. “n_neighbors” degeri ise algoritmanın çalışmasını anlatırken bahsetmiş olduğumuz en optimum “k” degerini temsil etmektedir. Sonra yazılmış olan fonksiyonlar ise alışık olduğumuz predict komutlarıdır. Nihai olarak iyi huylu ve kötü huylu kanser hücresi tahmini score değeri de gösterilmiştir.

Peki akla en optimum “k” değerini nasıl bulabilirim diye düşünürseniz onun için de yukarıda ki kod blogunu kullanabilirsiniz. En yüksek olabilecek score değerlerine göre matplotlib kullanacarak görselleşitirilmiştir. Resim de de görülecegi gibi düz çizgiye ulaştıgı ve devam ettiği nokta yani (11,12,13,…) gibi “k” değerleri bu veri seti için en optimum k değerini temsil etmektedir.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir