Menu
CoddyTech

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:

80 cabai di atas kisi yang terdiri dari titik-titik kecil. Setiap titik diwarnai sesuai jawaban model di sana: oranye untuk pedas di sebelah kiri, biru untuk ringan di sebelah kanan, bertemu di sepanjang garis bertingkat

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.

challenge icon

Tantangan

Mudah

Mesin 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.

  1. Buat grid 100 kali 100 xx, yy: 18 sampai 26 mm secara horizontal, 3 sampai 9 g secara vertikal.
  2. Prediksi setiap titik ke dalam zz, dengan bentuk yang sama seperti grid.
  3. Warnai peta dengan warna C0 sampai C2, lalu gambar koin dan tampilkan.

Seperti ini:

Peta pemilah koin: tiga wilayah berwarna lembut, biru untuk 10c di kiri bawah, oranye untuk 5c di tengah, hijau untuk 25c di kanan, masing-masing dengan koin di atasnya dan sebuah legenda

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
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Terawasi

Latihan sendiri: Compiler Python online