Construir curvas de aprendizaje
Si queremos probar muchos valores diferentes para un único hiperparámetro, puede ser difícil verlo de forma clara en un DataFrame. Antes aprendiste un truco útil para analizar esto. Un gráfico llamado “curva de aprendizaje” muestra muy bien el efecto de aumentar o disminuir un hiperparámetro concreto en el resultado final.
En lugar de probar solo unos pocos valores para la tasa de aprendizaje, vas a probar muchos para ver fácilmente el efecto de este hiperparámetro en un amplio rango de valores. Una función útil de NumPy es np.linspace(start, end, num), que te permite crear una cantidad de valores (num) distribuidos de forma uniforme dentro de un intervalo (start, end) que especifiques.
Tendrás disponibles los conjuntos de datos X_train, X_test, y_train y y_test.
Este ejercicio forma parte del curso
Ajuste de hiperparámetros en Python
Instrucciones del ejercicio
- Crea una lista de 30 tasas de aprendizaje, distribuidas uniformemente entre 0.01 y 2.
- Crea un bucle similar al del ejercicio anterior, pero guarda solo las puntuaciones de exactitud en una lista.
- Dibuja las tasas de aprendizaje frente a la puntuación de exactitud.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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.____