Scikit-Lernentscheidung Generieren Sie Python-Code aus Baum- / Waldstrukturregeln

Einführung

Maschinelles Lernen in Python ist Scikit-Lernen, aber um Scikit-Lernen zu verwenden, müssen Sie eine große Bibliothek wie Numpy oder Scipy einbinden. Wenn Sie jedoch ein Programm anhand eines maschinellen Lernmodells klassifizieren möchten, möchten Sie möglicherweise kein so schweres Element einfügen. Ich wünschte, ich könnte das, was ich mit Scikit-Learn gelernt habe, ohne Numpy, Scipy und Scikit-Learn für die Klassifizierungsverarbeitung verwenden.

Daher werde ich dieses Mal den Code vorstellen, der aus dem Entscheidungsbaum (DecisionTreeClassifier) und der Zufallsstruktur (RandomForestClassifier) von scikit-learn einen Wenn-Dann-Formatcode generiert.

Code

Erstellen Sie einen Funktionscode, der die Klassennummer bei der Eingabe der Feature-Daten zurückgibt. In diesem Code wird die Anzahl der Stichproben für jeden Verzweigungspunkt hinzugefügt, damit Sie sehen können, was wichtig ist. Dies wurde übrigens unter Bezugnahme auf [Code, der sich im Stackoverflow befand] geschrieben (http://stackoverflow.com/questions/20224526/how-to-extract-the-decision-rules-from-scikit-learn-decision-tree). Es war.

Ein solcher Code wird aus dem Entscheidungsbaum generiert, der die Irisdaten gelernt hat.

def f(sepal_length=0, sepal_width=0, petal_length=0, petal_width=0):
    """
    0 -> setosa
    1 -> versicolor
    2 -> virginica
    """
    if petal_width <= 0.800000011921:  # samples=150
        return 0  # samples=50
    else:
        if petal_width <= 1.75:  # samples=100
            if petal_length <= 4.94999980927:  # samples=54
                if petal_width <= 1.65000009537:  # samples=48
                    return 1  # samples=47
                else:
                    return 2  # samples=1
            else:
                if petal_width <= 1.54999995232:  # samples=6
                    return 2  # samples=3
                else:
                    if petal_length <= 5.44999980927:  # samples=3
                        return 1  # samples=2
                    else:
                        return 2  # samples=1
        else:
            if petal_length <= 4.85000038147:  # samples=46
                if sepal_length <= 5.94999980927:  # samples=3
                    return 1  # samples=1
                else:
                    return 2  # samples=2
            else:
                return 2  # samples=43

Referenznotizbuch

Im Fall einer zufälligen Gesamtstruktur ist ein wenig Zeit und Mühe erforderlich, da Code aus mehreren Bäumen generiert und die Mehrheitsverarbeitung geschrieben werden muss.

abschließend

Einführung in das Generieren von Python-Code zur Klassifizierung aus Scikit-Lernentscheidungsbäumen und zufälligen Gesamtstrukturregeln. Dies ermöglicht es, die Klassifizierungsverarbeitung direkt durchzuführen, ohne das Modell aus einer Bibliothek wie scikit-learn zu laden. Daher ist es nicht erforderlich, numpy, scipy und scikit-learn zu installieren. Da es sich um gewöhnlichen Python-Code handelt, halte ich es für einen Vorteil, dass es leicht zu ändern ist, wenn Sie ein wenig mit den Regeln spielen möchten.

Es ist jedoch nicht auf die Codegenerierung beschränkt. Wenn jedoch viele Funktionen vorhanden sind, ist die Ausgabe des Inhalts des Entscheidungsbaums in der Regel sehr kompliziert. Seien Sie daher vorsichtig bei der Verwendung.

Recommended Posts

Scikit-Lernentscheidung Generieren Sie Python-Code aus Baum- / Waldstrukturregeln
Entscheidungsbaum und zufälliger Wald
Erstellen Sie mit Python einen Entscheidungsbaum von 0 (1. Übersicht)
2. Multivariate Analyse in Python 7-1. Entscheidungsbaum (Scikit-Learn)
Balanced Random Forest in Python
Verwenden Sie Random Forest mit Python
[Python] Persönliches Tutorial zum Entscheidungsbaum
Generieren Sie QR-Code in Python
[Python] Generiert QR-Code im Speicher
Erstellen eines bestimmten Baums mit Scikit-Learn
Führen Sie Python-Code über die C # -GUI aus
2. Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (2. Grundlagen des Python-Programms)
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (5. Information Entropy)
Multi-Label-Klassifizierung nach Random Forest mit Scikit-Learn
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck
Krankheitsklassifizierung durch Random Forest mit Python
[Hinweis] Führen Sie Python-Code aus Excel aus (xlwings)