ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Aplică o funcție lambda pe iteratorul de grup furnizat, pentru a calcula numărul de protocoale unice utilizate de fiecare calculator sursă. Poți folosi set() pentru a reduce coloana protocol la 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 folosind cross_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)))
Editează și rulează codul