In diesem Artikel werden wir sehen, wie man ein baut Zufälliger Waldklassifizierer Verwendung der Scikit-Learn-Bibliothek von Python-Programmiersprache und dazu verwenden wir die IRIS-Datensatz Das ist ein recht häufiger und berühmter Datensatz.
Zufälliger Wald
Der Zufälliger Wald oder Random Decision Forest ist ein überwachter Algorithmus für maschinelles Lernen, der für Klassifizierung, Regression und andere Aufgaben unter Verwendung von Entscheidungsbäumen verwendet wird. Random Forests eignen sich besonders gut für den Umgang mit großen und komplexen Datensätzen, den Umgang mit hochdimensionalen Merkmalsräumen und die Bereitstellung von Einblicken in die Bedeutung von Merkmalen. Die Fähigkeit dieses Algorithmus, eine hohe Vorhersagegenauigkeit beizubehalten und gleichzeitig eine Überanpassung zu minimieren, macht ihn zu einer beliebten Wahl in verschiedenen Bereichen, unter anderem im Finanzwesen, im Gesundheitswesen und bei der Bildanalyse.
Zufälliger Waldklassifikator
Der Random-Forest-Klassifikator erstellt eine Satz von Entscheidungsbäume aus einer zufällig ausgewählten Teilmenge des Trainingssatzes. Es handelt sich um eine Reihe von Entscheidungsbäumen (DT) aus einer zufällig ausgewählten Teilmenge des Trainingssatzes. Anschließend werden die Stimmen verschiedener Entscheidungsbäume gesammelt, um über die endgültige Vorhersage zu entscheiden.
Zufälliger Waldklassifikator
Darüber hinaus kann der Random-Forest-Klassifizierer sowohl Klassifizierungs- als auch Regressionsaufgaben bewältigen, und seine Fähigkeit, Merkmalswichtigkeitswerte bereitzustellen, macht ihn zu einem wertvollen Werkzeug zum Verständnis der Bedeutung verschiedener Variablen im Datensatz.
So funktioniert die Random-Forest-Klassifizierung
Random Forest Classification ist eine Ensemble-Lerntechnik, die darauf ausgelegt ist, die Genauigkeit und Robustheit von Klassifizierungsaufgaben zu verbessern. Der Algorithmus erstellt während des Trainings eine Vielzahl von Entscheidungsbäumen und gibt diese aus Klasse Das ist der Modus der Klassifikationsklassen. Jeder Entscheidungsbaum in der Zufallsstruktur wird unter Verwendung einer Teilmenge der Trainingsdaten und einer zufälligen Teilmenge von Merkmalen erstellt, die Diversität zwischen den Bäumen schaffen und das Modell robuster und weniger anfällig für Überanpassungen machen.
Der Random Forest-Algorithmus verwendet eine Technik namens Bagging (Bootstrap Aggregating), um diese verschiedenen Teilmengen zu erstellen.
Während der Trainingsphase jeweils Baum wird durch rekursive Partitionierung der Daten basierend auf den Features erstellt. Bei jedem Teilt, Der Algorithmus wählt das beste Merkmal aus der zufälligen Teilmenge aus und optimiert es hinsichtlich Informationsgewinn oder Gini-Verunreinigung. Der Prozess wird fortgesetzt, bis ein vordefiniertes Stoppkriterium erfüllt ist, z. B. das Erreichen einer maximalen Tiefe oder eine minimale Anzahl von Proben in jedem Blattknoten.
Sobald die Zufallsstruktur trainiert ist, kann sie Vorhersagen treffen, indem sie die Stimmen jedes Baums für eine Klasse verwendet, und die Klasse mit den meisten Stimmen wird zur vorhergesagten Klasse für die Eingabedaten.
Merkmalsauswahl in zufälligen Wäldern
Merkmalsauswahl in Random Forests ist von Natur aus in die Konstruktion einzelner Entscheidungsbäume und den Aggregationsprozess eingebettet.
Während der Trainingsphase wird jeder Entscheidungsbaum anhand einer zufälligen Teilmenge von Merkmalen erstellt, was zur Diversität zwischen den Bäumen beiträgt. Der als Feature-Bagging bekannte Prozess trägt dazu bei, die Dominanz eines einzelnen Features zu verhindern und fördert ein robusteres Modell.
Der Algorithmus wertet an jedem Teilungspunkt verschiedene Teilmengen von Merkmalen aus und wählt anhand von Kriterien wie Informationsgewinn oder Gini-Verunreinigung das beste Merkmal für die Knotenteilung aus. Folglich beinhalten Random Forests natürlich eine Form der Merkmalsauswahl, die sicherstellt, dass das Ensemble von einem vielfältigen Satz an Merkmalen profitiert, um die Generalisierung zu verbessern und Überanpassung zu reduzieren.
Random Forest Classifier im maschinellen Lernen
Schritt 1: Datensatz laden
Python3
# importing required libraries> # importing Scikit-learn library and datasets package> from> sklearn>import> datasets> # Loading the iris plants dataset (classification)> iris>=> datasets.load_iris()> |
>
>
Schritt 2: Überprüfen des Inhalts des Datensatzes und der darin enthaltenen Funktionsnamen.
Python3
print>(iris.target_names)> |
>
>
Ausgabe:
[‘setosa’ ‘versicolor’ ‘virginica’]>
Python3
print>(iris.feature_names)> |
>
>
Ausgabe:
[‘sepal length (cm)’, ’sepal width (cm)’, ’petal length (cm)’, ’petal width (cm)’]>
Schritt 3: Trainieren Sie die Testaufteilung
Python3
# dividing the datasets into two parts i.e. training datasets and test datasets> X, y>=> datasets.load_iris( return_X_y>=> True>)> # Splitting arrays or matrices into random train and test subsets> from> sklearn.model_selection>import> train_test_split> # i.e. 70 % training dataset and 30 % test datasets> X_train, X_test, y_train, y_test>=> train_test_split(X, y, test_size>=> 0.30>)> |
>
>
Schritt 4: Importieren Sie das Random Forest Classifier-Modul.
Python3
# importing random forest classifier from assemble module> from> sklearn.ensemble>import> RandomForestClassifier> import> pandas as pd> # creating dataframe of IRIS dataset> data>=> pd.DataFrame({>'sepallength'>: iris.data[:,>0>],>'sepalwidth'>: iris.data[:,>1>],> >'petallength'>: iris.data[:,>2>],>'petalwidth'>: iris.data[:,>3>],> >'species'>: iris.target})> |
>
>
Übersicht über den Datensatz
Python3
# printing the top 5 datasets in iris dataset> print>(data.head())> |
>
>
Ausgabe:
sepallength sepalwidth petallength petalwidth species 0 5.1 3.5 1.4 0.2 0 1 4.9 3.0 1.4 0.2 0 2 4.7 3.2 1.3 0.2 0 3 4.6 3.1 1.5 0.2 0 4 5.0 3.6 1.4 0.2 0>
Schritt 5: Training des Modells
Python3
# creating a RF classifier> clf>=> RandomForestClassifier(n_estimators>=> 100>)> # Training the model on the training dataset> # fit function is used to train the model using the training sets as parameters> clf.fit(X_train, y_train)> # performing predictions on the test dataset> y_pred>=> clf.predict(X_test)> # metrics are used to find accuracy or error> from> sklearn>import> metrics> print>()> # using metrics module for accuracy calculation> print>(>'ACCURACY OF THE MODEL:'>, metrics.accuracy_score(y_test, y_pred))> |
>
>
Ausgabe:
ACCURACY OF THE MODEL: 0.9238095238095239>
Schritt 6: Vorhersagen
Python3
# predicting which type of flower it is.> clf.predict([[>3>,>3>,>2>,>2>]])> |
>
>
Ausgabe:
array([0])>
Dies impliziert, dass dies der Fall ist seidig Blumentyp, da wir die drei Arten oder Klassen in unserem Datensatz haben: Setosa, Versicolor und Virginia.
Überprüfen Sie die wichtigen Funktionen
Jetzt werden wir auch die wichtigen Funktionen oder Auswahlfunktionen im IRIS-Datensatz herausfinden, indem wir die folgenden Codezeilen verwenden.
Python3
# using the feature importance variable> import> pandas as pd> feature_imp>=> pd.Series(clf.feature_importances_, index>=> iris.feature_names).sort_values(ascending>=> False>)> feature_imp> |
>
Wie groß ist mein Computerbildschirm?
>
Ausgabe:
petal length (cm) 0.440050 petal width (cm) 0.423437 sepal length (cm) 0.103293 sepal width (cm) 0.033220 dtype: float64>
Zufällige Wälder in Python Scikit-Learn Die Bibliothek wird mit einem Satz geliefert Hyperparameter mit denen Sie das Verhalten des Modells optimieren können. Das Verstehen und Auswählen geeigneter Hyperparameter ist entscheidend für die Optimierung der Modellleistung.
Parameter des Random Forest-Klassifikators
- n_schätzer: Anzahl der Bäume im Wald.
- Mehr Bäume führen im Allgemeinen zu einer besseren Leistung, allerdings auf Kosten der Rechenzeit.
- Beginnen Sie mit einem Wert von 100 und erhöhen Sie ihn nach Bedarf.
- maximale Tiefe: Maximale Tiefe jedes Baumes.
- Tiefere Bäume können komplexere Muster erfassen, es besteht jedoch auch die Gefahr einer Überanpassung.
- Experimentieren Sie mit Werten zwischen 5 und 15 und ziehen Sie niedrigere Werte für kleinere Datensätze in Betracht.
- max_features: Anzahl der Features, die für die Aufteilung an jedem Knoten berücksichtigt werden.
- Ein üblicher Wert ist „sqrt“ (Quadratwurzel der Gesamtzahl der Features).
- Passen Sie die Daten je nach Datensatzgröße und Funktionsbedeutung an.
- Kriterium: Funktion zur Messung der Split-Qualität („Gini“ oder „Entropie“).
- Die Gini-Verunreinigung ist oft etwas schneller, aber beide haben im Allgemeinen eine ähnliche Leistung.
- min_samples_split: Mindestproben, die zum Teilen eines Knotens erforderlich sind.
- Höhere Werte können eine Überanpassung verhindern, zu hohe Werte können jedoch die Modellkomplexität beeinträchtigen.
- Beginnen Sie mit 2 und passen Sie sie nach Bedarf an.
- min_samples_leaf: Mindestproben, die an einem Blattknoten vorhanden sein müssen.
- Ähnlich wie min_samples_split, konzentriert sich jedoch auf Blattknoten.
- Beginnen Sie mit 1 und passen Sie es nach Bedarf an.
- Bootstrap: Ob beim Erstellen von Bäumen Bootstrap-Sampling verwendet werden soll (True oder False).
- Bootstrapping kann die Varianz und Generalisierung des Modells verbessern, aber auch die Verzerrung leicht erhöhen.
Vorteile des Random Forest Classifier
- Der Ensemble-Charakter von Random Forests, bei dem mehrere Bäume kombiniert werden, macht sie im Vergleich zu einzelnen Entscheidungsbäumen weniger anfällig für Überanpassungen.
- Effektiv bei Datensätzen mit einer großen Anzahl von Funktionen und kann gut mit irrelevanten Variablen umgehen.
- Random Forests können Einblicke in die Wichtigkeit von Features liefern und bei der Feature-Auswahl und beim Verständnis des Datensatzes helfen.
Nachteile des Random Forest Classifier
- Random Forests können rechenintensiv sein und aufgrund der Erstellung mehrerer Entscheidungsbäume möglicherweise mehr Ressourcen erfordern.
- Der Ensemble-Charakter macht es schwierig, die Gründe für einzelne Vorhersagen im Vergleich zu einem einzelnen Entscheidungsbaum zu interpretieren.
- In unausgeglichenen Datensätzen können Random Forests auf die Mehrheitsklasse ausgerichtet sein, was sich auf die Vorhersageleistung für Minderheitsklassen auswirkt.
Abschluss
Zusammenfassend lässt sich sagen, dass Random Forests mit ihrem Ensemble aus Entscheidungsbäumen eine robuste Lösung für verschiedene Aufgaben des maschinellen Lernens darstellen und ihre Vielseitigkeit und Effektivität unter Beweis stellen.
Häufig gestellte Fragen (FAQs)
F. Was ist der Random-Forest-Klassifikator?
Random Forest Classifier ist eine Ensemble-Lernmethode, die mehrere Entscheidungsbäume für Klassifizierungsaufgaben verwendet und so die Genauigkeit verbessert. Es zeichnet sich durch die Verarbeitung komplexer Daten, die Reduzierung von Überanpassungen und die Bereitstellung robuster Vorhersagen mit Merkmalsbedeutung aus.
F. Kann eine zufällige Gesamtstruktur für die Regression verwendet werden?
Random Forest kann sowohl für Regressions- als auch für Klassifizierungsaufgaben verwendet werden, was es zu einem vielseitigen Algorithmus für maschinelles Lernen macht.
F. Was ist das Prinzip der Random Forest?
Random Forest erstellt mehrere Entscheidungsbäume anhand zufälliger Teilmengen des Datensatzes und kombiniert ihre Ergebnisse für eine verbesserte Genauigkeit.
F. Welche Anwendungen gibt es mit Random Forest?
Zu den realen Anwendungen gehören:
- Medizinische Diagnose: Krankheiten anhand von Patientendaten identifizieren.
- Finanzen: Bonitätsbewertung zur Risikobewertung in der Kreditvergabe.