Penskalaan untuk Tetangga
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 9 dari 58.
k-NN mengukur jarak, jadi fitur dengan angka besar mengalahkan fitur lainnya, seperti yang telah diperingatkan di bagian 2. Di sini, jarak ke sungai dalam meter mengalahkan elevasi:
Lakukan penskalaan terlebih dahulu. Fit scaler hanya pada baris data latih, lalu transform kedua set:
scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)
X_test_s = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_s, y_train)
print(model.score(X_test_s, y_test))Ini mencetak 0.925, naik dari 0.6. Baris pengujian tetap tidak terlihat: scaler tidak mempelajari apa pun darinya.
Tantangan
MudahSmart meter menebak alat yang sedang digunakan berdasarkan dayanya (watt) dan lama penggunaannya (menit), dalam meter.csv. Kode awal membaca k dan mencetak akurasi k-NN pada fitur mentah.
- Latih
StandardScalermenggunakan baris data pelatihan, lalu transformasikan kedua set. - Latih model k-NN dengan k yang sama menggunakan baris yang telah diskalakan; cetak akurasinya hingga 3 angka desimal.
- Cetak peningkatannya.
Untuk rumah lain dan k = 5:
Unscaled accuracy: 0.65
Scaled accuracy: 0.875
Scaling gains 0.225Coba sendiri
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
# Satu baris untuk setiap penggunaan alat: daya dalam watt, durasi dalam menit, dan jenis alatnya
meter = pd.read_csv("meter.csv")
X = meter[["watts", "minutes"]]
y = meter["appliance"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
k = int(input())
# k-NN pada fitur mentah
raw_model = KNeighborsClassifier(n_neighbors=k)
raw_model.fit(X_train, y_train)
raw = raw_model.score(X_test, y_test)
print(f"Unscaled accuracy: {round(raw, 3)}")
# 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