Kom igångKom igång gratis

Särdragsframtagning på grupperade data

Nu ska du bygga vidare på föregående övning genom att lägga till ytterligare ett särdrag: antalet unika protokoll som används av varje källdator. Observera att med grupperade data är det alltid möjligt att konstruera särdrag på det här sättet – du kan utgå från antalet unika element i alla kategoriska kolumner och medelvärdet av alla numeriska kolumner. Precis som tidigare är flows förinläst, liksom cross_val_score() för att mäta noggrannhet, AdaBoostClassifier(), pandas som pd och numpy som np.

Den här övningen är en del av kursen

Att designa maskininlärningsflöden i Python

Visa kurs

Övningsinstruktioner

  • Applicera en lambda-funktion på den tillhandahållna grupperingsiteratorn för att beräkna antalet unika protokoll per källdator. Du kan använda set() för att reducera kolumnen protocol till en mängd unika värden.
  • Konvertera resultatet till en dataram med rätt form genom att ange ett index och namnge kolumnen protocol.
  • Sammanfoga den nya dataramen med den gamla, som finns tillgänglig som X.
  • Utvärdera noggrannheten hos AdaBoostClassifier() på det nya datasetet med hjälp av cross_val_score().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)))
Redigera och kör kod