Modeling senza normalizzazione
Vediamo cosa può succedere all'accuratezza del tuo modello se provi a modellare i dati senza prima applicare una qualche forma di standardizzazione.
Qui abbiamo un sottoinsieme del dataset wine. Una delle colonne, Proline, ha una varianza estremamente elevata rispetto alle altre. Questo è un esempio in cui una tecnica come la normalizzazione logaritmica tornerebbe utile, e la imparerai nella prossima sezione.
A questo punto il processo di training dei modelli con scikit-learn dovrebbe esserti familiare, quindi non entreremo troppo nei dettagli. Hai già a disposizione un modello k-nearest neighbors (knn), oltre agli insiemi X e y necessari per eseguire fit e valutazione.
Questo esercizio fa parte del corso
Preprocessing per il Machine Learning in Python
Istruzioni dell'esercizio
- Suddividi gli insiemi
Xeyin training e test set, assicurando che le etichette di classe siano distribuite equamente in entrambi i set. - Esegui il fit del modello
knnsui dati di training (feature ed etichette). - Stampa l'accuratezza sul test set del modello
knnusando il metodo.score().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Split the dataset into training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, stratify=____, random_state=42)
knn = KNeighborsClassifier()
# Fit the knn model to the training data
knn.____(____, ____)
# Score the model on the test data
print(knn.____(____))