Das folgende Python 3 Code-Snippet demonstriert die Implementierung eines einfachen Random Forrest Machine Learning Klassifizierungsmodells, um einen Ausgabewert anhand von Eingabewerten vorherzusagen.
Im Beispiel wird zunächst eine CSV Datei geladen, die diverse Eingabe-Spalten (X) sowie eine Spalte mit dem durch das Modell vorherzusagenen Wert (Y) enthält. Anschließend werden die Daten in eine Trainings und eine Test-Menge unterteilt, bevor das Modell trainiert wird. Mit dem Aufruf model.score wird die Qualität des generierten Modells anhand der Test-Daten überprüft - die Ausgabe der Variable model.feature_importances_ liefert ein Array mit der Wichtigkeit der jeweiligen Eingabespalte.
Für den Beispiel-Code muss die Scikit-learn sowie die Pandas Bibliothek installiert sein (pip install sklearn, pip install pandas).
from sklearn.ensemble import RandomForestClassifier
from sklearn import model_selection
import pandas as pd
import numpy as np
# load csv data
input_data_1 = pd.read_csv("prediction-input-1.txt", sep="\t")
# prepare column to be predicted
input_data_1['Transactions'] = np.where(input_data_1['Transactions'] == 0, input_data_1['Transactions'], 1)
Y = np.array(input_data_1['Transactions'])
# select features (= columns used as input for prediction)
features = list(input_data_1.columns)
del features[5]
del features[0]
X = input_data_1[features]
# split data into test and train set
test_size = 0.33
seed = 77
X_train, X_test, Y_train, Y_test = model_selection.train_test_split(X, Y, test_size=test_size, random_state=seed)
# build and train model
model = RandomForestClassifier(n_estimators=100, n_jobs=2, random_state=0, max_depth=10)
model.fit(X_train, Y_train)
# test model quality
result = model.score(X_test, Y_test)
print(result)
# print vector with feature importances
print(model.feature_importances_)