Czy mój model jest niedouczony?
Tworzysz model lasu losowego, który ma przewidywać, czy wygrasz przyszłą partię kółko i krzyżyk. Korzystając ze zbioru danych tic_tac_toe, przygotowałeś zbiory treningowy i testowy: X_train, X_test, y_train oraz y_test.
Postanowiłeś zbudować kilka modeli lasu losowego z różną liczbą drzew (1, 2, 3, 4, 5, 10, 20 i 50). Im więcej drzew, tym dłużej trwa uczenie modelu. Jeśli jednak użyjesz ich zbyt mało, ryzykujesz niedouczenie. Przygotowałeś pętlę for, która testuje model przy każdej z tych liczb drzew.
To ćwiczenie jest częścią kursu
Walidacja modeli w Pythonie
Instrukcje do ćwiczenia
- W każdej iteracji pętli przewiduj wartości zarówno dla zbioru
X_train, jak iX_test. - W każdej iteracji pętli dodawaj do
train_scoreswartośćaccuracy_score()obliczoną dlay_traini odpowiadających im predykcji. - W każdej iteracji pętli dodawaj do
test_scoreswartośćaccuracy_score()obliczoną dlay_testi odpowiadających im predykcji. - Wyświetl wyniki dla zbioru treningowego i testowego za pomocą przygotowanych instrukcji
print.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
from sklearn.metrics import accuracy_score
test_scores, train_scores = [], []
for i in [1, 2, 3, 4, 5, 10, 20, 50]:
rfc = RandomForestClassifier(n_estimators=i, random_state=1111)
rfc.fit(X_train, y_train)
# Create predictions for the X_train and X_test datasets.
train_predictions = rfc.predict(____)
test_predictions = rfc.predict(____)
# Append the accuracy score for the test and train predictions.
train_scores.append(round(____(____, ____), 2))
test_scores.append(round(____(____, ____), 2))
# Print the train and test scores.
print("The training scores were: {}".format(____))
print("The testing scores were: {}".format(____))