Arbre de décision à Sklearn

Arbre de décision à Sklearn
Les arbres de décision sont des modèles hiérarchiques dans l'apprentissage automatique qui peuvent être appliqués aux problèmes de classification et de régression. Ils comparent récursivement les caractéristiques des données d'entrée et prédisent enfin la sortie au nœud foliaire. Nous discuterons des arbres de décision et de leur mise en œuvre dans la bibliothèque Sklearn.

Qu'est-ce qu'un algorithme d'arbre de décision?

Les modèles de classification et de régression sont construits à l'aide d'une technique d'arbre de décision. Il mappe les vecteurs des valeurs aux étiquettes et représente le classificateur comme un arbre de décision. Un tel arbre peut être comparé aux déclarations if-then-else où la condition est toujours un test simple des valeurs dans le vecteur. Et les branches alors et else sont soit des déclarations si-puissant ou fournissent une étiquette de catégorisation. Un arbre de décision apprend des données, trouve les fonctionnalités les plus appropriées pour différencier la sortie et vérifie récursivement les données d'entrée données pour prédire l'étiquette. Un arbre de décision peut ressembler à ceci, par exemple, si le vecteur d'entrée est (a, b, c):

Si un> 10
Alors si b < 20
Puis retournez "1"
Sinon si un < 15
Puis retournez "0"
Sinon retourner "1"
Sinon si c 5
Puis retournez "1"
Else return "0"
Sinon retourner "1"

Notez que les autres arbres de décision ont cette caractéristique en plus de celle-ci. Par conséquent, le problème n'est pas seulement de localiser un tel arbre de décision mais aussi d'identifier le plus approprié. Le fait que l'entrée soit un échantillon d'une collection considérable du monde réel et que l'arbre de décision est conçu pour identifier les vecteurs dans cet ensemble plus étendu détermine avec précision ce que signifie «approprié» dans ce cas. Par conséquent, la définition de «approprié» dépend (1) les propriétés de cet ensemble plus large (par exemple, la probabilité pour chaque vecteur) et (2) l'impact financier de la classification erronée dans chaque cas spécifique.

Terminologies liées à l'arbre de décision

Noeud principal: Le nœud racine de l'arbre de décision est où tout commence. L'ensemble de données est représenté, qui est ensuite divisé en deux ensembles homogènes ou plus.

Noeud feuille: Les nœuds de feuilles sont les derniers nœuds de sortie de l'arbre. Après quoi, l'arbre ne peut pas être davantage divisé.

Scission: La division du nœud de décision / nœud racine en sous-nodes conformément aux conditions spécifiées est connue sous le nom de division.

Bifurquer: Une branche ou un sous-arbre est un arbre créé à partir d'un nœud d'un arbre parent.

Taille: L'élagage est la procédure de suppression des branches indésirables de l'arbre.

Nœuds parents et enfants: Le nœud racine de l'arbre est appelé le nœud parent, tandis que les nœuds qui en proviennent sont appelés les nœuds enfants.

Mettre en œuvre des arbres de décision à Sklearn

Importation des bibliothèques:

de Sklearn.Les ensembles de données importent make_classification
de Sklearn.Tree Import DecisionTreeClassifier
de Sklearn.Model_Selection Import Cross_Val_score

Création de l'ensemble de données:

X, y = make_classification (random_state = 42)
Imprimer («Données de train est», x)
Imprimer («Données de test est», y)

Sortir:

Les données de train sont [[-2.02514259 0.0291022 -0.47494531… -0.33450124 0.86575519
-1.20029641]
[ 1.61371127 0.65992405 -0.15005559… 1.37570681 0.70117274
-0.2975635]
[0.16645221 0.95057302 1.42050425… 1.18901653 -0.55547712
-0.63738713]

[-0.03955515 -1.60499282 0.22213377… -0.30917212 -0.46227529
-0.43449623]
[ 1.08589557 1.2031659 -0.6095122… -0.3052247 -1.31183623
-1.06511366]
[-0.00607091 1.30857636 -0.17495976… 0.99204235 0.32169781
-0.66809045]]
Les données de test sont [0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0
0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0
1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0]

Création du modèle:

modèle = DecisionTreEClassifier (random_state = 0)
cross_val_score (modèle, x, y, cv = 10)

Sortir:

Array ([0.9, 1. , 0.8, 1. , 1. , 0.9, 0.9, 1. , 0.9, 1. ])

Conclusion

Nous avons discuté des modèles d'arbres de décision dans Sklearn qui créent une structure en forme d'arbre pour classer ou prédire les étiquettes de sortie. Ils divisent les nœuds pour réduire la profondeur de l'arbre. Nous avons également vu les différents termes liés aux arbres de décision comme le nœud feuille, les nœuds parents, l'élagage, etc. Ensuite, nous avons par la suite discuté de la mise en œuvre de Sklearn.