Visualizzazione delle prestazioni del modello di classificazione
In questo esercizio risolverai un problema di classificazione in cui la colonna "popularity" del dataset music_df è stata convertita in valori binari, con 1 che rappresenta la popolarità superiore o uguale alla mediana della colonna "popularity" e 0 che indica la popolarità inferiore alla mediana.
Il tuo compito è quello di costruire e visualizzare i risultati di tre diversi modelli per classificare se una canzone è popolare o meno.
I dati sono stati suddivisi, scalati e precaricati come X_train_scaled, X_test_scaled, y_train e y_test. Inoltre, sono stati importati KNeighborsClassifier, DecisionTreeClassifier e LogisticRegression.
Questo esercizio fa parte del corso
Apprendimento supervisionato con scikit-learn
Istruzioni dell'esercizio
- Crea un dizionario di
"Logistic Regression","KNN"e"Decision Tree Classifier", impostando i valori del dizionario su una chiamata di ciascun modello. - Esegui il loop dei valori in
models. - Istanzia un oggetto
KFoldper eseguire 6 suddivisioni, impostandoshufflesuTrueerandom_statesu12. - Esegui la convalida incrociata utilizzando il modello, le caratteristiche di addestramento scalate, il set di addestramento target e impostando
cvuguale akf.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create models dictionary
models = {"____": ____(), "____": ____(), "____": ____()}
results = []
# Loop through the models' values
for model in ____.____():
# Instantiate a KFold object
kf = ____(n_splits=____, random_state=____, shuffle=____)
# Perform cross-validation
cv_results = ____(____, ____, ____, cv=____)
results.append(cv_results)
plt.boxplot(results, labels=models.keys())
plt.show()