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
Instructions de l’exercice
- Appliquez une fonction
lambdasur l'itérateur de groupes fourni pour calculer le nombre de protocoles uniques utilisés par chaque ordinateur source. Vous pouvez utiliserset()pour réduire la colonneprotocolà 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 decross_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)))