logo

Zufällige Waldregression in Python

Random Forest Regression ist eine vielseitige maschinelle Lerntechnik zur Vorhersage numerischer Werte. Es kombiniert die Vorhersagen mehrerer Entscheidungsbäume, um Überanpassungen zu reduzieren und die Genauigkeit zu verbessern. Pythons maschinelles Lernen Bibliotheken erleichtern die Implementierung und Optimierung dieses Ansatzes.

Ensemble-Lernen

Ensemble-Learning ist eine Technik des maschinellen Lernens, die die Vorhersagen mehrerer Modelle kombiniert, um eine genauere und stabilere Vorhersage zu erstellen. Dabei handelt es sich um einen Ansatz, der die kollektive Intelligenz mehrerer Modelle nutzt, um die Gesamtleistung des Lernsystems zu verbessern.

Arten von Ensemble-Methoden

Es gibt verschiedene Arten von Ensemble-Lernmethoden, darunter:



  1. Bagging (Bootstrap-Aggregation): Bei dieser Methode werden mehrere Modelle anhand zufälliger Teilmengen der Trainingsdaten trainiert. Anschließend werden die Vorhersagen der einzelnen Modelle kombiniert, typischerweise durch Mittelwertbildung.
  2. Erhöhen: Bei dieser Methode wird eine Folge von Modellen trainiert, wobei sich jedes nachfolgende Modell auf die Fehler des vorherigen Modells konzentriert. Die Vorhersagen werden mithilfe eines gewichteten Abstimmungsschemas kombiniert.
  3. Stapeln: Bei dieser Methode werden die Vorhersagen eines Modellsatzes als Eingabemerkmale für ein anderes Modell verwendet. Die endgültige Vorhersage erfolgt durch das Modell der zweiten Ebene.

Zufälliger Wald

Ein Random Forest ist eine Ensemble-Lernmethode, die die Vorhersagen mehrerer Entscheidungsbäume kombiniert, um eine genauere und stabilere Vorhersage zu erstellen. Dabei handelt es sich um eine Art überwachten Lernalgorithmus, der sowohl für Klassifizierungs- als auch für Regressionsaufgaben verwendet werden kann.

Jeden Entscheidungsbaum hat eine hohe Varianz, aber wenn wir alle parallel kombinieren, ist die resultierende Varianz gering, da jeder Entscheidungsbaum perfekt auf die jeweiligen Beispieldaten trainiert wird und die Ausgabe daher nicht von einem Entscheidungsbaum, sondern von mehreren Entscheidungsbäumen abhängt. Im Falle eines Klassifizierungsproblems wird die endgültige Ausgabe mithilfe des Mehrheitsentscheidungsklassifikators ermittelt. Im Falle eines Regressionsproblems ist die endgültige Ausgabe der Mittelwert aller Ausgaben. Dieser Teil heißt Anhäufung .

Random-Forest-Regressionsmodell funktioniert

Random-Forest-Regressionsmodell funktioniert

Was ist Random Forest Regression?

Random Forest Regression beim maschinellen Lernen ist ein technisches Set in der Lage, beides zu leisten Regression und Klassifizierung Aufgaben unter Verwendung mehrerer Entscheidungsbäume und einer Technik namens Bootstrap und Aggregation, allgemein bekannt als absacken . Die Grundidee dahinter besteht darin, mehrere Entscheidungsbäume zu kombinieren, um die endgültige Ausgabe zu bestimmen, anstatt sich auf einzelne Entscheidungsbäume zu verlassen.

Random Forest verfügt über mehrere Entscheidungsbäume als Basis-Lernmodelle. Wir führen zufällige Zeilenstichproben und Merkmalsstichproben aus dem Datensatz durch, um Beispieldatensätze für jedes Modell zu bilden. Dieser Teil heißt Bootstrap.

