La source ou la destination est-elle en cause ?
Dans la leçon précédente, vous aviez utilisé l’ordinateur de destination comme entité d’intérêt. Cependant, votre analyste cybersécurité vient de vous préciser que ce sont les machines infectées qui génèrent le trafic malveillant et apparaissent donc comme source, et non comme destination, dans le jeu 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 également numpy disponible sous np, AdaBoostClassifier(), et cross_val_score().
Cet exercice fait partie du cours
Concevoir des workflows de Machine Learning en Python
Instructions
- Créez un data frame où chaque ligne est un vecteur de caractéristiques pour un
source_computer. Regroupez par identifiant d’ordinateur source dans le jeu de donnéesflowset appliquez l’extracteur de caractéristiques à chaque groupe. - Convertissez l’itérateur en data frame en appelant
list()dessus. - Créez les étiquettes en vérifiant si chaque identifiant
source_computerappartient à la liste des machines infectées 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 cet exemple de code.
# 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)))