Kom igångKom igång gratis

Omvandla en heuristik till en klassificerare

Du förvånas över hur användbara heuristiker kan vara. Därför bestämmer du dig för att behandla heuristiken "för många unika portar är misstänkt" som en klassificerare i sig. Du uppnår detta genom att tröskvärda antalet unika portar per källa mot det genomsnittliga antalet som används i dåliga källdatorer – det vill säga datorer vars etikett är True. Datamängden är förladdad och uppdelad i träning och test, så du har objekten X_train, X_test, y_train och y_test i minnet. Dina importer inkluderar accuracy_score() och numpy som np. Observera att du inte ska anpassa en klassificerare från scikit-learn i den här övningen – i stället definierar du din egen klassificeringsregel explicit!

Den här övningen är en del av kursen

Att designa maskininlärningsflöden i Python

Visa kurs

Övningsinstruktioner

  • Välj ut alla dåliga värdar från X_train för att skapa en ny datamängd, X_train_bad. Observera att y_train är en boolesk array.
  • Beräkna medelvärdet av kolumnen unique_ports för dåliga värdar och lagra det i avg_bad_ports.
  • Definiera nu en klassificerare som förutsäger positivt för varje exempel vars unique_ports överstiger avg_bad_ports. Spara klassificerarens förutsägelser på testdata i en ny variabel, pred_port.
  • Beräkna klassificerarens noggrannhet på testdata med hjälp av accuracy_score().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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, ____))
Redigera och kör kod