Lasy losowe
Lasy losowe (random forests) to klasyczna i skuteczna metoda zespołowa, która łączy pojedyncze drzewa decyzyjne za pomocą agregacji bootstrapowej (tzw. bagging). Dwa główne hiperparametry tego modelu to liczba drzew oraz maksymalna głębokość każdego z nich. W tym ćwiczeniu zaimplementujesz i ocenisz prosty klasyfikator oparty na lasach losowych z ustalonymi wartościami hiperparametrów.
W przestrzeni roboczej dostępne są: X_train, y_train, X_test, y_test. Załadowane są również biblioteki pandas jako pd, numpy jako np oraz sklearn. Do dyspozycji masz także klasę RandomForestClassifier() z modułu sklearn.ensemble, a także funkcje roc_curve() i auc() z modułu sklearn.metrics.
To ćwiczenie jest częścią kursu
Przewidywanie CTR z użyciem uczenia maszynowego w Pythonie
Instrukcje do ćwiczenia
- Utwórz klasyfikator lasów losowych z 50 drzewami i maksymalną głębokością równą 5.
- Wytrenuj klasyfikator, a następnie pobierz prawdopodobieństwa za pomocą
.predict_proba()oraz predykcje za pomocą.predict()dla danych testowych. - Wyznacz pole pod krzywą ROC: najpierw użyj funkcji
roc_curve(), aby obliczyćfpritpr, a następnie zastosujauc()na wynikach. - Oblicz precyzję i czułość klasyfikatora.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create random forest classifier with specified params
clf = ____(____ = 50, ____ = 5)
# Train classifier - predict probability score and label
y_score = clf.____(X_train, y_train).____(X_test)
y_pred = clf.____(X_train, y_train).____(X_test)
# Get ROC curve metrics
fpr, tpr, thresholds = ____(y_test, y_score[:, 1])
print("ROC of AUC: %s"%(____(fpr, tpr)))
# Get precision and recall
precision = ____(y_test, y_pred, average = 'weighted')
recall = ____(y_test, y_pred, average = 'weighted')
print("Precision: %s, Recall: %s" %(precision, recall))