Batas Keputusan
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 8 dari 58.
Batas keputusan adalah tempat jawaban model berubah. Untuk melihatnya, tanyakan kepada model di setiap titik pada bagan yang disusun sebagai kisi:
np.meshgrid memasangkan setiap x dengan setiap y. Ratakan pasangan tersebut menjadi baris-baris, prediksi semuanya, lalu kembalikan hasilnya ke bentuk grid:
xx, yy = np.meshgrid(np.linspace(2, 16, 100), np.linspace(0.5, 6.5, 100))
grid = np.column_stack([xx.flatten(), yy.flatten()])
zz = model.predict(grid).reshape(xx.shape)
ax.contourf(xx, yy, zz, levels=[-0.5, 0.5, 1.5], colors=["C0", "C1"], alpha=0.3)contourf mengisi area setiap kode class: levels menempatkan batas di tengah-tengah kode, colors mencocokkan titik-titiknya. Gambar titik-titik setelahnya, di atasnya.
Tantangan
MudahMesin penjual otomatis memilah koin berdasarkan ukuran dan berat. Kode awal melatih k-NN dengan coins.csv (kode kelas 0 sampai 2); draw_coins(ax) menggambarnya.
- Buat grid 100 kali 100
xx,yy: 18 sampai 26 mm secara horizontal, 3 sampai 9 g secara vertikal. - Prediksi setiap titik ke dalam
zz, dengan bentuk yang sama seperti grid. - Warnai peta dengan warna C0 sampai C2, lalu gambar koin dan tampilkan.
Seperti ini:
Koin dari negara lain, jadi wilayahnya berbeda.
Coddy menjelaskan petamu.
Coba sendiri
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
# Satu baris untuk setiap koin yang diukur mesin: diameter (mm), berat (g), nilai dalam sen
coins = pd.read_csv("coins.csv")
X = np.column_stack([coins["diameter_mm"], coins["weight_g"]])
# Kode class: 0 untuk 10c, 1 untuk 20c, 2 untuk 50c
y = coins["value_c"].map({10: 0, 20: 1, 50: 2})
names = ["10c", "20c", "50c"]
model = KNeighborsClassifier(n_neighbors=5)
model.fit(X, y)
# Gambar koin pada ax, satu warna untuk setiap class: C0, C1, C2
def draw_coins(ax):
for code in range(3):
ax.scatter(X[y == code, 0], X[y == code, 1], s=20, label=names[code])
ax.legend()
fig, ax = plt.subplots()
ax.set_title("Coin Sorter Map")
ax.set_xlabel("Diameter (mm)")
ax.set_ylabel("Weight (g)")
# 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