Sursa sau destinația este problematică?
În lecția anterioară, ai folosit computerul destinație ca entitate de interes. Totuși, analistul tău de securitate cibernetică tocmai ți-a spus că mașinile infectate sunt cele care generează traficul suspect și vor apărea, prin urmare, ca sursă, nu ca destinație, în setul de date flows.
Datele flows au fost preîncărcate, împreună cu lista bad a ID-urilor infectate și extractorul de caracteristici featurizer() din lecția anterioară. Ai disponibile și numpy ca np, AdaBoostClassifier() și cross_val_score().
Acest exercițiu face parte din cursul
Proiectarea fluxurilor de lucru pentru Machine Learning în Python
Instrucțiuni pentru exercițiu
- Creează un cadru de date în care fiecare rând este un vector de caracteristici pentru un
source_computer. Grupează după ID-ul computerului sursă în setul de dateflowsși aplică extractorul de caracteristici fiecărui grup. - Convertește iteratorul într-un cadru de date apelând
list()pe acesta. - Creează etichetele verificând dacă fiecare ID de
source_computerse află în lista calculatoarelor infectate primite. - Evaluează un
AdaBoostClassifier()pe aceste date folosindcross_val_score().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Group by source computer, and apply the feature extractor
out = flows.____('source_computer').____(featurize)
# Convert the iterator to a dataframe by calling list on it
X = pd.DataFrame(____, index=____)
# Check which sources in X.index are bad to create labels
y = [x in bads for x in ____]
# Report the average accuracy of Adaboost over 3-fold CV
print(np.mean(____(____, X, y)))