Heim > Artikel > Backend-Entwicklung > Was ist die Random-Forest-Technik in Python?
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:
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.
In diesem Codebeispiel verwenden wir den integrierten Iris-Datensatz von scikit-learn:
def load_data(): data = load_iris() return data.data, data.target
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,以避免过度拟合。
在拟合和评估模型之前,我们需要将数据集拆分为训练集和测试集。在此示例中,我们将训练数据的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)
在此步骤中,我们使用拆分的数据进行训练和测试。我们使用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 accuracyIn 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.
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)
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!