IniziaInizia gratis

È la sorgente o la destinazione a essere compromessa?

Nella lezione precedente hai usato il computer di destinazione come entità di interesse. Tuttavia, la tua analista di cybersecurity ti ha appena detto che sono le macchine infette a generare il traffico malevolo e quindi compaiono come sorgente, non come destinazione, nel dataset flows.

I dati flows sono già stati caricati, così come la lista bad degli ID infetti e l'estrattore di feature featurizer() dalla lezione precedente. Hai anche numpy disponibile come np, AdaBoostClassifier() e cross_val_score().

Questo esercizio fa parte del corso

Progettare workflow di Machine Learning in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un data frame in cui ogni riga è un vettore di feature per un source_computer. Fai il group by per ID del computer sorgente nel dataset flows e applica l'estrattore di feature a ciascun gruppo.
  • Converti l'iteratore in un data frame chiamando list() su di esso.
  • Crea le etichette verificando se ciascun ID di source_computer appartiene alla lista dei “cattivi” che ti è stata fornita.
  • Valuta un AdaBoostClassifier() su questi dati usando cross_val_score().

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Group by source computer, and apply the feature extractor
out = flows.____('source_computer').____(featurize)

# Convert the iterator to a dataframe by calling list on it
X = pd.DataFrame(____, index=____)

# Check which sources in X.index are bad to create labels
y = [x in bads for x in ____]

# Report the average accuracy of Adaboost over 3-fold CV
print(np.mean(____(____, X, y)))
Modifica ed esegui il codice