Автоматизація вибору гіперпараметрів
Знаходження найкращого гіперпараметра без написання сотень рядків коду для сотень моделей — це важливе підвищення ефективності, яке суттєво допоможе вам у подальшому створенні моделей машинного навчання.
Важливим гіперпараметром для алгоритму GBM є швидкість навчання (learning rate). Але яка швидкість навчання найкраща для цієї задачі? Напишіть цикл, який перебере кілька варіантів, збере результати та перегляне їх — так ви зможете знайти оптимальне значення.
Можливі значення швидкості навчання для перевірки: 0.001, 0.01, 0.05, 0.1, 0.2 та 0.5
У вашому розпорядженні будуть набори даних X_train, X_test, y_train і y_test, а GradientBoostingClassifier уже імпортовано для вас.
Ця вправа є частиною курсу
Тюнінг гіперпараметрів у Python
Інструкції до вправи
- Створіть список
learning_ratesдля швидкостей навчання таresults_listдля збереження значень точності ваших передбачень. - Напишіть цикл, який створюватиме модель GBM для кожної зазначеної швидкості навчання та формуватиме передбачення для кожної моделі.
- Збережіть пару «швидкість навчання — точність» у
results_list. - Перетворіть список результатів на DataFrame і виведіть його.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Set the learning rates & results storage
learning_rates = ____
results_list = ____
# Create the for loop to evaluate model predictions for each learning rate
for learning_rate in ____:
model = ____(learning_rate=____)
predictions = ____.fit(____, ____).predict(____)
# Save the learning rate and accuracy score
results_list.append([____, accuracy_score(y_test, ____)])
# Gather everything into a DataFrame
results_df = pd.DataFrame(____, columns=['learning_rate', 'accuracy'])
print(results_df)