ПочатиПочніть безкоштовно

Проблема в джерелі чи в призначенні?

У попередньому уроці ви використовували комп'ютер‑призначення як основну сутність. Однак ваш фахівець із кібербезпеки щойно повідомив, що саме інфіковані машини генерують шкідливий трафік, тож у наборі даних flows вони з'являтимуться як джерело, а не призначення.

Дані flows вже завантажено, так само як список інфікованих ID bad і функцію витягання ознак featurizer() з попереднього уроку. Також доступні numpy як np, AdaBoostClassifier() і cross_val_score().

Ця вправа є частиною курсу

Проєктування робочих процесів машинного навчання в Python

Переглянути курс

Інструкції до вправи

  • Створіть датафрейм, у якому кожний рядок — це вектор ознак для source_computer. Згрупуйте за ID вихідного комп'ютера у наборі даних flows і застосуйте екстрактор ознак до кожної групи.
  • Перетворіть ітератор на датафрейм, викликавши для нього list().
  • Створіть мітки, перевіряючи, чи кожний ID source_computer належить до наданого списку інфікованих.
  • Оцініть AdaBoostClassifier() на цих даних за допомогою cross_val_score().

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Group by source computer, and apply the feature extractor
out = flows.____('source_computer').____(featurize)

# Convert the iterator to a dataframe by calling list on it
X = pd.DataFrame(____, index=____)

# Check which sources in X.index are bad to create labels
y = [x in bads for x in ____]

# Report the average accuracy of Adaboost over 3-fold CV
print(np.mean(____(____, X, y)))
Редагувати та запускати код