Pipeline
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 45 dari 58.
Tabel nyata biasanya memiliki celah, kata-kata, dan skala yang beragam. Di bab ini, kamu akan membuat satu object yang membersihkan data tersebut dan membuat prediksi, yaitu pipeline:
Mulailah dari yang sederhana: make_pipeline menghubungkan scaler dan model:
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(StandardScaler(), KNeighborsClassifier())
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))Untuk 200 hasil uji pengelasan, baik kuat maupun lemah, ini mencetak 0.86, dibandingkan dengan 0.74 tanpa penskalaan.
fit mempelajari penskalaan dari baris pelatihan, lalu melakukan pelatihan. Setiap baris berikutnya diskalakan dengan cara yang sama secara otomatis.
Tantangan
SedangSebuah perusahaan balon udara memutuskan setiap malam apakah besok menjadi hari terbang. Kode awal melakukan penskalaan secara manual: akurasi pengujiannya baik, tetapi prakiraan tidak pernah diskalakan, sehingga kode itu menjawab yes untuk cuaca apa pun.
- Ganti dengan pipeline, scaler lalu k-NN, yang dilatih menggunakan baris data pelatihan.
- Cetak akurasi pengujiannya dan nilai prakiraan dengannya.
Perusahaan lain, hari 20, 32, 7000, 9:
Test accuracy: 0.880
Flying day: noCoba sendiri
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
# Hari-hari sebelumnya di perusahaan balon udara: hari penerbangan (1) atau bukan (0)
days = pd.read_csv("balloons.csv")
X = days[["wind_kmh", "gusts_kmh", "visibility_m", "passengers"]].to_numpy()
y = days["flying_day"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Prakiraan cuaca besok: angin, hembusan angin, jarak pandang, penumpang yang sudah memesan
day = np.array([[float(input()), float(input()), float(input()), float(input())]])
# Penskalaan secara manual: skornya terlihat baik, tetapi data prakiraan tidak pernah diskalakan
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
model = KNeighborsClassifier()
model.fit(X_train_scaled, y_train)
print(f"Test accuracy: {model.score(X_test_scaled, y_test):.3f}")
if model.predict(day)[0] == 1:
print("Flying day: yes")
else:
print("Flying day: no")
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