Zacznij terazZacznij za darmo

Łączenie heurystyk

Inny analityk ds. cyberbezpieczeństwa informuje cię, że podczas pewnych typów ataków zainfekowany komputer źródłowy wysyła niewielkie porcje ruchu sieciowego, aby uniknąć wykrycia. To skłania cię do zastanowienia się, czy lepsze wyniki przyniosłaby kombinowana heurystyka, która jednocześnie szuka dużej liczby portów i małych rozmiarów pakietów. Czy takie podejście poprawia skuteczność w porównaniu z prostą heurystyką portową? Podobnie jak w poprzednim ćwiczeniu, w pamięci dostępne są zmienne X_train, X_test, y_train i y_test. Przykładowy kod pozwala odtworzyć wynik heurystyki portowej jako pred_port. Załadowane są również biblioteka numpy jako np oraz funkcja accuracy_score().

To ćwiczenie jest częścią kursu

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Kolumna average_packet oblicza średni rozmiar pakietu dla wszystkich przepływów zaobserwowanych z jednego źródła. Oblicz średnią tych wartości wyłącznie dla złośliwych źródeł w zbiorze treningowym.
  • Skonstruuj nową regułę, która oznacza jako pozytywne wszystkie źródła, których średni ruch jest mniejszy od powyższej wartości.
  • Połącz obie reguły tak, aby obie heurystyki musiały być spełnione jednocześnie – użyj odpowiedniej operacji arytmetycznej.
  • Wyznacz dokładność połączonej heurystyki.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____, ____))
Edytuj i uruchom kod