¿Es malo el origen o el destino?
En la lección anterior, usaste el ordenador de destino como tu entidad de interés. Sin embargo, tu analista de ciberseguridad acaba de decirte que son las máquinas infectadas las que generan el tráfico malicioso y, por tanto, aparecerán como origen, no como destino, en el conjunto de datos flows.
Los datos flows ya están precargados, así como la lista bad de IDs infectados y el extractor de características featurizer() de la lección anterior. También tienes disponible numpy como np, AdaBoostClassifier() y cross_val_score().
Este ejercicio forma parte del curso
Diseño de flujos de trabajo de Machine Learning en Python
Instrucciones del ejercicio
- Crea un data frame donde cada fila sea un vector de características para un
source_computer. Agrupa por el ID del ordenador de origen en el conjunto de datosflowsy aplica el extractor de características a cada grupo. - Convierte el iterador en un data frame llamando a
list()sobre él. - Crea las etiquetas comprobando si cada ID de
source_computerpertenece a la lista de infectados que te han dado. - Evalúa un
AdaBoostClassifier()con estos datos usandocross_val_score().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)))