Heim >Backend-Entwicklung >Python-Tutorial >Beispiel für einen Random-Forest-Algorithmus in Python

Beispiel für einen Random-Forest-Algorithmus in Python

王林
王林Original
2023-06-10 13:12:073054Durchsuche

Random Forest ist ein Ensemble-Lernalgorithmus, der die Genauigkeit und Robustheit verbessert, indem er die Vorhersageergebnisse mehrerer Entscheidungsbäume kombiniert. Zufällige Wälder werden häufig in verschiedenen Bereichen verwendet, beispielsweise im Finanzwesen, in der medizinischen Versorgung, im E-Commerce usw.

In diesem Artikel erfahren Sie, wie Sie mit Python einen Zufallswaldklassifikator implementieren und ihn mithilfe des Irisblütendatensatzes testen.

1. Iris-Datensatz

Der Iris-Datensatz ist ein klassischer Datensatz im maschinellen Lernen. Er enthält 150 Datensätze, jeder Datensatz hat 4 Funktionen und 1 Kategoriebezeichnung. Die vier Merkmale sind Kelchblattlänge, Kelchblattbreite, Blütenblattlänge und Blütenblattbreite, und die Kategoriebezeichnung stellt eine der drei Irisarten dar (Iris Mountain, Iris versicolor, Iris virginia).

In Python können wir scikit-learn, eine leistungsstarke Bibliothek für maschinelles Lernen, verwenden, um den Iris-Datensatz zu laden. Die spezifischen Operationen sind wie folgt:

from sklearn.datasets import load_iris

iris = load_iris()
X = iris.data
y = iris.target

2. Erstellen Sie einen Zufallswaldklassifizierer

Es ist sehr einfach, mit scikit-learn einen Zufallswaldklassifikator zu erstellen. Zuerst müssen wir die RandomForestClassifier-Klasse aus sklearn.ensemble importieren und ein Objekt instanziieren:

from sklearn.ensemble import RandomForestClassifier

rfc = RandomForestClassifier(n_estimators=10)

Unter anderem gibt der Parameter n_estimators die Anzahl der Entscheidungsbäume an, die in der Zufallsstruktur enthalten sind. Hier setzen wir die Anzahl der Entscheidungsbäume im Zufallswald auf 10.

Als nächstes müssen wir den Irisdatensatz in Trainingsdaten und Testdaten aufteilen. Verwenden Sie die Funktion train_test_split, um den Datensatz zufällig in einen Trainingssatz und einen Testsatz zu unterteilen:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

Unter diesen gibt der Parameter test_size den Anteil des Testsatzes und der Parameter random_state den Startwert des Pseudozufallszahlengenerators an um sicherzustellen, dass bei jeder Programmausführung das gleiche Ergebnis erzielt wird.

Dann können wir die Trainingsdaten verwenden, um den Random-Forest-Klassifikator zu trainieren:

rfc.fit(X_train, y_train)

3. Testen Sie den Random-Forest-Klassifikator

Sobald der Klassifikator trainiert wurde, können wir die Testdaten verwenden, um seine Leistung zu testen. Verwenden Sie die Vorhersagefunktion, um Vorhersagen für den Testsatz zu treffen, und die Funktion precision_score, um die Genauigkeit des Modells zu berechnen:

from sklearn.metrics import accuracy_score

y_pred = rfc.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

Schließlich können wir die Matplotlib-Bibliothek verwenden, um die Entscheidungsgrenzen des Klassifikators zu visualisieren und so das Verhalten des Klassifikators besser zu verstehen :

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
z_min, z_max = X[:, 2].min() - .5, X[:, 2].max() + .5
xx, yy, zz = np.meshgrid(np.arange(x_min, x_max, 0.2), np.arange(y_min, y_max, 0.2), np.arange(z_min, z_max, 0.2))

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

Z = rfc.predict(np.c_[xx.ravel(), yy.ravel(), zz.ravel()])
Z = Z.reshape(xx.shape)
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y)
ax.set_xlabel('Sepal length')
ax.set_ylabel('Sepal width')
ax.set_zlabel('Petal length')
ax.set_title('Decision Boundary')

ax.view_init(elev=30, azim=120)
ax.plot_surface(xx, yy, zz, alpha=0.3, facecolors='blue')

plt.show()

Der obige Code erzeugt ein dreidimensionales Bild, in dem die Farbe der Datenpunkte die Irisart darstellt und die Entscheidungsgrenze durch eine durchscheinende blaue Oberfläche dargestellt wird.

4. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit Python einen zufälligen Waldklassifikator implementieren und den Irisblütendatensatz zum Testen verwenden. Aufgrund der Robustheit und Genauigkeit des Random-Forest-Algorithmus bietet er breite Anwendungsaussichten in praktischen Anwendungen. Wenn Sie sich für diesen Algorithmus interessieren, wird empfohlen, mehr zu üben und relevante Literatur zu lesen.

Das obige ist der detaillierte Inhalt vonBeispiel für einen Random-Forest-Algorithmus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn