Zacznij terazZacznij za darmo

Inżynieria cech na danych pogrupowanych

Teraz rozwiniesz poprzednie ćwiczenie, uwzględniając jedną dodatkową cechę: liczbę unikalnych protokołów używanych przez każdy komputer źródłowy. Pamiętaj, że w przypadku danych pogrupowanych zawsze można konstruować cechy w ten sposób: możesz wziąć liczbę unikalnych elementów wszystkich kolumn kategorycznych oraz średnią wszystkich kolumn numerycznych jako punkt wyjścia. Podobnie jak wcześniej, masz dostęp do wczytanego flows, funkcji cross_val_score() do mierzenia dokładności, AdaBoostClassifier(), biblioteki pandas jako pd i numpy jako np.

To ćwiczenie jest częścią kursu

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zastosuj funkcję lambda na dostarczonym iteratorze grupowym, aby obliczyć liczbę unikalnych protokołów używanych przez każdy komputer źródłowy. Możesz użyć set(), aby zredukować kolumnę protocol do zbioru unikalnych wartości.
  • Przekształć wynik do ramki danych o odpowiednim kształcie, podając indeks i nazywając kolumnę protocol.
  • Połącz nową ramkę danych ze starą, dostępną jako X.
  • Oceń dokładność AdaBoostClassifier() na tym nowym zbiorze danych, używając cross_val_score().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)))
Edytuj i uruchom kod