Z heuristiky ke klasifikátoru
Překvapilo tě, jak užitečné mohou heuristiky být. Rozhodneš se proto vzít heuristiku „příliš mnoho unikátních portů je podezřelé" a použít ji přímo jako klasifikátor. Uděláš to tak, že počet unikátních portů na zdrojový počítač prahujete průměrným počtem portů u „špatných" zdrojových počítačů – tedy těch, u nichž je label True. Datová sada je předem načtená a rozdělená na trénovací a testovací část, takže máš v paměti objekty X_train, X_test, y_train a y_test. K dispozici máš také accuracy_score() a numpy jako np. Upozornění: v tomto cvičení nebudeš trénovat klasifikátor ze scikit-learn, ale místo toho si definuješ vlastní klasifikační pravidlo ručně!
Toto cvičení je součástí kurzu
Designing Machine Learning Workflows in Python
Pokyny k cvičení
- Z
X_trainvyber všechny špatné hostitele a vytvoř novou datovou saduX_train_bad. Nezapomeň, žey_trainje boolean pole. - Vypočítej průměr sloupce
unique_portspro špatné hostitele a výsledek ulož doavg_bad_ports. - Definuj klasifikátor, který jako pozitivní označí každý příklad, jehož hodnota
unique_portspřekročíavg_bad_ports. Predikce tohoto klasifikátoru na testovacích datech ulož do nové proměnnépred_port. - Vyhodnoť přesnost tohoto klasifikátoru na testovacích datech pomocí
accuracy_score().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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, ____))