Есть ли недообучение?
Вы создаёте модель случайного леса для предсказания исхода будущей партии в крестики-нолики. Используя набор данных tic_tac_toe, вы сформировали обучающую и тестовую выборки: X_train, X_test, y_train и y_test.
Вы решили построить несколько моделей случайного леса с разным количеством деревьев (1, 2, 3, 4, 5, 10, 20 и 50). Чем больше деревьев, тем дольше обучается модель. Однако при слишком малом их числе возникает риск недообучения. Для проверки модели при каждом из значений создан цикл for.
Это упражнение является частью курса
Валидация моделей на Python
Инструкции к упражнению
- На каждой итерации цикла получите предсказания для наборов данных
X_trainиX_test. - На каждой итерации цикла добавьте значение
accuracy_score()для набораy_trainи соответствующих предсказаний в списокtrain_scores. - На каждой итерации цикла добавьте значение
accuracy_score()для набораy_testи соответствующих предсказаний в списокtest_scores. - Выведите результаты обучения и тестирования с помощью операторов вывода.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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(____))