LoslegenKostenlos loslegen

Heuristiken kombinieren

Eine andere Cyber-Analystin sagt dir, dass bei bestimmten Angriffstypen der infizierte Quellrechner nur kleine Datenmengen sendet, um nicht entdeckt zu werden. Das bringt dich auf die Idee, eine kombinierte Heuristik zu bauen, die gleichzeitig nach vielen angesprochenen Ports und kleinen Paketgrößen sucht. Verbessert das die Performance gegenüber der einfachen Port-Heuristik? Wie in der letzten Übung hast du X_train, X_test, y_train und y_test im Speicher. Der Beispielcode hilft dir auch, das Ergebnis der Port-Heuristik (pred_port) nachzubilden. Außerdem sind numpy als np und accuracy_score() vorab geladen.

Diese Übung ist Teil des Kurses

Machine-Learning-Workflows in Python entwerfen

Kurs anzeigen

Anleitung zur Übung

  • Die Spalte average_packet berechnet die durchschnittliche Paketgröße über alle Flows, die von einer einzelnen Quelle beobachtet wurden. Bestimme den Mittelwert dieser Werte nur für schlechte Quellen im Trainingssatz.
  • Konstruiere nun eine neue Regel, die alle Quellen als positiv markiert, deren durchschnittlicher Traffic kleiner ist als der oben berechnete Wert.
  • Kombiniere die Regeln so, dass beide Heuristiken gleichzeitig gelten müssen, und nutze dafür eine geeignete arithmetische Operation.
  • Gib die Genauigkeit der kombinierten Heuristik aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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(____, ____))
Code bearbeiten und ausführen