IniziaInizia gratis

Feature engineering su dati raggruppati

Ora farai un passo avanti rispetto all’esercizio precedente, considerando una feature aggiuntiva: il numero di protocolli unici utilizzati da ciascun computer sorgente. Nota che con dati raggruppati è sempre possibile costruire feature in questo modo: puoi prendere il numero di elementi unici di tutte le colonne categoriche e la media di tutte le colonne numeriche come punto di partenza. Come prima, hai flows precaricato, cross_val_score() per misurare l’accuratezza, AdaBoostClassifier(), pandas come pd e numpy come np.

Questo esercizio fa parte del corso

Progettare workflow di Machine Learning in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Applica una funzione lambda sull’iteratore dei gruppi fornito per calcolare il numero di protocolli unici utilizzati da ciascun computer sorgente. Puoi usare set() per ridurre la colonna protocol a un insieme di valori unici.
  • Converti il risultato in un data frame con la forma corretta fornendo un indice e assegnando alla colonna il nome protocol.
  • Concatena il nuovo data frame con quello precedente, disponibile come X.
  • Valuta l’accuratezza di AdaBoostClassifier() su questo nuovo insieme di dati usando cross_val_score().

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create a feature counting unique protocols per source
protocols = flows.groupby('source_computer').apply(
  lambda df: ____)

# Convert this feature into a dataframe, naming the column
protocols_DF = pd.DataFrame(
  protocols, index=____, columns=____)

# Now concatenate this feature with the previous dataset, X
X_more = pd.concat([X, ____], axis=____)

# Refit the classifier and report its accuracy
print(____(____(
  AdaBoostClassifier(), ____, y)))
Modifica ed esegui il codice