Menu
CoddyTech

Digit Tulisan Tangan

Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 57 dari 58.

Mesin penyortir di kantor pos membaca angka kode pos tulisan tangan dari hasil pemindaian berukuran 8 kali 8 yang kamu temui di Digits at a Glance, load_digits:

Dua puluh angka tulisan tangan dalam dua baris, 0 sampai 9 dari dua penulis yang berbeda, digambar sebagai hasil pemindaian kecil berwarna abu-abu dengan bentuk kotak-kotak; beberapa tampak sangat mirip dengan angka lain

Dua kandidat menginginkan pekerjaan itu: k-NN, dengan nilai k yang disarankan oleh seorang insinyur, dan random forest dengan 100 pohon.

Kali ini, kesalahan berpengaruh. Kantor membutuhkan pemenang yang lebih adil, skornya pada hasil pemindaian yang belum pernah dilihat, dan kekeliruan yang paling sering terjadi, jadi angka-angka itu akan diserahkan kepada seseorang.

challenge icon

Tantangan

Sulit

Program membaca k dari engineer; kode awal menyiapkan grafik berjudul.

  1. Pisahkan seperempat data untuk pengujian secara terstratifikasi, dengan random_state=0.
  2. Lakukan validasi silang k-NN dengan k tersebut dan forest dengan 100 pohon (random_state=0), menggunakan 5 lipatan pada baris data pelatihan. Cetak nilai rata-rata masing-masing (3 angka desimal) dan pemenangnya.
  3. Latih model pemenang dan cetak akurasi pengujiannya.
  4. Cetak kesalahan terbesar dalam matriks kebingungan pengujian, lalu gambar matriks pada ax dan tampilkan.

Untuk mesin lain dan 3:

k-NN: CV accuracy 0.979
Random forest: CV accuracy 0.968
Winner: k-NN
Test accuracy: 0.976
Most confused: 7 read as 2 (3 times)

Lalu Coddy menampilkan matriksmu.

Coba sendiri

import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

digits = load_digits()
X = digits.data
y = digits.target
k = int(input())

fig, ax = plt.subplots()
ax.set_title("Test Digits")

# 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