CommencerCommencer gratuitement

Combiner des heuristiques

Un autre analyste 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 serait préférable de créer une heuristique combinée qui recherche simultanément un grand nombre de ports et de petites tailles de paquets. Cela améliore-t-il les performances 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. L’exemple de code vous aide également à reproduire le résultat de l’heuristique sur les ports, pred_port. Vous avez aussi numpy sous l’alias np et accuracy_score() préchargés.

Cet exercice fait partie du cours

Concevoir des workflows de Machine Learning en Python

Afficher le cours

Instructions

  • La colonne average_packet calcule la taille moyenne des paquets sur tous les flux observés depuis une même source. Calculez la moyenne de ces valeurs pour les sources malveillantes uniquement sur l’ensemble d’entraînement.
  • Construisez maintenant une nouvelle règle qui marque comme positives toutes les sources dont le trafic moyen est inférieur à la valeur ci-dessus.
  • Combinez les règles de sorte que les deux heuristiques s’appliquent 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 cet exemple de code.

# 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(____, ____))
Modifier et exécuter le code