Wir müssen die Random-Forest-Regressionstechnik wie jede andere angehen maschinelles Lernen Technik.

  • Entwerfen Sie eine bestimmte Frage oder Daten und ermitteln Sie die Quelle, um die erforderlichen Daten zu ermitteln.
  • Stellen Sie sicher, dass die Daten in einem zugänglichen Format vorliegen, andernfalls konvertieren Sie sie in das erforderliche Format.
  • Geben Sie alle auffälligen Anomalien und fehlenden Datenpunkte an, die möglicherweise erforderlich sind, um die erforderlichen Daten zu erhalten.
  • Erstellen Sie ein Modell für maschinelles Lernen.
  • Legen Sie das Basismodell fest, das Sie erreichen möchten
  • Trainieren Sie das Daten-Machine-Learning-Modell.
  • Geben Sie mit Testdaten einen Einblick in das Modell
  • Vergleichen Sie nun die Leistungsmetriken sowohl der Testdaten als auch der vorhergesagten Daten aus dem Modell.
  • Wenn es Ihren Erwartungen nicht entspricht, können Sie versuchen, Ihr Modell entsprechend zu verbessern, Ihre Daten zu datieren oder eine andere Datenmodellierungstechnik zu verwenden.
  • In dieser Phase interpretieren Sie die gewonnenen Daten und berichten entsprechend.

Zufällige Waldregression in Python

Im folgenden Beispiel verwenden wir eine ähnliche Beispieltechnik. Nachfolgend finden Sie eine schrittweise Beispielimplementierung der Random Forest Regression für den Datensatz, der hier heruntergeladen werden kann: https://bit.ly/417n3N5

Python Bibliotheken machen es uns sehr einfach, mit den Daten umzugehen und typische und komplexe Aufgaben mit einer einzigen Codezeile auszuführen.

  • Pandas – Diese Bibliothek hilft beim Laden des Datenrahmens in einem 2D-Array-Format und verfügt über mehrere Funktionen, um Analyseaufgaben auf einmal durchzuführen.
  • Numpy – Numpy-Arrays sind sehr schnell und können große Berechnungen in sehr kurzer Zeit durchführen.
  • Matplotlib / Seaborn – Diese Bibliothek wird zum Zeichnen von Visualisierungen verwendet.
  • Sklearn – Dieses Modul enthält mehrere Bibliotheken mit vorimplementierten Funktionen zur Ausführung von Aufgaben von der Datenvorverarbeitung bis zur Modellentwicklung und -bewertung.
  • RandomForestRegressor – Dies ist das Regressionsmodell, das auf dem Random Forest-Modell oder dem Ensemble-Learning basiert, das wir in diesem Artikel unter Verwendung der sklearn-Bibliothek verwenden werden.
  • sklearn: Diese Bibliothek ist die Kernbibliothek für maschinelles Lernen in Python. Es bietet eine breite Palette von Tools zur Vorverarbeitung, Modellierung, Bewertung und Bereitstellung von Modellen für maschinelles Lernen.
  • LabelEncoder: Diese Klasse wird verwendet, um kategoriale Daten in numerische Werte zu kodieren.
  • KNNImputer: Diese Klasse wird verwendet, um fehlende Werte in einem Datensatz mithilfe eines k-nächsten Nachbarn-Ansatzes zu imputieren.
  • train_test_split: Mit dieser Funktion wird ein Datensatz in Trainings- und Testsätze aufgeteilt.
  • StandardScaler: Diese Klasse wird zur Standardisierung von Features verwendet, indem der Mittelwert entfernt und auf Einheitsvarianz skaliert wird.
  • f1_score: Diese Funktion wird verwendet, um die Leistung eines Klassifizierungsmodells anhand des F1-Scores zu bewerten.
  • RandomForestRegressor: Diese Klasse wird zum Trainieren eines Random-Forest-Regressionsmodells verwendet.
  • cross_val_score: Mit dieser Funktion wird eine k-fache Kreuzvalidierung durchgeführt, um die Leistung eines Modells zu bewerten

Schritt 1: Bibliotheken importieren

Hier importieren wir alle erforderlichen Bibliotheken.

Python3




