Combiner des heuristiques
Un autre analyste en cybersécurité vous indique que, lors de certains types d'attaque, l'ordinateur source infecté envoie de petits volumes de trafic pour éviter la détection. Vous vous demandez donc s'il vaudrait mieux créer une heuristique combinée qui recherche simultanément un grand nombre de ports et de petites tailles de paquets. Est-ce que cela améliore la performance par rapport à la simple heuristique sur les ports? Comme dans l'exercice précédent, vous avez X_train, X_test, y_train et y_test en mémoire. Le code fourni vous aide aussi à reproduire le résultat de l'heuristique sur les ports, pred_port. Vous avez également numpy comme np et accuracy_score() déjà chargés.
Cette activité fait partie du cours
Concevoir des flux de travail Machine Learning en Python
Instructions de l’exercice
- La colonne
average_packetcalcule la taille moyenne des paquets pour tous les flux observés à partir d'une même source. Calculez la moyenne de ces valeurs pour les sources malveillantes seulement dans l'ensemble d'entraînement. - Construisez maintenant une nouvelle règle qui indique positif toute source dont le trafic moyen est inférieur à la valeur ci-dessus.
- Combinez les règles de sorte que les deux heuristiques doivent s'appliquer simultanément, en utilisant une opération arithmétique appropriée.
- Indiquez l'exactitude de l'heuristique combinée.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Compute the mean of average_packet for bad sources
avg_bad_packet = np.mean(____[____]['average_packet'])
# Label as positive if average_packet is lower than that
pred_packet = ____[____] < avg_bad_packet
# Find indices where pred_port and pred_packet both True
pred_port = X_test['unique_ports'] > avg_bad_ports
pred_both = pred_packet ____ pred_port
# Ports only produced an accuracy of 0.919. Is this better?
print(accuracy_score(____, ____))