Memilih k
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 7 dari 58.
Nilai k mana yang cocok untuk cabai? Coba beberapa nilai dan nilai setiap model dua kali: pada baris yang dipelajarinya, akurasi latih, dan pada baris tersembunyi, akurasi uji.
Pada k = 1, setiap cabai menjadi tetangga terdekatnya sendiri, sehingga model menghafal: hasilnya sempurna pada baris-barisnya, tetapi lebih buruk pada baris baru. Nilai k yang sangat besar mengaburkan kelompok-kelompok tersebut.
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))Pilih nilai k saat akurasi pengujian mencapai puncaknya. Untuk saat ini, bab 7 menunjukkan penilai yang lebih adil.
Tantangan
MudahSebuah klub sepak bola mencatat tembakan di shots.csv: jarak, sudut, dan goal atau miss. Nilai k mana yang memprediksi paling baik? Kode awal membagi data, mencantumkan ks, dan memberi label pada grafik.
- Untuk setiap k, latih model dan simpan akurasi pelatihan dan pengujiannya.
- Cetak k terbaik berdasarkan akurasi pengujian, seperti di bawah ini.
- Gambarkan kedua daftar terhadap
ks, dengan labeltraindantest, serta legenda.
Untuk klub lain:
Best k: 9 (test accuracy 0.783)Coddy kemudian menjelaskan grafikmu.
Coba sendiri
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
# Satu baris untuk setiap tembakan: jarak ke gawang (m), sudut terhadap mulut gawang (derajat), gol atau meleset
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")
# Tulis kodemu di bawah ini
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Terawasi
1Model Pertamamu
Belajar dari ContohData Latih dan Data UjiMelatih dan MemprediksiMenilai ModelRangkuman: Penyortir Benih4Regresi Logistik
Prediksi Ya atau TidakAmbang KeputusanBobot sebagai BuktiBeberapa KelasRangkuman: Filter Spam2Tetangga Terdekat
Cara k-NN MenentukanMemilih kBatas KeputusanPenskalaan untuk TetanggaRingkasan: Tetangga Wine5Mengukur Model Klasifikasi
Matriks KonfusiPresisi dan RecallSkor F1Kelas Tidak SeimbangKurva ROCRangkuman: Tes SkriningLatihan sendiri: Compiler Python online