कई मॉडलों का मूल्यांकन

scikit-learn के साथ Supervised Learning

George Boorman

Core Curriculum Manager, DataCamp

हर समस्या के लिए अलग मॉडल

कुछ मार्गदर्शक सिद्धांत

  • डेटासेट का आकार
    • कम फीचर = सरल मॉडल, तेज़ ट्रेनिंग
    • कुछ मॉडलों को अच्छा प्रदर्शन करने के लिए बहुत डेटा चाहिए
  • व्याख्येयता
    • कुछ मॉडल समझाना आसान होते हैं, जो स्टेकहोल्डर्स के लिए ज़रूरी हो सकता है
    • Linear regression की व्याख्येयता उच्च है, क्योंकि हम coefficients समझ सकते हैं
  • लचीलापन
    • कम मान्यताओं से सटीकता बढ़ सकती है
    • KNN अधिक लचीला है, किसी linear संबंध को नहीं मानता
scikit-learn के साथ Supervised Learning

सब कुछ metrics में है

  • Regression मॉडल का प्रदर्शन:

    • RMSE
    • R-squared
  • Classification मॉडल का प्रदर्शन:

    • Accuracy
    • Confusion matrix
    • Precision, recall, F1-score
    • ROC AUC
  • कई मॉडल ट्रेन करें और out of the box प्रदर्शन जाँचें

scikit-learn के साथ Supervised Learning

स्केलिंग पर एक नोट

  • स्केलिंग से प्रभावित मॉडल:
    • KNN
    • Linear Regression (साथ में Ridge, Lasso)
    • Logistic Regression
    • Artificial Neural Network

 

  • मॉडलों का मूल्यांकन करने से पहले डेटा को स्केल करना बेहतर है
scikit-learn के साथ Supervised Learning

वर्गीकरण मॉडलों का मूल्यांकन

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 के साथ Supervised Learning

वर्गीकरण मॉडलों का मूल्यांकन

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 के साथ Supervised Learning

परिणामों का विज़ुअलाइज़ेशन

हर मॉडल के लिए accuracy का बॉक्स प्लॉट: Logistic Regression, KNN, और Decision Tree

scikit-learn के साथ Supervised Learning

टेस्ट सेट प्रदर्शन

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))
Logistic Regression Test Set Accuracy: 0.844
KNN Test Set Accuracy: 0.82
Decision Tree Test Set Accuracy: 0.832
scikit-learn के साथ Supervised Learning

अभ्यास करते हैं!

scikit-learn के साथ Supervised Learning

Preparing Video For Download...