AI-United » Allgemein » Anleitung für Anfänger zur Random Forest Regression

Anleitung für Anfänger zur Random Forest Regression

Random Forest Regression

Ein absoluter Anfänger auf dem Gebiet des maschinellen Lernens ist immer erstaunt und etwas verwirrt über seine unendlichen Möglichkeiten. Nach einigen frustrierenden Wochenenden und vielen Segnungen der Koffeingötter wird er dies schließlich in den Griff bekommen. Das Ziel dieses Artikels ist es, den anderen diesen Weg zu erleichtern, wobei ein Random Forest Regression-Modell behandelt wird. Wir fangen mit der Erklärung der Funktionsweise der Random Forests in einfachen Worten an und setzen dann mit einer einfachen Implementierung eines Random Forest Regression-Modells unter Verwendung von Scikit-learn fort, um den Neulingen den Start zu erleichtern.

Die Funktionsweise der Random Forests

Ein Random Forest ist ein Ensemble-Verfahren, das sowohl Regressions- als auch Klassifizierungsaufgaben unter Verwendung mehrerer Entscheidungsbäume und einer Methode mit dem Namen Bootstrap Aggregation (oft als Bagging bekannt) ausführen kann. Was versteht man unter Bagging? Beim Bagging im Random Forest-Verfahren umfasst das Training jedes Entscheidungsbaums auf eine andere Datenstichprobe, wobei das Stichprobenverfahren mit Ersetzen durchgeführt wird.

Random Forest Regression

Die Grundidee dahinter besteht darin, dass man sich auf einzelne Entscheidungsbäume nicht verlässt, sondern mehrere Entscheidungsbäume kombiniert werden, um die endgültige Ausgabe zu ermitteln.

Fangen wir an!

Um zu zeigen, wie ein Random Forest Regression-Model anhand von Python implementiert wird, müssen als erstes einige Bibliotheken importiert werden.

from sklearn.model_selection import cross_val_score, GridSearchCV
from sklearn.ensemble import RandomForestRegressor
from sklearn.preprocessing import MinMaxScaler

Hier wird mit Scikit-Learn angefangen. Es handelt sich um eine freie Software-Bibliothek zum maschinellen Lernen, die verschiedene Klassifikations-, Regressions- und Clustering-Algorithmen bietet. Und dies ist eine rettende Gnade für Liebhaber des maschinellen Lernens.

Gehen wir also direkt in den Wald. So sieht es aus:

def rfr_model(X, y):
# Perform Grid-Search
    gsc = GridSearchCV(
        estimator=RandomForestRegressor(),
        param_grid={
            'max_depth': range(3,7),
            'n_estimators': (10, 50, 100, 1000),
        },
        cv=5, scoring='neg_mean_squared_error', verbose=0,
n_jobs=-1)
    
    grid_result = gsc.fit(X, y)
    best_params = grid_result.best_params_
    
    rfr = RandomForestRegressor(max_depth=best_params["max_depth"], n_estimators=best_params["n_estimators"],
random_state=False, verbose=False)
# Perform K-Fold CV
   scores = cross_val_score(rfr, X, y, cv=10, scoring='neg_mean_absolute_error')

    return scores

Zunächst werden die Features-Werte (X) und die abhängigen Variablenwerte (y) des Datensatzes (in diesem Fall sind dies Pandas DataFrames) an die vom Random Forest Regression-Modell erstellte Methode geliefert. Dann wird die Grid Search Cross Validation- Methode (etwa Kreuzvalidierungsmethode für die Rastersuche) aus der Sklearn-Bibliothek verwendet, um die optimalen Werte für die Hyperparameter aus einem angegebenen Wertebereich des Modells festzustellen. Hier wurden zwei Hyperparameter zur Optimierung gewählt: max_depth und n_estimators. Gemäß der Sklearn-Dokumentation gilt max_depth für die maximale Tiefe des Baums und n_estimators für die Anzahl der Bäume im Wald. Idealerweise kann vom Modell eine bessere Leistung erwartet werden, wenn mehr Bäume vorhanden sind. Man muss jedoch mit den angegebenen Wertebereichen sehr vorsichtig sein und mit verschiedenen Werten experimentieren, um zu sehen, wie das Modell funktioniert.

Nach der Erstellung des Random Forest Regressor-Objekts wird es an die Funktion cross_val_score () geliefert. Ihre Aufgabe besteht darin, die K-Fold-Kreuzvalidierung für die angegebenen Daten durchzuführen und als Ausgabe einen Fehlermetrikwert bereitzustellen, der zur Bestimmung der Modellleistung dienen kann.

scores = cross_val_score(rfr, X, y, cv=10, scoring='neg_mean_absolute_error')

Eine 10-fache Kreuzvalidierung (spezifiziert durch den cv-Parameter) wurde verwendet. Es sollte darauf hingewiesen werden, dass der negative mittlere absolute Fehler (MAE/Mean Absolute Error) als Fehlermetrik, die durch den Scoring-Parameter angegeben wird, verwendet wird, um die Modellleistung zu messen. Je niedriger der mittlere absolute Wert ist, desto besser. Mithilfe der Funktion cross_val_predict () kann die Liste der vom Modell vorhergesagten Werte abgerufen werden.

predictions = cross_val_predict(rfr, X, y, cv=10)

Das wäre alles! Hoffentlich haben Sie ein grundlegendes Verständnis zum Random Forest Regression erhalten.

Möchten Sie mehr über Random Forest Regression erfahren, so können Sie sich an das Team von AI-United.de per Mail oder Q&A wenden.

Quelle

AI-United-Redaktion

Kommentar hinzufügen

Your email address will not be published. Required fields are marked *

300-101   400-101   300-320   300-070   300-206   200-310   300-135   300-208   810-403   400-050   640-916   642-997   300-209   400-201   200-355   352-001   642-999   350-080   MB2-712   400-051   C2150-606   1Z0-434   1Z0-146   C2090-919   C9560-655   642-64   100-101   CQE   CSSLP   200-125   210-060   210-065   210-260   220-801   220-802   220-901   220-902   2V0-620   2V0-621   2V0-621D   300-075   300-115   AWS-SYSOPS   640-692   640-911   1Z0-144   1z0-434   1Z0-803   1Z0-804   000-089   000-105   70-246   70-270   70-346   70-347   70-410