La source ou la destination est-elle en cause?
Dans la leçon précédente, vous avez utilisé l'ordinateur de destination comme entité d'intérêt. Toutefois, votre analyste en cybersécurité vient de vous informer que ce sont les machines infectées qui génèrent le mauvais trafic et qu'elles apparaîtront donc comme une source, et non comme une destination, dans l'ensemble de données flows.
Les données flows ont été préchargées, ainsi que la liste bad des identifiants infectés et l'extracteur de caractéristiques featurizer() de la leçon précédente. Vous avez aussi accès à numpy sous np, à AdaBoostClassifier() et à cross_val_score().
Cette activité fait partie du cours
Concevoir des flux de travail Machine Learning en Python
Instructions de l’exercice
- Créez une trame de données où chaque ligne est un vecteur de caractéristiques pour un
source_computer. Regroupez par identifiant d'ordinateur source dans l'ensembleflowset appliquez l'extracteur de caractéristiques à chaque groupe. - Convertissez l'itérateur en trame de données en appelant
list()dessus. - Créez les étiquettes en vérifiant si chaque identifiant
source_computerappartient à la liste des ordinateurs malveillants qui vous a été fournie. - Évaluez un
AdaBoostClassifier()sur ces données à l'aide decross_val_score().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)))