import> pandas as pd> import> matplotlib.pyplot as plt> import> seaborn as sns> import> sklearn> import> warnings> from> sklearn.preprocessing>import> LabelEncoder> from> sklearn.impute>import> KNNImputer> from> sklearn.model_selection>import> train_test_split> from> sklearn.preprocessing>import> StandardScaler> from> sklearn.metrics>import> f1_score> from> sklearn.ensemble>import> RandomForestRegressor> from> sklearn.ensemble>import> RandomForestRegressor> from> sklearn.model_selection>import> cross_val_score> warnings.filterwarnings(>'ignore'>)>

>

>

Schritt 2: Datensatz importieren

Laden wir nun den Datensatz in den Datenrahmen des Pandas. Für eine bessere Datenverarbeitung und die Nutzung praktischer Funktionen zur Erledigung komplexer Aufgaben auf einmal.

Java-Trimmzeichenfolge

Python3




df>=> pd.read_csv(>'Salaries.csv'>)> print>(df)>

>

>

Ausgabe:

 Position Level Salary 0 Business Analyst 1 45000 1 Junior Consultant 2 50000 2 Senior Consultant 3 60000 3 Manager 4 80000 4 Country Manager 5 110000 5 Region Manager 6 150000 6 Partner 7 200000 7 Senior Partner 8 300000 8 C-level 9 500000 9 CEO 10 1000000>

Hier das.info()>Die Methode bietet einen schnellen Überblick über die Struktur, die Datentypen und die Speichernutzung des Datensatzes.

Python3




df.info()>

>

>

Ausgabe:

 RangeIndex: 10 entries, 0 to 9 Data columns (total 3 columns):  # Column Non-Null Count Dtype  --- ------ -------------- -----   0 Position 10 non-null object  1 Level 10 non-null int64   2 Salary 10 non-null int64  dtypes: int64(2), object(1) memory usage: 372.0+ bytes>

Schritt 3: Datenaufbereitung

Hier extrahiert der Code zwei Teilmengen von Daten aus dem Datensatz und speichert sie in separaten Variablen.

  • Extrahierungsfunktionen: Es extrahiert die Features aus dem DataFrame und speichert sie in einer Variablen mit dem NamenX>.
  • Zielvariable extrahieren: Es extrahiert die Zielvariable aus dem DataFrame und speichert sie in einer Variablen mit dem Nameny>.

Python3




# Assuming df is your DataFrame> X>=> df.iloc[:,>1>:>2>].values>#features> y>=> df.iloc[:,>2>].values># Target variable>

>

Säureeigenschaften in DBMS

>

Schritt 4: Random Forest Regressor-Modell

Der Code verarbeitet kategoriale Daten, indem er sie numerisch kodiert, kombiniert die verarbeiteten Daten mit numerischen Daten und trainiert mithilfe der vorbereiteten Daten ein Random-Forest-Regressionsmodell.

Python3




import> pandas as pd> from> sklearn.ensemble>import> RandomForestRegressor> from> sklearn.preprocessing>import> LabelEncoder> >Check>for> and> handle categorical variables> label_encoder>=> LabelEncoder()> x_categorical>=> df.select_dtypes(include>=>[>'object'>]).>apply>(label_encoder.fit_transform)> x_numerical>=> df.select_dtypes(exclude>=>[>'object'>]).values> x>=> pd.concat([pd.DataFrame(x_numerical), x_categorical], axis>=>1>).values> # Fitting Random Forest Regression to the dataset> regressor>=> RandomForestRegressor(n_estimators>=>10>, random_state>=>0>, oob_score>=>True>)> # Fit the regressor with x and y data> regressor.fit(x, y)>

>

>

Schritt 5: Machen Sie Vorhersagen und bewerten Sie sie

Der Code wertet das trainierte Random Forest Regression-Modell aus:

  • Out-of-Bag-Score (OOB), der die Generalisierungsleistung des Modells schätzt.
  • Trifft Vorhersagen mithilfe des trainierten Modells und speichert sie im Array „Vorhersagen“.
  • Bewertet die Leistung des Modells anhand der Metriken „Mean Squared Error“ (MSE) und „R-Quadrat“ (R2).

Out-of-Bag-Score in RandomForest

