CommencezCommencez gratuitement

Ingénierie des caractéristiques sur des données groupées

Vous allez maintenant poursuivre l'exercice précédent en ajoutant une caractéristique : le nombre de protocoles uniques utilisés par chaque ordinateur source. Notez qu'avec des données groupées, il est souvent possible de construire des caractéristiques de cette façon : comme point de départ, vous pouvez prendre le nombre d'éléments uniques de toutes les colonnes catégorielles, et la moyenne de toutes les colonnes numériques. Comme précédemment, flows est déjà chargé, cross_val_score() sert à mesurer la justesse, AdaBoostClassifier(), pandas en pd et numpy en np sont disponibles.

Cette activité fait partie du cours

Concevoir des flux de travail Machine Learning en Python

Voir le cours

Instructions de l’exercice

  • Appliquez une fonction lambda sur l'itérateur de groupes fourni pour calculer le nombre de protocoles uniques utilisés par chaque ordinateur source. Vous pouvez utiliser set() pour réduire la colonne protocol à un ensemble de valeurs uniques.
  • Convertissez le résultat en trame de données avec la bonne forme en fournissant un index et en nommant la colonne protocol.
  • Concaténez la nouvelle trame de données avec l'ancienne, accessible sous le nom X.
  • Évaluez la justesse de AdaBoostClassifier() sur ce nouveau jeu de données à l'aide de cross_val_score().

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)))
Modifier et exécuter le code