KNN'e Giriş
Coddy'nin Makine Öğrenmesine Giriş kursunda ders 6 / 19.
K-En Yakın Komşu (KNN), hem sınıflandırma hem de regresyon problemleri için kullanılan denetimli bir öğrenme algoritmasıdır. Basit ama güçlüdür ve genellikle daha karmaşık modeller için bir temel (baseline) olarak kullanılır.

KNN algoritması, bir noktaya en yakın komşuları belirlemek için mesafe metriklerini kullanarak özellik benzerliğini bulur. Örneğin, şarapları benzer tatlara sahip olanları bir araya getirerek, en yakın olanlarla karşılaştırıp sıralayabilir. Bu, en yaygın özelliklerine dayanarak hangi şarapların birbirine benzediğini bulmanıza yardımcı olan bir rehbere sahip olmak gibidir. 🍷
KNN'nin arkasındaki fikir oldukça basittir:
- Mesafe Hesaplama: Verilen bir test noktası için algoritma, o nokta ile eğitim veri setindeki diğer her nokta arasındaki mesafeyi hesaplar. Mesafe, Öklid veya Manhattan mesafesi gibi çeşitli yollarla hesaplanabilir.
- En Yakın Komşuları Bulma: Algoritma daha sonra eğitim verilerinde test noktasına en yakın olan
knoktayı seçer.kkullanıcı tarafından tanımlanan bir sabittir ve herhangi bir tam sayı olabilir. - Tahmin Yapma: Sınıflandırma için algoritma,
ken yakın komşu arasındaki en yaygın sınıf etiketini test noktasına atar. Regresyon için iseken yakın komşunun ortalamasını atar.
KNN tembel bir öğrenme (lazy learning) algoritmasıdır, yani aslında bir model öğrenmez. Bunun yerine, eğitim örneklerini ezberler ve bunları tahmin için kullanır (bir sonraki ders eğitim aşamasını kapsayacaktır). Bu, KNN'yi test aşamasında hesaplama açısından maliyetli hale getirir.
Basitliğine rağmen, KNN şaşırtıcı derecede iyi performans gösterebilir. Ancak, k seçimine ve mesafe metriğinin türüne karşı hassastır ve boyutluluk laneti (curse of dimensionality) nedeniyle yüksek boyutlu verilerle iyi performans göstermez.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayBu görevde, farklı mesafe hesaplamalarını öğreneceğiz.
X, y ve distance_type olmak üzere üç değişken alan distances_option_calculator adında bir fonksiyon oluşturun. Fonksiyon, distance_type parametresine göre X ve y arasındaki mesafeyi döndürecektir.
İşte yaygın mesafe hesaplamalarının bir listesi:
Euclidian mesafesi (En yaygın olanı) İki nokta arasındaki kuş uçuşu mesafedir. Noktaların her bir karşılık gelen koordinatı arasındaki farkların kareleri toplamının kareköküdür:

Manhattan mesafesi, Taxicab veya City Block mesafesi olarak da bilinir. Tüm boyutlar boyunca noktalar arasındaki mutlak farkların toplamıdır. Sırasıyla ( (p_1, p_2, …, p_n) ) ve ( (q_1, q_2, …, q_n) ) koordinatlarına sahip iki ( P ) ve ( Q ) noktası için:


Hamming mesafesi: Karşılık gelen sembollerin farklı olduğu pozisyonların sayısıdır. Genellikle kategorik veriler için kullanılır.
Örneğin, iki ikili (binary) dize alalım:
String 1: 1101
String 2: 1001Bunları pozisyon pozisyon karşılaştırdığımızda, ikinci pozisyonun farklı bitlere sahip olduğunu görürüz (Dize 1'de 1 ve Dize 2'de 0). Diğer tüm pozisyonlar aynıdır. Bu nedenle, bu iki dize arasındaki Hamming mesafesi 1'dir.
distance_type şu öğeleri içerebilir: hamming, manhattan, euclidian.
Kendin dene
def distances_option_calculator(X, y, distance_type):
# Kodu buraya yazın
if distance_type == "euclidian":
pass
elif distance_type == "manhattan":
pass
elif distance_type == "hamming":
passMakine Öğrenmesine Giriş bölümündeki tüm dersler
Kendi başına pratik yap: Online Python derleyicisi