Învățarea Arborelui de Clasificare

Machine Learning cu modele bazate pe arbori în Python

Elie Kawerk

Data Scientist

Elementele de Bază ale unui Arbore de Decizie

  • Arborele de decizie: structură de date constând dintr-o ierarhie de noduri.

  • Nod: întrebare sau predicție.

Machine Learning cu modele bazate pe arbori în Python

Elementele de Bază ale unui Arbore de Decizie

Trei tipuri de noduri:

  • Rădăcină: niciun nod părinte, întrebare care generează doi noduri copil.

  • Nod intern: un nod părinte, întrebare care generează doi noduri copil.

  • Frunză: un nod părinte, niciun nod copil --> predicție.

Machine Learning cu modele bazate pe arbori în Python

Predicție

Arbore de decizie etichetat

Machine Learning cu modele bazate pe arbori în Python

Câștigul de Informație (IG)

Diagramă IG

Machine Learning cu modele bazate pe arbori în Python

Câștigul de Informație (IG)

Formula IG

Criterii pentru măsurarea impurității unui nod $I (node)$:

  • indicele gini,
  • entropia. ...
Machine Learning cu modele bazate pe arbori în Python

Învățarea Arborelui de Clasificare

  • Nodurile cresc recursiv.

  • La fiecare nod, datele se împart pe baza:

    • featurii $f$ și punctului de divizare $sp$ pentru a maximiza $IG(\text{node})$.
  • Dacă $IG (\text{node})$= 0, nodul devine frunză.

    ...

Machine Learning cu modele bazate pe arbori în Python
# Import DecisionTreeClassifier
from sklearn.tree import DecisionTreeClassifier
# Import train_test_split
from sklearn.model_selection import train_test_split
# Import accuracy_score
from sklearn.metrics import accuracy_score
# Split dataset into 80% train, 20% test
X_train, X_test, y_train, y_test= train_test_split(X, y, 
                                                   test_size=0.2, 
                                                   stratify=y,
                                                   random_state=1)
# Instantiate dt, set 'criterion' to 'gini'
dt = DecisionTreeClassifier(criterion='gini', random_state=1)
Machine Learning cu modele bazate pe arbori în Python

Criteriul de Informație în scikit-learn

# Fit dt to the training set
dt.fit(X_train,y_train)

# Predict test-set labels
y_pred= dt.predict(X_test)

# Evaluate test-set accuracy
accuracy_score(y_test, y_pred)
0.92105263157894735
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...