Kombinera heuristiker
En annan cyberanalytiker berättar att infekterade källdatorer under vissa typer av attacker skickar små trafikmängder för att undvika upptäckt. Det får dig att fundera på om det vore bättre att skapa en kombinerad heuristik som samtidigt söker efter ett stort antal portar och små paketstorlekar. Förbättrar detta resultatet jämfört med den enkla portheuristiken? Precis som i föregående övning finns X_train, X_test, y_train och y_test i minnet. Exempelkoden hjälper dig också att återskapa resultatet från portheuristiken, pred_port. Du har även numpy som np och accuracy_score() förinlästa.
Den här övningen är en del av kursen
Att designa maskininlärningsflöden i Python
Övningsinstruktioner
- Kolumnen
average_packetberäknar den genomsnittliga paketstorleken för alla flöden som observerats från en enskild källa. Beräkna medelvärdet för dessa värden, men enbart för dåliga källor i träningsuppsättningen. - Skapa nu en ny regel som flaggar alla källor vars genomsnittliga trafik är lägre än värdet ovan som positiva.
- Kombinera reglerna så att båda heuristikerna måste gälla samtidigt, med hjälp av en lämplig aritmetisk operation.
- Rapportera noggrannheten för den kombinerade heuristiken.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____, ____))