Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist die Random-Forest-Technik in Python?

Was ist die Random-Forest-Technik in Python?

WBOY
WBOYOriginal
2023-06-04 21:51:172216Durchsuche

Was ist die Random-Forest-Technik in Python?

Random Forest ist ein leistungsstarker Ensemble-Lernalgorithmus, der auf Probleme wie Klassifizierung und Regression angewendet werden kann. Es besteht aus mehreren Entscheidungsbäumen, um die Genauigkeit und Robustheit einer kollektiven Entscheidungsfindung zu verbessern. Zu den Abhängigkeiten der Python-Bibliothek, die zum Erstellen von Random Forests erforderlich sind, gehört das Random Forest-Paket mit scikit-learn (sklearn).

Was ist Random Forest?

Random Forest ist ein überwachtes Lernmodell, das den Wert einer Ausgabevariablen durch Training anhand eines Datensatzes vorhersagt. Es funktioniert mit kontinuierlichen oder diskreten Ausgangsvariablen. Random Forest besteht aus mehreren Entscheidungsbäumen. Es wählt zufällig Variablen und Teilungspunkte auf konstruierten Teilungspunkten aus.

Was sind die Vorteile von Random Forest?

Random Forest hat mehrere wichtige Vorteile, die es zu einer der beliebtesten Vorhersagetechniken in der modernen Datenwissenschaft machen:

  1. Hohe Genauigkeit: Random Forest weist im Allgemeinen eine höhere Genauigkeit auf als andere Algorithmen für maschinelles Lernen. Es zeichnet sich durch den Umgang mit fehlenden Daten und Unsicherheiten aus.
  2. Ideal für große Datensätze: Zufällige Wälder skalieren sehr gut bei großen datenwissenschaftlichen Problemen, da sie aufgrund ihrer natürlichen Ensemblestruktur Systemressourcen effizienter verbrauchen.
  3. Kann mehrere Variablentypen verarbeiten: Random Forest ist nicht durch Datentyp oder Variablentyp beschränkt.
  4. Kann die Wichtigkeit von Merkmalen bestimmen: Random Forest kann die Auswirkung jeder Variablen im Datensatz auf das Modell messen und basierend auf der Wichtigkeit der Variablen auf die auffälligsten Trends und Muster in den Daten schließen.

Wie implementiert man eine zufällige Gesamtstruktur mit Python?

Die Implementierung von Random Forest erfordert die Installation der Python-Bibliothek scikit-learn (sklearn). Die Installationsschritte sind wie folgt:

pip install scikit-learn

Nach der Installation können wir die von der Sklearn-Bibliothek bereitgestellte API verwenden, um eine zufällige Gesamtstruktur zu implementieren.

Zuvor müssen Sie die erforderlichen Bibliotheken laden:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

Im Allgemeinen können wir die folgenden vier Schritte ausführen, um ein Zufallswaldmodell zu trainieren und es für Vorhersagen zu verwenden.

  1. Laden von Daten

In diesem Codebeispiel verwenden wir den integrierten Iris-Datensatz von scikit-learn:

def load_data():
    data = load_iris()
    return data.data, data.target
  1. Erstellen des Modells

In diesem Schritt erstellen wir einen zufälligen Waldklassifizierer mithilfe der Klasse RandomForestClassifier. Der Parameter n_estimators definiert die Anzahl der Bäume im Wald, wobei jeder Baum mit Zufallsstichproben und Variablen trainiert wird. Die empfohlene Anzahl an Bäumen hängt von der Größe des jeweiligen Problems ab. Das Überschreiten dieser Zahl führt zu einer längeren Trainingszeit, während zu wenige Bäume dazu führen können, dass das Modell überangepasst wird: n_estimators参数定义了森林的树数量,其中每个树在随机的样本和变量下训练。建议选择的树数取决于特定问题的大小。超出此数量会导致训练时间增加,而过少的树数可能导致模型过度拟合:

def create_model():
    model = RandomForestClassifier(n_estimators=100,
                                   max_depth=3,
                                   random_state=0)
    return model

在本例中,我们选择树的数量为100,并根据数据集的大小选择深度。我们将max_depth设置为3,以避免过度拟合。

  1. 拆分数据

在拟合和评估模型之前,我们需要将数据集拆分为训练集和测试集。在此示例中,我们将训练数据的70%用于训练模型,余下的30%用于评估模型:

def train_test_split_data(X, y, test_size=0.3):
    return train_test_split(X, y, test_size=test_size, random_state=0)
  1. 训练与评估模型

在此步骤中,我们使用拆分的数据进行训练和测试。我们使用fit()

def train_model(model, X_train, y_train):
    model.fit(X_train, y_train)
    return model

def evaluate_model(model, X_test, y_test):
    accuracy = model.score(X_test, y_test)
    return accuracy

In diesem Beispiel wählen wir die Anzahl der Bäume auf 100 und die Tiefe basierend auf der Größe des Datensatzes. Wir setzen max_ Depth auf 3, um eine Überanpassung zu vermeiden.

    Daten aufteilen

    Bevor wir das Modell anpassen und auswerten, müssen wir den Datensatz in einen Trainingssatz und einen Testsatz aufteilen. In diesem Beispiel verwenden wir 70 % der Trainingsdaten zum Trainieren des Modells und die restlichen 30 % zum Bewerten des Modells:

    from sklearn.ensemble import RandomForestClassifier
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    
    def load_data():
        data = load_iris()
        return data.data, data.target
    
    def create_model():
        model = RandomForestClassifier(n_estimators=100,
                                        max_depth=3,
                                        random_state=0)
        return model
    
    def train_test_split_data(X, y, test_size=0.3):
        return train_test_split(X, y, test_size=test_size, random_state=0)
    
    def train_model(model, X_train, y_train):
        model.fit(X_train, y_train)
        return model
    
    def evaluate_model(model, X_test, y_test):
        accuracy = model.score(X_test, y_test)
        return accuracy
    
    if __name__ == "__main__":
        X, y = load_data()
        X_train, X_test, y_train, y_test = train_test_split_data(X, y)
        model = create_model()
        trained_model = train_model(model, X_train, y_train)
        accuracy = evaluate_model(trained_model, X_test, y_test)
        print("Accuracy:", accuracy)
      🎜Training und Bewertung des Modells🎜🎜🎜In diesem Schritt führen wir Verwenden Sie geteilte Daten für Training und Tests. Wir trainieren das Modell mit der Methode fit() und bewerten die Genauigkeit des Modells anhand von Testdaten: 🎜rrreee🎜Der vollständige Code lautet wie folgt: 🎜rrreee🎜Schlussfolgerung🎜🎜Die Schritte zur Implementierung einer zufälligen Gesamtstruktur in Python umfassen das Laden von Daten, das Erstellen von Modellen, das Aufteilen von Daten sowie das Trainieren und Auswerten von Modellen. Random-Forest-Modelle können verwendet werden, um Klassifizierungs- und Regressionsprobleme effizient zu lösen und die Verarbeitung mehrerer Variablentypen zu unterstützen. Da Random Forests so flexibel sind, können sie an verschiedenste Anwendungsszenarien angepasst werden. 🎜

Das obige ist der detaillierte Inhalt vonWas ist die Random-Forest-Technik 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