k'yi Seçmek
Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 7 / 58.
Biberlere hangi k değeri uygun? Birkaç değer dene ve her modeli iki kez puanla: modelin öğrendiği satırlarda, eğitim doğruluğu; gizli satırlarda ise test doğruluğu.
k = 1 olduğunda her bir biber kendi en yakın komşusudur; bu yüzden model ezberler: kendi satırlarında mükemmeldir, yeni satırlarda ise daha kötü sonuç verir. Çok büyük bir k, grupları belirsizleştirir.
ks = range(1, 120, 6)
train_acc = []
test_acc = []
for k in ks:
model = KNeighborsClassifier(n_neighbors=k)
model.fit(X_train, y_train)
train_acc.append(model.score(X_train, y_train))
test_acc.append(model.score(X_test, y_test))Şimdilik, test doğruluğunun en yüksek olduğu k değerini seçin: 7. bölüm daha adil bir değerlendirici gösteriyor.
Görev
KolayBir futbol kulübü şutları shots.csv dosyasına kaydeder: mesafe, açı ve goal ya da miss. Hangi k en iyi tahmini yapar? Başlangıç kodu verileri böler, ks listesini oluşturur ve grafiği etiketler.
- Her k için bir model eğit ve eğitim ile test doğruluğunu kaydet.
- Aşağıdaki gibi, test doğruluğuna göre en iyi k değerini yazdır.
- Her iki listeyi de
ksdeğerlerine karşı,trainvetestetiketleriyle ve bir açıklama kutusuyla çiz.
Başka bir kulüp için:
Best k: 9 (test accuracy 0.783)Coddy daha sonra grafiğini açıklıyor.
Kendin dene
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# Her şut için bir satır: kaleye uzaklık (m), kale ağzına göre açı (derece), gol veya kaçan şut
shots = pd.read_csv("shots.csv")
X = shots[["distance_m", "angle_deg"]]
y = shots["result"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = range(1, 42, 4) # k = 1, 5, 9, ..., 41
fig, ax = plt.subplots()
ax.set_title("Shots: Accuracy by k")
ax.set_xlabel("k (neighbors)")
ax.set_ylabel("Accuracy")
# Kodunuzu aşağıya yazın
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
1İlk Modeliniz
Örneklerden ÖğrenmeEğitim ve Test KümeleriUydurma ve Tahmin EtmeBir Modeli PuanlamaÖzet: Tohum Sınıflandırıcı4Lojistik Regresyon
Evet-Hayır TahminleriKarar EşiğiKanıt Olarak AğırlıklarBirden Fazla SınıfÖzet: Spam Filtresi2En Yakın Komşular
k-NN Nasıl Karar Verirk'yi SeçmekKarar SınırlarıKomşular İçin ÖlçeklemeÖzet: Şarap Komşuları5Sınıflandırıcıları Değerlendirme
Karmaşıklık MatrisiKesinlik ve DuyarlılıkF1 SkoruDengesiz SınıflarROC EğrileriÖzet: Tarama Testi8Çapraz Doğrulama
K-Katlı DoğrulamaModelleri Adil Bir Şekilde KarşılaştırmaIzgara AramasıÖzet: Kaykay Tamiri11Proje: Penguen Türleri
Penguenlerle TanışınVerileri HazırlayınBir Model SeçinEn İyisini AyarlayınModeli Yayına AlınKendi başına pratik yap: Online Python derleyicisi