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
Pokyny k cvičení
- Aplikuj funkci
lambdana 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 sloupecprotocolna 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)))