Construirea curbelor de învățare
Atunci când vrei să testezi mai multe valori pentru un singur hiperparametru, poate fi dificil să le analizezi ușor sub forma unui DataFrame. Ai aflat anterior despre un truc util pentru a face asta. Un grafic numit „curbă de învățare" poate ilustra clar efectul creșterii sau scăderii unui anumit hiperparametru asupra rezultatului final.
În loc să testezi doar câteva valori pentru rata de învățare, vei testa multe valori pentru a vedea cu ușurință efectul acestui hiperparametru pe un interval larg. O funcție utilă din NumPy este np.linspace(start, end, num), care îți permite să creezi un număr de valori (num) distribuite uniform într-un interval (start, end) pe care îl specifici.
Vei avea la dispoziție seturile de date X_train, X_test, y_train și y_test.
Acest exercițiu face parte din cursul
Ajustarea hiperparametrilor în Python
Instrucțiuni pentru exercițiu
- Creează o listă cu 30 de rate de învățare distribuite uniform între 0,01 și 2.
- Creează o buclă similară cu cea din exercițiul anterior, dar salvează doar scorurile de acuratețe într-o listă.
- Reprezintă grafic ratele de învățare față de scorul de acuratețe.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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.____