LoslegenKostenlos loslegen

Feature Engineering auf gruppierten Daten

Du knüpfst jetzt an die vorherige Übung an und berücksichtigst ein zusätzliches Feature: die Anzahl der unterschiedlichen Protokolle, die jeder Quellrechner verwendet. Beachte: Bei gruppierten Daten kannst du Features immer auf diese Weise konstruieren – nimm die Anzahl der einzigartigen Werte aller kategorialen Spalten und den Mittelwert aller numerischen Spalten als Ausgangspunkt. Wie zuvor sind flows vorab geladen, cross_val_score() zur Messung der Genauigkeit, AdaBoostClassifier(), pandas als pd und numpy als np verfügbar.

Diese Übung ist Teil des Kurses

Machine-Learning-Workflows in Python entwerfen

Kurs anzeigen

Anleitung zur Übung

  • Wende eine lambda-Funktion auf den bereitgestellten Gruppen-Iterator an, um die Anzahl der unterschiedlichen Protokolle zu berechnen, die jeder Quellrechner verwendet. Du kannst set() nutzen, um die Spalte protocol auf die Menge ihrer einzigartigen Werte zu reduzieren.
  • Wandle das Ergebnis in einen DataFrame mit der richtigen Form um, indem du einen Index angibst und die Spalte protocol nennst.
  • Konkateniere den neuen DataFrame mit dem alten, der als X verfügbar ist.
  • Beurteile die Genauigkeit von AdaBoostClassifier() auf diesem neuen Datensatz mit cross_val_score().

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)))
Code bearbeiten und ausführen