Python में Tree-Based Models के साथ Machine Learning
Elie Kawerk
Data Scientist
Boosting: कई weak learners को जोड़कर एक strong learner बनाना।
Weak learner: मॉडल जो रैंडम अनुमान से थोड़ा बेहतर हो।
Weak learner का उदाहरण: Decision stump (CART जिसकी अधिकतम depth 1 है).
प्रेडिक्टर्स का एंसेंबल क्रम में ट्रेन करें।
हर प्रेडिक्टर अपने पूर्ववर्ती की गलतियाँ सुधारने की कोशिश करता है।
लोकप्रिय boosting मेथड्स:
AdaBoost,
Gradient Boosting.
Adaptive Boosting का संक्षेप।
हर प्रेडिक्टर, पूर्ववर्ती द्वारा गलत भविष्यवाणी किए गए इंस्टेंस पर अधिक ध्यान देता है।
यह training इंस्टेंस के वेट बदलकर किया जाता है।
हर प्रेडिक्टर को एक गुणांक $\alpha$ दिया जाता है।
$\alpha$ प्रेडिक्टर की training error पर निर्भर करता है।

Learning rate: $0 < \eta \leq 1$

Classification:
AdaBoostClassifier.Regression:
AdaBoostRegressor.# Import models and utility functions
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split
# Set seed for reproducibility
SEED = 1
# Split data into 70% train and 30% test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
stratify=y,
random_state=SEED)
# Instantiate a classification-tree 'dt' dt = DecisionTreeClassifier(max_depth=1, random_state=SEED)# Instantiate an AdaBoost classifier 'adab_clf' adb_clf = AdaBoostClassifier(base_estimator=dt, n_estimators=100)# Fit 'adb_clf' to the training set adb_clf.fit(X_train, y_train) # Predict the test set probabilities of positive class y_pred_proba = adb_clf.predict_proba(X_test)[:,1]# Evaluate test-set roc_auc_score adb_clf_roc_auc_score = roc_auc_score(y_test, y_pred_proba)
# Print adb_clf_roc_auc_score
print('ROC AUC score: {:.2f}'.format(adb_clf_roc_auc_score))
ROC AUC score: 0.99
Python में Tree-Based Models के साथ Machine Learning