Menu
CoddyTech

Bir Model Seçin

Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 52 / 58.

Birkaç model ailesi penguenlerin türünü tahmin edebilir. Hangisi en iyi uyum sağlar? Her birine aynı verileri ve aynı katları verin, ardından şu şarap modellerinde olduğu gibi karşılaştırın:

Şarap verilerinde her aday için beş kat doğruluğu nokta olarak gösterilmiştir; her ortalamada siyah bir çubuk bulunur: lojistik model 0.970 ile en yüksek ve en tutarlı, k-NN 0.940, ağaç modeli ise 0.896 ile en düşük ve bir katı 0.78'e kadar düşüyor

En yüksek ortalama kazanır. Küçük bir standart sapma, şanslı tek bir bölmede değil, her katlamada kazandığını gösterir.

pipe = make_pipeline(prep, model)
scores = cross_val_score(pipe, X_train, y_train, cv=5)

Her kat, kendi eğitim bölümünde şeritleri yeniden uydurur; böylece her puan dürüst kalır. Test penguenleri kilitli kalır.

challenge icon

Görev

Orta

Dört aday işi istiyor. Başlangıç kodu, şeritlerinizi, names ve models listelerini içeriyor ve kat sayısını okuyor.

  1. Her aday için, eğitim satırlarında prep ve o modelden oluşan işlem hattını çapraz doğrulayın.
  2. Ortalama ve standart sapmayı 3 ondalık basamakla yazdırın.
  3. Kazananı, yani ortalaması en yüksek olanı yazdırın.

Başka bir koloni ve 5 kat için:

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

Kendin dene

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

# Penguenlerle Tanışın bölümündeki koloni, özellikleri ve etiketi
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)

# Verileri Hazırlayın bölümünden: iki işlem hattı
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)])

# Adaylar
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())

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimli Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi