Evaluarea Out Of Bag

Machine Learning cu modele bazate pe arbori în Python

Elie Kawerk

Data Scientist

Bagging

  • unele instanțe pot fi eșantionate de mai multe ori pentru un model,

  • alte instanțe pot să nu fie eșantionate deloc.

Machine Learning cu modele bazate pe arbori în Python

Instanțe Out Of Bag (OOB)

  • În medie, pentru fiecare model, 63% din instanțele de antrenament sunt eșantionate.

  • Restul de 37% constituie instanțele OOB.

Machine Learning cu modele bazate pe arbori în Python

Evaluare OOB

evaluare oob

Machine Learning cu modele bazate pe arbori în Python

Evaluare OOB în sklearn (Setul de date Breast Cancer)

# Import models and split utility function
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_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)

Machine Learning cu modele bazate pe arbori în Python
# Instantiate a classification-tree 'dt'
dt = DecisionTreeClassifier(max_depth=4,
                            min_samples_leaf=0.16,
                            random_state=SEED)

# Instantiate a BaggingClassifier 'bc'; set oob_score = True bc = BaggingClassifier(base_estimator=dt, n_estimators=300, oob_score=True, n_jobs=-1)
# Fit 'bc' to the training set bc.fit(X_train, y_train) # Predict the test set labels y_pred = bc.predict(X_test)
Machine Learning cu modele bazate pe arbori în Python
# Evaluate test set accuracy
test_accuracy = accuracy_score(y_test, y_pred)

# Extract the OOB accuracy from 'bc' oob_accuracy = bc.oob_score_ # Print test set accuracy print('Test set accuracy: {:.3f}'.format(test_accuracy))
Test set accuracy: 0.936
# Print OOB accuracy
print('OOB accuracy: {:.3f}'.format(oob_accuracy))
OOB accuracy: 0.925
Machine Learning cu modele bazate pe arbori în Python

Să exersăm!

Machine Learning cu modele bazate pe arbori în Python

Preparing Video For Download...