[PYTHON] Créer un arbre déterminé avec scikit-learn

Je faisais un arbre de décision en utilisant Weka, mais il était difficile de créer des arffes de données. J'ai créé un arbre de décision avec la bibliothèque d'apprentissage automatique Python scikit-learn. Je voulais l'utiliser L'installation de scikit-learn sera poliment enseignée sur d'autres sites Web

L'objet arbre de décision lui-même est assez facile à faire. Installez Graphviz avec brew (Mac) Parce que la bibliothèque appelée pyparsing a été mise à jour Quand tu veux dessiner

sudo pip install -U pydot pyparsing==1.5.7

Veuillez rétrograder Je ne comprends pas Windows (voix basse)

tree_ex.py


#-*-coding:utf-8 -*-

#La valeur nulle ne peut pas être utilisée → Que dois-je faire?
# yes,non est 1,-1
#Les caractères ne peuvent pas être utilisés
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot

if __name__ == '__main__':

    X = [
        [0,1],
        [0,-1],
        [1,1]
        ]
    Y = [1,2,3] #Correspond dans l'ordre du haut
    clf = tree.DecisionTreeClassifier()
    clf = clf.fit(X,Y) #Ceci complète l'objet d'arbre de décision

    #La magie du dessin
    dot_data = StringIO()
    tree.export_graphviz(clf,out_file = dot_data)
    graph = pydot.graph_from_dot_data(dot_data.getvalue())
    graph.write_pdf("tree_ex.pdf")
    
    #pre = clf.predict([0,1])
    #print pre #Le résultat est 1

X est les données et Y est l'étiquette de chaque donnée. Amarrage de masse X et Y avec la fonction fit (peut-être)

Lorsque la fonction fit est appliquée, clf est un objet d'arbre de décision et un classificateur. Vous pouvez classer à quelle classe les nouvelles données appartiennent avec la fonction de prédiction commentée.

Après cela, ce devrait être une magie d'appeler pydot et de le dessiner.

Le résultat du dessin ci-dessus ressemble à ceci

tree_ex.png

L'arbre de décision de Weka est difficile à voir, donc quand j'ai essayé de créer un arbre de décision avec Python, c'est devenu comme ça. Créer un arbre de décision lui-même est très simple. C'est facile à voir

・ Aucune condition de branchement (ne peut être émise en raison d'un manque de capacité)

・ Les questionnaires avec 1, 2 ou 3 types de réponses dans un élément ne peuvent pas être triés (oui et non peuvent être réalisés avec [1, -1])

・ Valeur nulle ・ N'accepte pas les chaînes de caractères

Pour l'instant, je pense que Weka est plus facile à utiliser. Dois-je ajouter une option d'argument? .. ..

Recommended Posts

Créer un arbre déterminé avec scikit-learn
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Qu'est-ce qu'un arbre de décision?
Créer un serveur Flask avec Docker
Créer un fichier power simple avec Python
Créer un écran de connexion dans Django all auth
Implémentez un estimateur auto-créé minimal avec scikit-learn
Visualisez l'arbre de décision scikit-learn avec Treemap de Plotly
2.Faites un arbre de décision à partir de 0 avec Python et comprenez-le (2. Bases du programme Python)
Isomap avec Scikit-learn
Arbre de décision (classification)
DBSCAN avec scikit-learn
Clustering avec scikit-learn (1)
Clustering avec scikit-learn (2)
PCA avec Scikit-learn
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (4. Structure des données)
kmeans ++ avec scikit-learn
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (5. Entropie des informations)
[Piyopiyokai # 1] Jouons avec Lambda: création d'une fonction Lambda
Procédure de création d'un LineBot réalisé avec Python
Un mémo lors de la création d'un environnement python avec miniconda
Commandes pour créer un environnement python3 avec virtualenv
Flux de création d'un environnement virtuel avec Anaconda
Essayez de créer un problème FizzBuzz avec un programme shell
Validation croisée avec scikit-learn
Retour sur la création d'un service Web avec Django 1
Format A4 avec python-pptx
SVM multi-classes avec scikit-learn
J'ai fait un jeu d'éclairage de sapin de Noël avec Python
Clustering avec scikit-learn + DBSCAN
La décision de scikit-learn Comment visualiser un modèle en bois
Apprentissage Scikit-Learn avec la chimioinfomatique
Dessiner une structure arborescente avec D3.js dans Jupyter Notebook
Problèmes lors de la création d'un outil de conversion csv-json avec python
Création d'outils de grattage
Retour sur la création d'un service Web avec Django 2
2. Analyse multivariée décrite dans Python 7-1. Arbre de décision (scikit-learn)
Les débutants en apprentissage automatique essaient de créer un arbre de décision
Créer un chargeur de jeu de données
DBSCAN (clustering) avec scikit-learn
Répertoire actuel lors de la création d'un nouveau avec Jupyter
Remarques sur la création d'un environnement virtuel avec Anaconda Navigator
Décorer avec un décorateur
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
Installez scikit.learn avec pip
Calculer tf-idf avec scikit-learn
Créez un arbre de décision à partir de zéro avec Python et comprenez-le (3. Bibliothèque d'analyse de données édition Pandas)
Visualisez les résultats des arbres de décision réalisés avec Python scikit-learn
La première étape de la création d'une application sans serveur avec Zappa
Effectuer (Visualisation> Clustering> Description des fonctionnalités) avec (t-SNE, DBSCAN, Arbre de décision)
Créer une interface graphique aussi facilement que possible avec python [édition tkinter]
Décision Scikit-learn Générer du code Python à partir de règles d'arbre / forêt aléatoire
(Pour les débutants) Essayez de créer une API Web simple avec Django
Apprenez librosa avec un tutoriel 1
Dessinez un graphique avec NetworkX
Réseau de neurones avec Python (scikit-learn)
Essayez de programmer avec un shell!