2012-11-22 1 views
5

Je suis un débutant en apprentissage automatique et j'expérimente des arbres de décision. Je regarde cette visualisation d'un arbre de décision http://scikit-learn.org/dev/_images/iris.svg et je me demande ce que signifie la valeur de l'erreur. Est-ce l'indice de Gini ou le gain d'information ou quoi? J'apprécierais aussi ce que cela signifie intuitivement.Scikit Decistion Tree Visualisation: signification de la valeur d'erreur

+0

La signification intuitive est simple: c'est un proxy pour la véritable erreur de classification si vous traversez l'arbre jusqu'à ce noeud, puis faites la prédiction qu'il conseille (apparemment pas montré dans l'image ...). –

Répondre

2

Dans cet exemple concret, «l'erreur» d'un nœud est l'indice de Gini de tous les exemples ayant atteint ce nœud.

En général, "l'erreur" d'un noeud dépend du critère d'impureté concret (par exemple, gini ou entropie pour la classification et erreur quadratique moyenne pour la régression). Intuitivement, vous pouvez penser aux deux critères d'impureté (gini et entropie) comme mesure de l'homogénéité d'un multi-ensemble. Un multi-ensemble est homogène s'il contient la plupart du temps des éléments d'un type (on l'appelle aussi "pur", d'où le nom "critère d'impureté"). Dans notre cas, les éléments du multi-jeu sont les étiquettes de classe qui atteignent le nœud correspondant. Lorsque nous divisons un nœud, nous voulons que les partitions résultantes soient pures - ce qui signifie que les classes sont bien séparées (une partition contient principalement des instances d'une classe).

Dans le cas de criterion="entropy" et classification binaire d'une erreur de 1,0 signifie qu'il y a un nombre égal d'exemples positifs et négatifs dans le noeud (le plus ensemble dans plusieurs homogène).

Vous pouvez accéder à la structure de données d'arbre qui est à la base d'un DecisionTreeClassifier ou DecisionTreeRegressor via son tree_ attribut qui est titulaire d'un objet sur le type d'extension sklearn.tree._tree.Tree. Cet objet représente l'arbre sous la forme d'une série de tableaux numpy parallèles. Le tableau init_error contient l'erreur initiale de chaque noeud; best_error contient la somme des erreurs des deux partitions si le nœud est un nœud de division. Reportez-vous à la documentation de la classe au https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L45 pour plus de détails.