Je problémový zdrojový, nebo cílový počítač?
V předchozí lekci jsi jako sledovanou entitu používal cílový počítač. Jenže tvůj analytik kybernetické bezpečnosti tě upozornil, že závadný provoz generují infikované stroje – a ty se v datasetu flows objevují jako zdroj, nikoli jako cíl.
Data flows jsou předem načtena, stejně jako seznam bad s ID infikovaných strojů a extraktor příznaků featurizer() z předchozí lekce. K dispozici máš také numpy jako np, AdaBoostClassifier() a cross_val_score().
Toto cvičení je součástí kurzu
Designing Machine Learning Workflows in Python
Pokyny k cvičení
- Vytvoř datový rámec, kde každý řádek je vektor příznaků pro jeden
source_computer. Seskup záznamy v datasetuflowspodle ID zdrojového počítače a na každou skupinu aplikuj extraktor příznaků. - Převeď iterátor na datový rámec voláním
list(). - Vytvoř labely tak, že ověříš, zda ID každého
source_computerpatří do seznamu infikovaných strojůbad. - Vyhodnoť
AdaBoostClassifier()na těchto datech pomocícross_val_score().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)))