ComenzarEmpieza gratis

¿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

Ver curso

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 datos flows y 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_computer pertenece a la lista de infectados que te han dado.
  • Evalúa un AdaBoostClassifier() con estos datos usando cross_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)))
Editar y ejecutar código