ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Selectează toate gazdele rău-intenționate din X_train pentru a forma un nou set de date, X_train_bad. Reține că y_train este un array de valori booleene.
  • Calculează media coloanei unique_ports pentru gazdele rău-intenționate și stocheaz-o în avg_bad_ports.
  • Definește acum un clasificator care prezice ca pozitiv orice exemplu al cărui unique_ports depășește avg_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, ____))
Editează și rulează codul