Comment extraire des règles de décision des arbres de décision Scikit-Learn en Python ?

Susan Sarandon
Libérer: 2024-10-26 12:18:03
original
900 Les gens l'ont consulté

How to Extract Decision Rules from Scikit-Learn Decision Trees in Python?

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>
Copier après la connexion

Exemple d'utilisation :

<code class="python">tree_model = DecisionTreeClassifier().fit(X, y)
tree_to_code(tree_model, feature_names)</code>
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal