ComenzarEmpieza gratis

Combinar heurísticas

Otra analista de ciberseguridad te comenta que, en ciertos tipos de ataque, el equipo de origen infectado envía pequeños fragmentos de tráfico para evitar ser detectado. Esto te hace pensar si no sería mejor crear una heurística combinada que busque simultáneamente un gran número de puertos y tamaños de paquete pequeños. ¿Mejora esto el rendimiento frente a la heurística simple de puertos? Como en el ejercicio anterior, tienes X_train, X_test, y_train y y_test en memoria. El código de ejemplo también te ayuda a reproducir el resultado de la heurística de puertos, pred_port. Además, tienes numpy como np y accuracy_score() precargados.

Este ejercicio forma parte del curso

Diseño de flujos de trabajo de Machine Learning en Python

Ver curso

Instrucciones del ejercicio

  • La columna average_packet calcula el tamaño medio de los paquetes en todos los flujos observados desde una única fuente. Calcula la media de esos valores para las fuentes maliciosas únicamente en el conjunto de entrenamiento.
  • Ahora construye una nueva regla que marque como positivas todas las fuentes cuya media de tráfico sea inferior al valor anterior.
  • Combina las reglas de forma que ambas heurísticas se apliquen simultáneamente, usando una operación aritmética adecuada.
  • Informa de la exactitud de la heurística combinada.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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(____, ____))
Editar y ejecutar código