Taschennote bzw OOB-Score ist die Art der Validierungstechnik, die hauptsächlich in Bagging-Algorithmen zur Validierung des Bagging-Algorithmus verwendet wird. Hier wird ein kleiner Teil der Validierungsdaten aus dem Mainstream der Daten entnommen und die Vorhersagen zu den jeweiligen Validierungsdaten erstellt und mit den anderen Ergebnissen verglichen.

NPM Clean Cache Force

Der Hauptvorteil des OOB-Scores besteht darin, dass hier die Validierungsdaten vom Bagging-Algorithmus nicht gesehen werden und die Ergebnisse des OOB-Scores daher die wahren Ergebnisse sind, die die tatsächliche Leistung des Bagging-Algorithmus anzeigen.

Um den OOB-Score des jeweiligen Random Forest-Algorithmus zu erhalten, muss man für den Parameter OOB_Score im Algorithmus den Wert True festlegen.

Python3




# Evaluating the model> from> sklearn.metrics>import> mean_squared_error, r2_score> # Access the OOB Score> oob_score>=> regressor.oob_score_> print>(f>'Out-of-Bag Score: {oob_score}'>)> # Making predictions on the same data or new data> predictions>=> regressor.predict(x)> # Evaluating the model> mse>=> mean_squared_error(y, predictions)> print>(f>'Mean Squared Error: {mse}'>)> r2>=> r2_score(y, predictions)> print>(f>'R-squared: {r2}'>)>

>

>

Ausgabe:

Out-of-Bag Score: 0.644879832593859 Mean Squared Error: 2647325000.0 R-squared: 0.9671801245316117>

Schritt 6: Visualisierung

Lassen Sie uns nun die Ergebnisse visualisieren, die wir durch die Verwendung des RandomForest-Regressionsmodells für unseren Gehaltsdatensatz erhalten haben.

  • Erstellt ein Raster aus Vorhersagepunkten, das den Bereich der Merkmalswerte abdeckt.
  • Stellt die tatsächlichen Datenpunkte als blaue Streupunkte dar.
  • Stellt die vorhergesagten Werte für das Vorhersageraster als grüne Linie dar.
  • Fügt der Handlung zum besseren Verständnis Beschriftungen und einen Titel hinzu.

Python3




import> numpy as np> X_grid>=> np.arange(>min>(X),>max>(X),>0.01>)> X_grid>=> X_grid.reshape(>len>(X_grid),>1>)> > plt.scatter(X,y, color>=>'blue'>)>#plotting real points> plt.plot(X_grid, regressor.predict(X_grid),color>=>'green'>)>#plotting for predict points> > plt.title(>'Random Forest Regression Results'>)> plt.xlabel(>'Position level'>)> plt.ylabel(>'Salary'>)> plt.show()>

Fizzbuzz Java

>

>

Ausgabe:

Screenshot-2023-12-04-101235

Schritt 7: Visualisierung eines einzelnen Entscheidungsbaums aus dem Random Forest-Modell

Der Code visualisiert einen der Entscheidungsbäume aus dem trainierten Random Forest-Modell. Stellt den ausgewählten Entscheidungsbaum grafisch dar und zeigt den Entscheidungsprozess eines einzelnen Baums innerhalb des Ensembles an.

Python3




from> sklearn.tree>import> plot_tree> import> matplotlib.pyplot as plt> # Assuming regressor is your trained Random Forest model> # Pick one tree from the forest, e.g., the first tree (index 0)> tree_to_plot>=> regressor.estimators_[>0>]> # Plot the decision tree> plt.figure(figsize>=>(>20>,>10>))> plot_tree(tree_to_plot, feature_names>=>df.columns.tolist(), filled>=>True>, rounded>=>True>, fontsize>=>10>)> plt.title(>'Decision Tree from Random Forest'>)> plt.show()>

>

>

Ausgabe:

Screenshot-2023-12-05-111140 Anwendungen der Random Forest Regression

