Combinando heurísticas
Um(a) analista de cibersegurança diferente diz que, em certos tipos de ataque, o computador de origem infectado envia pequenos pedaços de tráfego para evitar detecção. Isso faz você pensar se não seria melhor criar uma heurística combinada que analise simultaneamente um grande número de portas e tamanhos de pacotes pequenos. Isso melhora o desempenho em relação à heurística simples de portas? Como no último exercício, você tem X_train, X_test, y_train e y_test em memória. O código de exemplo também ajuda você a reproduzir o resultado da heurística de portas, pred_port. Você também tem numpy como np e accuracy_score() pré-carregados.
Este exercício faz parte do curso
Projetando Workflows de Machine Learning em Python
Instruções do exercício
- A coluna
average_packetcalcula o tamanho médio do pacote em todos os fluxos observados a partir de uma única origem. Tire a média desses valores apenas para as origens maliciosas no conjunto de treino. - Agora, construa uma nova regra que marque como positivo todas as origens cujo tráfego médio seja menor que o valor acima.
- Combine as regras de forma que ambas as heurísticas precisem se aplicar simultaneamente, usando uma operação aritmética apropriada.
- Informe a acurácia da heurística combinada.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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(____, ____))