Kom igångKom igång gratis

Bygga inlärningskurvor

Om vi vill testa många olika värden för en enda hyperparameter kan det vara svårt att få en tydlig överblick i form av en DataFrame. Tidigare lärde du dig ett bra knep för att analysera detta. Ett diagram som kallas en "inlärningskurva" kan på ett tydligt sätt visa effekten av att öka eller minska en viss hyperparameter på slutresultatet.

I stället för att bara testa ett fåtal värden för inlärningshastigheten kommer du att testa många, för att enkelt se effekten av den här hyperparametern över ett stort värdeintervall. En användbar funktion från NumPy är np.linspace(start, end, num), som låter dig skapa ett antal värden (num) jämnt fördelade inom ett intervall (start, end) som du anger.

Du har tillgång till datamängderna X_train, X_test, y_train och y_test.

Den här övningen är en del av kursen

Hyperparameterjustering i Python

Visa kurs

Övningsinstruktioner

  • Skapa en lista med 30 inlärningshastigheter jämnt fördelade mellan 0,01 och 2.
  • Skapa en liknande slinga som i förra övningen, men spara bara noggrannhetsresultaten i en lista.
  • Plotta inlärningshastigheterna mot noggrannhetsresultatet.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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.____
Redigera och kör kod