Le principe et la méthode de mise en œuvre de l'algorithme d'arbre de décision en Python

PHPz
Libérer: 2024-01-22 19:24:11
avant
489 Les gens l'ont consulté

决策树算法原理 Python实现决策树算法

L'algorithme d'arbre de décision appartient à la catégorie des algorithmes d'apprentissage supervisé, adapté aux variables de sortie continues et catégorielles, et est généralement utilisé pour résoudre des problèmes de classification et de régression.

Un arbre de décision est une structure arborescente similaire à un organigramme, dans laquelle chaque nœud interne représente un test d'un attribut, chaque branche représente le résultat du test et chaque nœud correspond à une étiquette de classe.

Idée d'algorithme d'arbre de décision

Commencez par traiter l'ensemble de l'entraînement comme la racine.

Pour le gain d'information, on suppose que les attributs sont catégoriques, et pour l'indice de Gini, on suppose que les attributs sont continus.

Les enregistrements sont distribués de manière récursive en fonction des valeurs d'attribut.

Utilisez des méthodes statistiques pour trier les attributs vers les nœuds racines.

Trouvez le meilleur attribut et placez-le sur le nœud racine de l'arbre.

Maintenant, divisez l'ensemble d'entraînement de l'ensemble de données en sous-ensembles. Lorsque vous créez des sous-ensembles, assurez-vous que chaque sous-ensemble de l'ensemble de données d'entraînement doit avoir les mêmes valeurs d'attribut.

Trouvez les nœuds feuilles dans toutes les branches en répétant 1 et 2 sur chaque sous-ensemble.

la mise en œuvre de l'algorithme d'arbre de décision en Python

nécessite deux phases de construction et d'exploitation :

phase de construction et ensemble de données de prétraitement. Divisez l'ensemble de données de la formation et des tests à l'aide du package Python sklearn. Entraînez le classificateur.

En phase d'exploitation, faites des prédictions. Précision du calcul.

Import de données, afin d'importer et de manipuler des données, nous utilisons le package pandas fourni en python.

Ici, nous utilisons l'URL pour obtenir l'ensemble de données directement depuis le site UCI sans télécharger l'ensemble de données. Lorsque vous essayez d'exécuter ce code sur votre système, assurez-vous que le système doit disposer d'une connexion Internet active.

Étant donné que l'ensemble de données est séparé par ",", nous devons transmettre la valeur du paramètre sep sous la forme.

Une autre chose à noter est que l'ensemble de données ne contient pas d'en-têtes, nous transmettons donc la valeur du paramètre Header comme aucun. Si nous ne transmettons pas le paramètre header, alors il considérera la première ligne de l'ensemble de données comme en-tête.

Découpage des données, avant d'entraîner le modèle, nous devons diviser l'ensemble de données en ensembles de données d'entraînement et de test.

Pour diviser l'ensemble de données pour la formation et les tests, nous avons utilisé le module sklearn train_test_split

Tout d'abord, nous devons séparer la variable cible des attributs de l'ensemble de données.

X=balance_data.values[:,1:5]
Y=balance_data.values[:,0]
Copier après la connexion

Ci-dessus se trouvent les lignes de code qui séparent l'ensemble de données. La variable X contient les attributs, tandis que la variable Y contient la variable cible de l'ensemble de données.

L'étape suivante consiste à diviser l'ensemble de données à des fins de formation et de test.

X_train,X_test,y_train,y_test=train_test_split(
X,Y,test_size=0.3,random_state=100)
Copier après la connexion

La ligne précédente divise l'ensemble de données pour la formation et les tests. Puisque nous divisons l'ensemble de données dans un rapport de 70:30 entre la formation et les tests, nous transmettons la valeur du paramètre test_size à 0,3. La variable

random_state est l'état du générateur de nombres pseudo-aléatoires utilisé pour l'échantillonnage aléatoire.

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!

Étiquettes associées:
source:163.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!