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
Oefeninstructies
- Maak een data frame waarin elke rij een featurevector is voor een
source_computer. Groepeer op source computer-ID in deflows-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 metcross_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)))