Menu
CoddyTech

k-NN Nasıl Karar Verir

Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 6 / 58.

Bu bölüm k-NN'yi yakından inceliyor. Sonunda, hafif ve acı biberler için bu örnekteki gibi, her tür veri için haritasını çizeceksin:

Gölgeli bir haritada uzunluk ve et kalınlığına göre 80 biber: solda modelin acı dediği turuncu bir bölge, sağda az acılı dediği mavi bir bölge

Yeni bir acı biberi etiketlemek için k-en yakın komşu, ona en yakın k eğitim acı biberini bulur ve onlar oy verir:

Acı biberlerin yakından görünümü; yeni olan siyah bir yıldızla gösterilmiş. Gri çizgiler onu en yakın 5 acı bibere bağlıyor: 3'ü acı, 2'si tatlı, bu yüzden acı olan kazanıyor

En yakın, 2. bölümde karşılaştığın en küçük mesafe demektir. k değerini seçersin:

model = KNeighborsClassifier(n_neighbors=5)

Aksi belirtilmediği sürece n_neighbors k değeri 5'tir. İki sınıf olduğunda, tek bir k değeri asla beraberliğe yol açamaz.

challenge icon

Görev

Kolay

Bir astronomi kulübü, stars.csv dosyasındaki yıldızları sıcaklık ve parlaklıklarına göre cüceler ve devler olarak sınıflandırıyor. Başlangıç kodu yeni bir yıldız ve k değerini okuyor.

  1. En yakın k yıldızı elle bul: bir distance sütunu ekle, ardından sırala.
  2. Kaçının dev olduğunu, ardından oylamanın kazananını yazdır.
  3. Tüm yıldızlar üzerinde eğitilmiş, k değeri aynı olan bir k-NN modeliyle kontrol et.

Başka bir kulübün yıldızı ve k = 5 için:

Giants among the nearest 5: 4
By hand: giant
Model: giant

Kendin dene

import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier

# Her yıldız için bir satır: sıcaklık bin kelvin cinsinden, kadir (daha küçük değer daha parlaktır), cüce veya dev
stars = pd.read_csv("stars.csv")
X = stars[["temp_kK", "magnitude"]]
y = stars["type"]

# Yeni yıldız ve k
temp = float(input())
mag = float(input())
k = int(input())
new_star = pd.DataFrame({"temp_kK": [temp], "magnitude": [mag]})

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimli Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi