Ingineria caracteristicilor pe date grupate
Vei extinde exercițiul anterior adăugând o caracteristică suplimentară: numărul de protocoale unice utilizate de fiecare calculator sursă. Reține că, atunci când lucrezi cu date grupate, poți construi caracteristici în acest mod: poți folosi numărul de elemente unice din toate coloanele categorice și media tuturor coloanelor numerice ca punct de plecare. Ca și înainte, ai disponibile flows preîncărcat, cross_val_score() pentru măsurarea acurateței, AdaBoostClassifier(), pandas ca pd și numpy ca np.
Acest exercițiu face parte din cursul
Proiectarea fluxurilor de lucru pentru Machine Learning în Python
Instrucțiuni pentru exercițiu
- Aplică o funcție
lambdape iteratorul de grup furnizat, pentru a calcula numărul de protocoale unice utilizate de fiecare calculator sursă. Poți folosiset()pentru a reduce coloanaprotocolla o mulțime de valori unice. - Convertește rezultatul într-un dataframe cu forma corectă, furnizând un index și denumind coloana
protocol. - Concatenează noul dataframe cu cel anterior, disponibil ca
X. - Evaluează acuratețea
AdaBoostClassifier()pe acest nou set de date folosindcross_val_score().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)))