Построение кривых обучения
Если нужно проверить множество значений одного гиперпараметра, анализировать их в виде DataFrame бывает неудобно. Ранее вы познакомились с удобным приёмом для такого анализа. График, называемый «кривой обучения», наглядно показывает, как увеличение или уменьшение конкретного гиперпараметра влияет на итоговый результат.
Вместо того чтобы проверять лишь несколько значений скорости обучения, вы протестируете их большое количество — это позволит наглядно увидеть влияние данного гиперпараметра на широком диапазоне значений. Удобный инструмент для этого — функция NumPy np.linspace(start, end, num), которая создаёт заданное количество значений (num), равномерно распределённых в указанном интервале (start, end).
Вам доступны наборы данных X_train, X_test, y_train и y_test.
Это упражнение является частью курса
Подбор гиперпараметров в Python
Инструкции к упражнению
- Создайте список из 30 значений скорости обучения, равномерно распределённых в диапазоне от 0,01 до 2.
- Напишите цикл, аналогичный циклу из предыдущего упражнения, но сохраняйте только значения точности в список.
- Постройте график зависимости точности от скорости обучения.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []
# Create the for loop
for learn_rate in learn_rates:
# Create the model, predictions & save the accuracies as before
model = GradientBoostingClassifier(learning_rate=____)
predictions = model.fit(____, ____).predict(____)
accuracies.append(accuracy_score(y_test, ____))
# Plot results
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____