Die Random-Forest-Regression weist eine Vielzahl realer Probleme auf, darunter:

  • Kontinuierliche numerische Werte vorhersagen: Vorhersage von Immobilienpreisen, Aktienkursen oder dem Customer Lifetime Value.
  • Risikofaktoren identifizieren: Risikofaktoren für Krankheiten, Finanzkrisen oder andere negative Ereignisse erkennen.
  • Umgang mit hochdimensionalen Daten: Analysieren von Datensätzen mit einer großen Anzahl von Eingabemerkmalen.
  • Komplexe Zusammenhänge erfassen: Modellierung komplexer Beziehungen zwischen Eingabemerkmalen und der Zielvariablen.

Vorteile der Random Forest Regression

  • Es ist einfach zu verwenden und reagiert weniger empfindlich auf die Trainingsdaten als der Entscheidungsbaum.
  • Es ist genauer als das Entscheidungsbaum Algorithmus.
  • Es ist effektiv bei der Verarbeitung großer Datensätze mit vielen Attributen.
  • Es kann mit fehlenden Daten umgehen, Ausreißer und laute Funktionen.

Nachteile der Random Forest Regression

  • Das Modell kann auch schwierig zu interpretieren sein.
  • Für diesen Algorithmus sind möglicherweise einige Domänenkenntnisse erforderlich, um die geeigneten Parameter wie die Anzahl der Entscheidungsbäume, die maximale Tiefe jedes Baums und die Anzahl der bei jeder Teilung zu berücksichtigenden Features auszuwählen.
  • Es ist rechenintensiv, insbesondere bei großen Datensätzen.
  • Es kann darunter leiden Überanpassung wenn das Modell zu komplex oder die Anzahl der Entscheidungsbäume zu hoch ist.

Abschluss

Die Random-Forest-Regression hat sich zu einem leistungsstarken Werkzeug für kontinuierliche Vorhersageaufgaben entwickelt und bietet Vorteile gegenüber herkömmlichen Entscheidungsbäumen. Seine Fähigkeit, hochdimensionale Daten zu verarbeiten, komplexe Beziehungen zu erfassen und Überanpassungen zu reduzieren, hat es zu einer beliebten Wahl für eine Vielzahl von Anwendungen gemacht. Die scikit-learn-Bibliothek von Python ermöglicht die Implementierung, Optimierung und Auswertung von Random-Forest-Regressionsmodellen und macht sie zu einer zugänglichen und effektiven Technik für Praktiker des maschinellen Lernens.

Häufig gestellte Fragen (FAQs)

1. Was ist Random Forest Regression Python?

Random Forest Regression Python ist eine Ensemble-Lernmethode, die mehrere Entscheidungsbäume verwendet, um Vorhersagen zu treffen. Es handelt sich um einen leistungsstarken und vielseitigen Algorithmus, der sich gut für Regressionsaufgaben eignet.

2. Wozu dient die zufällige Waldregression?

Mithilfe der Random-Forest-Regression können verschiedene Zielvariablen vorhergesagt werden, darunter Preise, Verkäufe, Kundenabwanderung und mehr. Es handelt sich um einen robusten Algorithmus, der nicht so leicht überangepasst werden kann, was ihn zu einer guten Wahl für reale Anwendungen macht.

3. Was ist der Unterschied zwischen Random Forest und Regression?

Random Forest ist eine Ensemble-Lernmethode, während Regression eine Art überwachter Lernalgorithmus ist. Random Forest verwendet mehrere Entscheidungsbäume, um Vorhersagen zu treffen, während die Regression ein einziges Modell verwendet, um Vorhersagen zu treffen.

4. Wie optimieren Sie die Hyperparameter der Random Forest Regression?

Es gibt verschiedene Methoden zum Optimieren der Hyperparameter der Random Forest Regression, wie zum Beispiel:

  • Rastersuche: Bei der Rastersuche werden systematisch verschiedene Kombinationen von Hyperparameterwerten ausprobiert, um die beste Kombination zu finden.
  • Zufallssuche: Bei der Zufallssuche werden zufällig verschiedene Kombinationen von Hyperparameterwerten abgetastet, um eine gute Kombination zu finden.

5. Warum ist Random Forest besser als Regression?

Random Forest ist im Allgemeinen genauer und robuster als die Regression. Es ist auch weniger anfällig für Überanpassungen, was bedeutet, dass es sich eher gut auf neue Daten verallgemeinern lässt.