[PYTHON] Apprentissage automatique ③ Résumé de l'arbre de décision

Résumé de l'arbre de décision

Qu'est-ce que l'arbre de décision?

L'arbre de décision est une méthode pour définir les conditions les unes après les autres pour les données et les classer en fonction de chaque condition. Dans la figure ci-dessous, j'essaie de décider de faire de la planche à voile ou non. Donc, d'abord, nous catégorisons par la force du vent, puis nous catégorisons selon qu'il fait ensoleillé ou non.

Ce modèle à droite s'appelle l'arbre de décision. Dans l'arbre de décision, comme le montre la figure de gauche, il est classé en effectuant une classification linéaire plusieurs fois.

Screen Shot 2017-05-09 at 11.39.46.png Extracted by 'Introduction to Machine Learning', Udacity

Au fait, il semble que l'arbre de décision ait une régression et une classification, mais cette fois je parlerai de classification.

code par défaut

python



DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, 
min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, 
max_features=None, random_state=None, max_leaf_nodes=None, 
min_impurity_split=1e-07, class_weight=None, presort=False)


Description du paramètre dans l'arbre de décision

Il a beaucoup de contenu. Seuls les principaux seront expliqués ci-dessous.

Si min_samples_split = 2 et que la valeur de la destination de la branche est égale ou supérieure à 2, la branche continuera. En regardant la figure ci-dessous, la zone entourée par le cercle bleu clair a plus de 2 échantillons, donc la ramification continue. Cependant, en fonction du nombre d'échantillons, il existe une forte possibilité de surentraînement, un ajustement est donc nécessaire. Screen Shot 2017-05-09 at 12.35.35.png Extracted from 'Introduction to Machine Learning', Udacity

Spécifiez comment fractionner les données avec «gini» ou «entropie».

«gini»: plus la pureté (coefficient de gini) de la kème destination de classement est faible, mieux c'est. Utilisez'entropy ': gain d'informations pour trouver les conditions les plus efficaces. Il semble qu'il n'y ait pas beaucoup de différence, mais les détails sont ici et ici. blog / sklearn-gini-vs-entropy-critères)

Cela détermine et limite la profondeur maximale de l'arbre de décision pour éviter le surapprentissage.

Visualisation de l'arbre de décision (pour l'ensemble Iris)

python




from IPython.display import Image  
dot_data = tree.export_graphviz(clf, out_file=None, 
                     feature_names=iris.feature_names, 
                     class_names=iris.target_names,  
                     filled=True, rounded=True,  
                     special_characters=True)  
graph = pydotplus.graph_from_dot_data(dot_data)  
Image(graph.create_png())  

Screen Shot 2017-05-09 at 11.00.27.png

The image and the code are extracted from 'Sklearn document'

Comment éviter le surapprentissage des arbres de décision

Les avantages et les inconvénients de Decision Tree.

Alors que d'autres algorithmes nécessitent la normalisation des données, la création de variables fictives, etc., Decision Tree nécessite peu de traitement sur site pour gérer les données catégorielles et numériques. De plus, comme il peut être visualisé comme ci-dessus, vous pouvez voir qu'il s'agit d'un algorithme très facile à comprendre.

--Mauvais point

Facile à surapprendre. Les données sont classées par des lignes droites verticales et horizontales, donc si les données ne peuvent pas être séparées par une ligne de démarcation parallèle à l'axe, elles ne peuvent pas être correctement classées.

Résumé

Ce qui précède est le contour de l'arbre de décision pour autant que je puisse comprendre. Nous le mettrons à jour quotidiennement, donc si vous avez quelque chose à ajouter ou à corriger, nous vous serions reconnaissants de bien vouloir commenter.

Recommended Posts

Apprentissage automatique ③ Résumé de l'arbre de décision
Machine Learning: Supervisé - Arbre de décision
Apprentissage automatique ⑤ Résumé AdaBoost
Résumé des fonctions d'évaluation utilisées dans l'apprentissage automatique
Bases de l'apprentissage automatique (mémoire)
Apprentissage automatique ② Résumé Naive Bayes
Résumé de l'article sur l'apprentissage automatique (auto-écrit)
Importance des ensembles de données d'apprentissage automatique
Apprentissage automatique ④ Résumé du K-plus proche voisin
Les débutants en apprentissage automatique essaient de créer un arbre de décision
Résumé du flux de base de l'apprentissage automatique avec Python
Importance de l'apprentissage automatique et de l'apprentissage par mini-lots
[Apprentissage automatique] Étudions l'arbre de décision
Apprentissage automatique ① Résumé SVM (Support Vector Machine)
Résumé de l'apprentissage automatique par les débutants de Python
Apprentissage automatique
Un résumé de l'apprentissage automatique Python pour débutant est très concis.
Résumé des articles publiés jusqu'à présent (statistiques / apprentissage automatique / mathématiques, etc.)
Résumé des API recommandées pour l'intelligence artificielle, l'apprentissage automatique et l'IA
scikit-learn Comment utiliser le résumé (apprentissage automatique)
[Apprentissage automatique] Prédiction FX à l'aide de l'arbre de décision
20 sélections recommandées en 2020 de livres d'introduction à l'apprentissage automatique
Algorithme d'apprentissage automatique (implémentation de la classification multi-classes)
Résumé de la classification et de la mise en œuvre des algorithmes d'apprentissage automatique
[Apprentissage automatique] Liste des packages fréquemment utilisés
Algorithme d'apprentissage automatique (résumé de régression linéaire et régularisation)
[Apprentissage automatique] Résumé et exécution de l'évaluation / des indicateurs du modèle (avec jeu de données Titanic)
Arbre de décision (load_iris)
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Exemple d'apprentissage automatique
Classification des images de guitare par apprentissage automatique Partie 1
Début de l'apprentissage automatique (matériel didactique / informations recommandés)
Apprentissage automatique du sport-Analyse de la J-League à titre d'exemple-②
Mémo d'étude Python & Machine Learning ⑤: Classification d'Ayame
Tournoi Numerai - Fusion de quants traditionnels et apprentissage automatique -
Mémo d'étude Python & Machine Learning ②: Introduction de la bibliothèque
Divulgation complète des méthodes utilisées dans l'apprentissage automatique
Liste des liens que les débutants en apprentissage automatique apprennent
Vue d'ensemble des techniques d'apprentissage automatique apprises grâce à scikit-learn
À propos du contenu de développement de l'apprentissage automatique (exemple)
Analyse de l'utilisation de l'espace partagé par l'apprentissage automatique
[Français] scikit-learn 0.18 Introduction de l'apprentissage automatique par le didacticiel scikit-learn
Mémo d'apprentissage automatique d'un ingénieur débutant Partie 2
Estimation raisonnable du prix de Mercari par apprentissage automatique
Classification des images de guitare par apprentissage automatique, partie 2
Touchons une partie de l'apprentissage automatique avec Python
Essayez d'utiliser le bloc-notes Jupyter à partir d'Azure Machine Learning
Disposition des éléments auto-mentionnés liés à l'apprentissage automatique
Raisonnement causal utilisant l'apprentissage automatique (organisation des méthodes de raisonnement causal)
Points clés de «Machine learning avec Azure ML Studio»
Apprentissage automatique sur le surapprentissage
Résumé des diapositives de la session de lecture ronde de la série professionnelle d'apprentissage automatique
Résumé de Tensorflow / Keras
[Balisage recommandé dans le machine learning # 2] Extension du script de scraping
[Balisage recommandé dans le machine learning # 2.5] Modification du script de scraping
Apprentissage automatique: supervisé - AdaBoost