Birden çok modeli değerlendirme

scikit-learn ile Supervised Learning

George Boorman

Core Curriculum Manager, DataCamp

Farklı sorunlar için farklı modeller

Bazı yol gösterici ilkeler

  • Veri setinin boyutu
    • Daha az özellik = daha basit model, daha hızlı eğitim
    • Bazı modeller iyi performans için çok veri ister
  • Yorumlanabilirlik
    • Bazı modelleri açıklamak daha kolaydır; paydaşlar için önemlidir
    • Doğrusal regresyon, katsayılar anlaşılabildiği için yüksek yorumlanabilirliğe sahiptir
  • Esneklik
    • Veriye daha az varsayım yaparak doğruluğu artırabilir
    • KNN daha esnek bir modeldir; doğrusal ilişki varsaymaz
scikit-learn ile Supervised Learning

Hepsi metriklerde gizli

  • Regresyon modeli performansı:

    • RMSE
    • R-kare
  • Sınıflandırma modeli performansı:

    • Doğruluk
    • Karmaşıklık matrisi
    • Kesinlik, duyarlılık, F1 skoru
    • ROC AUC
  • Birden çok modeli eğitin ve kutudan çıktığı gibi değerlendirin

scikit-learn ile Supervised Learning

Ölçekleme hakkında not

  • Ölçeklemeden etkilenen modeller:
    • KNN
    • Doğrusal Regresyon (Ridge, Lasso dahil)
    • Lojistik Regresyon
    • Yapay Sinir Ağı

 

  • Modelleri değerlendirmeden önce veriyi ölçeklemek en iyisidir
scikit-learn ile Supervised Learning

Sınıflandırma modellerini değerlendirme

import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import cross_val_score, KFold, train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier

X = music.drop("genre", axis=1).values y = music["genre"].values X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
scikit-learn ile Supervised Learning

Sınıflandırma modellerini değerlendirme

models = {"Logistic Regression": LogisticRegression(), "KNN": KNeighborsClassifier(), 
         "Decision Tree": DecisionTreeClassifier()}
results = []

for model in models.values():
kf = KFold(n_splits=6, random_state=42, shuffle=True)
cv_results = cross_val_score(model, X_train_scaled, y_train, cv=kf)
results.append(cv_results)
plt.boxplot(results, labels=models.keys()) plt.show()
scikit-learn ile Supervised Learning

Sonuçları görselleştirme

Her model için doğruluk kutu grafiği: Lojistik Regresyon, KNN ve Karar Ağacı

scikit-learn ile Supervised Learning

Test seti performansı

for name, model in models.items():

model.fit(X_train_scaled, y_train)
test_score = model.score(X_test_scaled, y_test)
print("{} Test Set Accuracy: {}".format(name, test_score))
Lojistik Regresyon Test Seti Doğruluğu: 0.844
KNN Test Seti Doğruluğu: 0.82
Karar Ağacı Test Seti Doğruluğu: 0.832
scikit-learn ile Supervised Learning

Hadi pratik yapalım!

scikit-learn ile Supervised Learning

Preparing Video For Download...