Un modello di bagging più complesso
Dopo aver esplorato i dati dei semiconduttori, costruiamo ora un classificatore bagging per prevedere l'etichetta 'Pass/Fail' date le feature in input.
Il dataset preprocessato è disponibile nel tuo workspace come uci_secom, e i set di training e test sono già stati creati per te.
Poiché il target presenta un forte sbilanciamento tra le classi, usa una regressione logistica "balanced" come stimatore di base.
Ridurremo anche il tempo di calcolo per LogisticRegression con il parametro solver='liblinear', che è un ottimizzatore più veloce rispetto al valore predefinito.
Questo esercizio fa parte del corso
Metodi Ensemble in Python
Istruzioni dell'esercizio
- Istanzia una regressione logistica da usare come classificatore di base con i parametri:
class_weight='balanced',solver='liblinear'erandom_state=42. - Costruisci un classificatore bagging usando la regressione logistica come stimatore di base, specificando il numero massimo di feature pari a
10e includendo l'out-of-bag score. - Stampa l'out-of-bag score per confrontarlo con l'accuracy.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Build a balanced logistic regression
clf_lr = ____
# Build and fit a bagging classifier
clf_bag = ____(____, ____, ____, random_state=500)
clf_bag.fit(X_train, y_train)
# Evaluate the accuracy on the test set and show the out-of-bag score
pred = clf_bag.predict(X_test)
print('Accuracy: {:.2f}'.format(accuracy_score(y_test, pred)))
print('OOB-Score: {:.2f}'.format(____))
# Print the confusion matrix
print(confusion_matrix(y_test, pred))