Transformarea unei euristici într-un clasificator
Ești surprins să descoperi cât de utile pot fi euristicile. Așa că decizi să tratezi euristica „prea multe porturi unice sunt suspecte" ca pe un clasificator de sine stătător. Obții acest lucru pragând numărul de porturi unice per sursă față de media utilizată de computerele sursă rău-intenționate — adică cele pentru care eticheta este True. Setul de date este preîncărcat și împărțit în antrenament și test, astfel că ai în memorie obiectele X_train, X_test, y_train și y_test. Importurile includ accuracy_score() și numpy ca np. De precizat: în acest exercițiu nu vei antrena un clasificator din scikit-learn, ci vei defini explicit propria regulă de clasificare!
Acest exercițiu face parte din cursul
Proiectarea fluxurilor de lucru pentru Machine Learning în Python
Instrucțiuni pentru exercițiu
- Selectează toate gazdele rău-intenționate din
X_trainpentru a forma un nou set de date,X_train_bad. Reține căy_traineste un array de valori booleene. - Calculează media coloanei
unique_portspentru gazdele rău-intenționate și stocheaz-o înavg_bad_ports. - Definește acum un clasificator care prezice ca pozitiv orice exemplu al cărui
unique_portsdepășeșteavg_bad_ports. Salvează predicțiile acestui clasificator pe datele de test într-o nouă variabilă,pred_port. - Calculează acuratețea acestui clasificator pe datele de test folosind
accuracy_score().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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, ____))