Pilih Model
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 52 dari 58.
Beberapa keluarga model dapat digunakan untuk mengklasifikasikan penguin. Mana yang paling cocok? Berikan jalur dan lipatan yang sama kepada masing-masing model, lalu bandingkan, seperti model wine berikut:
Rata-rata tertinggi menang. std yang kecil berarti model menang di setiap fold, bukan hanya pada satu pembagian yang beruntung.
pipe = make_pipeline(prep, model)
scores = cross_val_score(pipe, X_train, y_train, cv=5)Setiap lipatan menyesuaikan jalur lagi pada bagian latihannya sendiri, sehingga setiap skor tetap jujur. Data penguin uji tetap terkunci.
Tantangan
SedangEmpat kandidat ingin mendapatkan pekerjaan itu. Kode awal berisi jalur-jalurmu, list names dan models, serta membaca jumlah lipatan.
- Untuk setiap kandidat, lakukan validasi silang pada pipeline
prepdan model tersebut menggunakan baris data pelatihan. - Cetak nilai mean dan std, dengan 3 angka desimal.
- Cetak pemenangnya: nilai mean tertinggi.
Untuk koloni lain dan 5 lipatan:
k-NN: mean 0.951, std 0.031
Logistic regression: mean 0.964, std 0.012
Random forest: mean 0.958, std 0.027
Decision tree: mean 0.902, std 0.048
Winner: Logistic regressionCoba sendiri
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
# Koloni dari Meet the Penguins, fitur dan labelnya
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
# Dari Prepare the Data: dua jalur
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])
# Para kandidat
names = ["k-NN", "Logistic regression", "Random forest", "Decision tree"]
models = [KNeighborsClassifier(), LogisticRegression(max_iter=1000),
RandomForestClassifier(n_estimators=100, random_state=0), DecisionTreeClassifier(random_state=0)]
folds = int(input())
# 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