Začněte nyníZačněte zdarma

Feature engineering na seskupených datech

Teď navážeš na předchozí cvičení a přidáš jeden další příznak: počet unikátních protokolů používaných každým zdrojovým počítačem. U seskupených dat lze příznaky tímto způsobem konstruovat vždy: jako výchozí bod můžeš vzít počet unikátních hodnot ze všech kategorických sloupců a průměr ze všech numerických sloupců. Stejně jako dříve máš přednahrané flows, funkci cross_val_score() pro měření přesnosti, AdaBoostClassifier(), pandas jako pd a numpy jako np.

Toto cvičení je součástí kurzu

Designing Machine Learning Workflows in Python

Zobrazit kurz

Pokyny k cvičení

  • Aplikuj funkci lambda na poskytnutý iterátor skupin, aby ses vypočítal/a počet unikátních protokolů používaných každým zdrojovým počítačem. Pomocí set() můžeš omezit sloupec protocol na množinu unikátních hodnot.
  • Výsledek převeď na datový rámec se správným tvarem – zadej index a pojmenuj sloupec protocol.
  • Nový datový rámec spoj se starým, který je dostupný jako X.
  • Vyhodnoť přesnost AdaBoostClassifier() na tomto novém datasetu pomocí cross_val_score().

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)))
Upravit a spustit kód