НачатьНачать бесплатно

Источник или получатель — кто виноват?

В предыдущем уроке вы использовали компьютер-получатель как основной объект анализа. Однако аналитик по кибербезопасности сообщил вам, что именно заражённые машины генерируют вредоносный трафик и поэтому будут выступать в наборе данных flows как источник, а не как получатель.

Набор данных flows уже загружен, как и список bad заражённых идентификаторов и экстрактор признаков featurizer() из предыдущего урока. Вам также доступны numpy как np, AdaBoostClassifier() и cross_val_score().

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Создайте датафрейм, в котором каждая строка является вектором признаков для source_computer. Сгруппируйте данные в наборе flows по идентификатору компьютера-источника и примените экстрактор признаков к каждой группе.
  • Преобразуйте итератор в датафрейм, вызвав на нём функцию list().
  • Создайте метки, проверив, входит ли каждый идентификатор 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)))
Редактировать и запускать код