Heim >Backend-Entwicklung >Python-Tutorial >Das Prinzip und die Implementierungsmethode zur Implementierung des Entscheidungsbaumalgorithmus in Python

Das Prinzip und die Implementierungsmethode zur Implementierung des Entscheidungsbaumalgorithmus in Python

PHPz
PHPznach vorne
2024-01-22 19:24:11534Durchsuche

决策树算法原理 Python实现决策树算法

Der Entscheidungsbaumalgorithmus gehört zur Kategorie der überwachten Lernalgorithmen, eignet sich für kontinuierliche und kategoriale Ausgabevariablen und wird normalerweise zur Lösung von Klassifizierungs- und Regressionsproblemen verwendet.

Ein Entscheidungsbaum ist eine Baumstruktur ähnlich einem Flussdiagramm, in der jeder interne Knoten einen Test eines Attributs darstellt, jeder Zweig das Ergebnis des Tests darstellt und jeder Knoten einer Klassenbezeichnung entspricht.

Idee für den Entscheidungsbaumalgorithmus

Behandeln Sie zunächst den gesamten Trainingssatz als Wurzel.

Zur Informationsgewinnung wird davon ausgegangen, dass die Attribute kategorisch sind, und für den Gini-Index wird davon ausgegangen, dass die Attribute kontinuierlich sind.

Datensätze werden basierend auf Attributwerten rekursiv verteilt.

Verwenden Sie statistische Methoden, um Attribute nach Wurzelknoten zu sortieren.

Finden Sie das beste Attribut und platzieren Sie es im Wurzelknoten des Baums.

Teilen Sie nun den Trainingssatz des Datensatzes in Teilmengen auf. Stellen Sie beim Erstellen von Teilmengen sicher, dass jede Teilmenge des Trainingsdatensatzes dieselben Attributwerte haben sollte.

Finden Sie Blattknoten in allen Zweigen, indem Sie 1 und 2 für jede Teilmenge wiederholen.

Die Implementierung des Entscheidungsbaumalgorithmus in Python

erfordert zwei Phasen der Konstruktion und des Betriebs:

Konstruktionsphase und Vorverarbeitungsdatensatz. Teilen Sie den Datensatz mithilfe des Python-Sklearn-Pakets aus Training und Tests auf. Trainieren Sie den Klassifikator.

Treffen Sie in der Operationsphase Vorhersagen. Berechnungsgenauigkeit.

Datenimport: Um Daten zu importieren und zu bearbeiten, verwenden wir das in Python bereitgestellte Pandas-Paket.

Hier verwenden wir die URL, um den Datensatz direkt von der UCI-Website abzurufen, ohne den Datensatz herunterzuladen. Wenn Sie versuchen, diesen Code auf Ihrem System auszuführen, stellen Sie sicher, dass das System über eine aktive Internetverbindung verfügt.

Da der Datensatz durch "," getrennt ist, müssen wir den Wert des sep-Parameters als übergeben.

Außerdem ist zu beachten, dass der Datensatz keine Header enthält, daher übergeben wir den Wert des Header-Parameters als „none“. Wenn wir den Header-Parameter nicht übergeben, wird die erste Zeile des Datensatzes als Header betrachtet.

Datenaufteilung: Vor dem Training des Modells müssen wir den Datensatz in Trainings- und Testdatensätze aufteilen.

Um den Datensatz für Training und Tests aufzuteilen, haben wir das Sklearn-Modul train_test_split verwendet.

Zuerst müssen wir die Zielvariable von den Attributen im Datensatz trennen.

X=balance_data.values[:,1:5]
Y=balance_data.values[:,0]

Oben sind die Codezeilen, die den Datensatz trennen. Variable X enthält die Attribute, während Variable Y die Zielvariable des Datensatzes enthält.

Der nächste Schritt besteht darin, den Datensatz für Trainings- und Testzwecke aufzuteilen.

X_train,X_test,y_train,y_test=train_test_split(
X,Y,test_size=0.3,random_state=100)

Die vorherige Zeile teilt den Datensatz für Training und Tests auf. Da wir den Datensatz im Verhältnis 70:30 zwischen Training und Test aufteilen, übergeben wir den Wert des Parameters test_size als 0,3. Die Variable „random_state“ ist der Status des Pseudozufallszahlengenerators, der für die Zufallsstichprobe verwendet wird.

Das obige ist der detaillierte Inhalt vonDas Prinzip und die Implementierungsmethode zur Implementierung des Entscheidungsbaumalgorithmus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:163.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen