Maison  >  Article  >  développement back-end  >  Comment utiliser les arbres de décision pour la classification en Python ?

Comment utiliser les arbres de décision pour la classification en Python ?

PHPz
PHPzoriginal
2023-06-05 18:21:031944parcourir

Dans le domaine de l'apprentissage automatique, la classification est une tâche importante. L'arbre de décision est un algorithme de classification couramment utilisé qui peut diviser l'ensemble de données en sélectionnant à plusieurs reprises les meilleures caractéristiques, ce qui rend les caractéristiques de chaque sous-ensemble relativement simples et les catégories relativement larges. Cet article vous montrera comment utiliser les arbres de décision pour la classification en Python.

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

L'arbre de décision est un modèle de classification arborescente. Le modèle d'arbre de décision a une structure arborescente et, dans les problèmes de classification, il représente le processus de classification. Il part du nœud racine, teste un attribut et divise l'ensemble de formation en plusieurs sous-ensembles en fonction de l'attribut. Pour chaque sous-ensemble, continuez à diviser de la même manière jusqu'à ce que toutes les catégories soient séparées.

2. Processus de classification de l'arbre de décision

Le processus de classification de l'arbre de décision est le suivant :

  1. Sélectionnez les meilleures fonctionnalités de segmentation.
  2. Divisez l'ensemble de données en deux sous-ensembles pour correspondre aux résultats de la sélection.
  3. Traitez les sous-ensembles de manière récursive et répétez les étapes 1 et 2.
  4. Répétez les étapes 1 à 3 jusqu'à ce que toutes les données soient classées.

La sélection des meilleures fonctionnalités de segmentation nécessite de mesurer l'effet de segmentation. Habituellement, nous utilisons l'entropie de l'information pour mesurer l'efficacité de la segmentation. L'entropie de l'information est un concept statistique qui représente le degré de confusion des informations. Si un ensemble de données ne contient que des données de la même catégorie, l'ensemble de données est le plus ordonné et son entropie d'information est la plus petite. Au contraire, plus un ensemble de données contient de données de différentes catégories, plus le degré de confusion de l’ensemble de données et plus l’entropie de l’information est grande.

Lors de la sélection des meilleures fonctionnalités de segmentation, nous calculons le gain d'informations de chaque fonctionnalité. Le gain d'informations fait référence à la réduction de l'entropie de l'information d'un nœud parent à un nœud enfant dans une condition de branche donnée. Plus le gain d'informations d'une fonctionnalité est important, plus cette fonctionnalité est utile pour distinguer les différentes catégories de données dans l'ensemble de données.

3. Comment utiliser les arbres de décision pour la classification en Python ?

Il existe de nombreuses bibliothèques d'apprentissage automatique en Python qui peuvent être utilisées pour implémenter des classificateurs d'arbre de décision. Cet article explique comment utiliser la bibliothèque Scikit-learn pour implémenter des classificateurs d'arbre de décision.

La bibliothèque Scikit-learn est l'une des bibliothèques d'apprentissage automatique les plus couramment utilisées en Python. Elle fournit une multitude d'algorithmes de classification, de clustering, de régression, de réduction de dimensionnalité et autres. La bibliothèque Scikit-learn fournit une classe appelée DecisionTreeClassifier qui implémente un classificateur d'arbre de décision.

Nous pouvons implémenter un classificateur d'arbre de décision basé sur la bibliothèque Scikit-learn en utilisant le code suivant :

from sklearn.tree import DecisionTreeClassifier

# 将特征和分类目标分别存储到X和y中
X = [[0, 0], [1, 1]]
y = [0, 1]

# 创建决策树并打印结果
clf = DecisionTreeClassifier()
clf = clf.fit(X, y)
print(clf.predict([[2., 2.]]))

Ici, nous transmettons les caractéristiques et la cible de classification en entrée, créons un objet DecisionTreeClassifier et l'entraînons. Nous pouvons ensuite utiliser ce modèle pour introduire de nouvelles données dans un classificateur afin de prédire son étiquette de classe.

En plus d'utiliser la syntaxe ci-dessus, vous pouvez également utiliser le code suivant pour compléter la classification des arbres de décision :

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
from IPython.display import Image 
from  pydotplus import graph_from_dot_data

iris = load_iris()
X = iris.data[:, 2:] # 我们只选取花瓣的长度和宽度作为特征
y = iris.target

# 创建决策树并训练
tree_clf = DecisionTreeClassifier(max_depth=2)
tree_clf.fit(X, y)

# 可视化决策树
dot_data = export_graphviz(
    tree_clf,
    out_file=None,
    feature_names=iris.feature_names[2:],
    class_names=iris.target_names,
    rounded=True,
    filled=True
)

graph = graph_from_dot_data(dot_data)
Image(graph.create_png())

Dans le code ci-dessus, nous utilisons l'ensemble de données de fleur d'iris comme exemple de données et sélectionnons uniquement deux entités pour la classification. Nous avons ensuite créé un arbre de décision et l'avons formé.

Enfin, nous visualisons l'arbre de décision à l'aide de la fonction export_graphviz, qui génère l'arbre de décision sous forme de fichier .graph. Ensuite, nous dessinons l'arbre de décision au format de fichier .png à l'aide de la fonction graph_from_dot_data. En faisant cela, nous pouvons mieux comprendre l’exécution du classificateur d’arbre de décision et la construction de l’arbre de décision.

IV. Conclusion

Dans cet article, nous avons présenté l'algorithme d'arbre de décision et montré comment implémenter un classificateur d'arbre de décision à l'aide de la bibliothèque Scikit-learn. Les arbres de décision sont un algorithme d'apprentissage automatique couramment utilisé qui traite automatiquement les données d'entrée et la sélection de fonctionnalités pour fournir automatiquement des décisions. Cet algorithme est souvent utilisé pour résoudre des tâches telles que la classification, la prédiction et la détection d'anomalies. Grâce aux exemples et au code de cet article, vous pourrez mieux comprendre les concepts de base et les méthodes de mise en œuvre de l'algorithme de l'arbre de décision.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn