Extraire les règles de décision des arbres de décision Scikit-Learn
Extraire les règles de décision sous-jacentes d'un arbre de décision entraîné peut fournir des informations précieuses sur sa décision -processus de fabrication. Voici comment le faire dans un format de liste textuelle à l'aide de Python.
Fonction Python :
<code class="python">from sklearn.tree import _tree def tree_to_code(tree, feature_names): tree_ = tree.tree_ feature_name = [ feature_names[i] if i != _tree.TREE_UNDEFINED else "undefined!" for i in tree_.feature ] print("def tree({}):".format(", ".join(feature_names))) def recurse(node, depth): indent = " " * depth if tree_.feature[node] != _tree.TREE_UNDEFINED: name = feature_name[node] threshold = tree_.threshold[node] print("{}if {} <= {}:".format(indent, name, threshold)) recurse(tree_.children_left[node], depth + 1) print("{}else: # if {} > {}".format(indent, name, threshold) + depth) recurse(tree_.children_right[node], depth + 1) else: print("{}return {}".format(indent, tree_.value[node])) recurse(0, 1)</code>
Exemple d'utilisation :
<code class="python">tree_model = DecisionTreeClassifier().fit(X, y) tree_to_code(tree_model, feature_names)</code>
Cette fonction parcourt de manière itérative la structure arborescente, imprimant les règles de décision pour chaque branche au fur et à mesure qu'elle les rencontre. Il gère à la fois les nœuds feuilles et les nœuds non feuilles et génère une fonction Python valide qui encapsule le processus de prise de décision de l'arbre.
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!