Zacznij terazZacznij za darmo

Zamiana heurystyki w klasyfikator

Odkrycie, że heurystyki mogą być tak użyteczne, jest zaskakujące. Postanawiasz zatem potraktować heurystykę „zbyt wiele unikalnych portów wzbudza podejrzenie" jako samodzielny klasyfikator. W tym celu wyznaczysz próg na podstawie średniej liczby unikalnych portów używanych przez złe komputery źródłowe – czyli takie, dla których etykieta wynosi True. Zbiór danych jest już wczytany i podzielony na dane treningowe i testowe, więc w pamięci masz obiekty X_train, X_test, y_train i y_test. Dostępne importy obejmują accuracy_score() oraz numpy jako np. Pamiętaj: w tym ćwiczeniu nie korzystasz z gotowego klasyfikatora scikit-learn – zamiast tego jawnie definiujesz własną regułę klasyfikacji!

To ćwiczenie jest częścią kursu

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Wybierz z X_train wszystkie złe hosty i zapisz je jako nowy zbiór danych X_train_bad. Zwróć uwagę, że y_train jest tablicą wartości logicznych (Boolean).
  • Oblicz średnią kolumny unique_ports dla złych hostów i zapisz wynik w zmiennej avg_bad_ports.
  • Zdefiniuj klasyfikator, który przewiduje klasę pozytywną dla każdego przykładu, którego wartość unique_ports przekracza avg_bad_ports. Zapisz predykcje tego klasyfikatora dla danych testowych w nowej zmiennej pred_port.
  • Oblicz dokładność tego klasyfikatora na danych testowych, używając accuracy_score().

Interaktywne ćwiczenie praktyczne

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

# Create a new dataset X_train_bad by subselecting bad hosts
X_train_bad = ____[____]

# Calculate the average of unique_ports in bad examples
avg_bad_ports = np.____(____['unique_ports'])

# Label as positive sources that use more ports than that
pred_port = ____['unique_ports'] > ____

# Print the accuracy of the heuristic
print(____(y_test, ____))
Edytuj i uruchom kod