Menu
CoddyTech

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:

Akurasi lima lipatan untuk setiap kandidat pada data wine ditampilkan sebagai titik, dengan batang hitam pada setiap nilai rata-rata: regresi logistik tertinggi dan stabil pada 0.970, k-NN pada 0.940, pohon terendah pada 0.896 dengan satu lipatan turun ke 0.78

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.

challenge icon

Tantangan

Sedang

Empat kandidat ingin mendapatkan pekerjaan itu. Kode awal berisi jalur-jalurmu, list names dan models, serta membaca jumlah lipatan.

  1. Untuk setiap kandidat, lakukan validasi silang pada pipeline prep dan model tersebut menggunakan baris data pelatihan.
  2. Cetak nilai mean dan std, dengan 3 angka desimal.
  3. 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 regression

Coba 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
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