Aan de slagGa gratis aan de slag

Is de bron of de bestemming slecht?

In de vorige les gebruikte je de bestemmings-computer als je entiteit van interesse. Je cybersecurity-analist liet je echter weten dat de geïnfecteerde machines het slechte verkeer genereren en daarom als bron verschijnen, niet als bestemming, in de flows-gegevensset.

De gegevens flows zijn al geladen, net als de lijst bad met geïnfecteerde ID's en de feature-extractor featurizer() uit de vorige les. Je hebt ook numpy als np, AdaBoostClassifier() en cross_val_score() beschikbaar.

Deze oefening maakt deel uit van de cursus

Machine Learning-workflows ontwerpen in Python

Cursus bekijken

Oefeninstructies

  • Maak een data frame waarin elke rij een featurevector is voor een source_computer. Groepeer op source computer-ID in de flows-gegevensset en pas de feature-extractor toe op elke groep.
  • Zet de iterator om naar een data frame door er list() op aan te roepen.
  • Maak labels door te controleren of elke source_computer-ID voorkomt in de lijst met slechte ID's die je hebt gekregen.
  • Beoordeel een AdaBoostClassifier() op deze data met cross_val_score().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)))
Code bewerken en uitvoeren