ComenzarEmpieza gratis

Ingeniería de características en datos agrupados

Ahora vas a ampliar el ejercicio anterior añadiendo una característica más: el número de protocolos únicos utilizados por cada equipo de origen. Ten en cuenta que, con datos agrupados, siempre es posible construir características de esta manera: puedes tomar el número de elementos únicos de todas las columnas categóricas y la media de todas las columnas numéricas como punto de partida. Como antes, tienes flows precargado, cross_val_score() para medir la exactitud, AdaBoostClassifier(), pandas como pd y numpy como np.

Este ejercicio forma parte del curso

Diseño de flujos de trabajo de Machine Learning en Python

Ver curso

Instrucciones del ejercicio

  • Aplica una función lambda sobre el iterador de grupos para calcular el número de protocolos únicos utilizados por cada equipo de origen. Puedes usar set() para reducir la columna protocol a un conjunto de valores únicos.
  • Convierte el resultado en un data frame con la forma correcta proporcionando un índice y nombrando la columna protocol.
  • Concatena el nuevo data frame con el anterior, disponible como X.
  • Evalúa la exactitud de AdaBoostClassifier() en este nuevo conjunto de datos usando cross_val_score().

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Create a feature counting unique protocols per source
protocols = flows.groupby('source_computer').apply(
  lambda df: ____)

# Convert this feature into a dataframe, naming the column
protocols_DF = pd.DataFrame(
  protocols, index=____, columns=____)

# Now concatenate this feature with the previous dataset, X
X_more = pd.concat([X, ____], axis=____)

# Refit the classifier and report its accuracy
print(____(____(
  AdaBoostClassifier(), ____, y)))
Editar y ejecutar código