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

Объединение эвристик

Другой аналитик по кибербезопасности сообщает вам, что при некоторых типах атак заражённый компьютер-источник передаёт небольшие фрагменты трафика, чтобы избежать обнаружения. Это наводит на мысль: не лучше ли создать комбинированную эвристику, которая одновременно учитывает большое количество портов и малый размер пакетов? Улучшит ли это результат по сравнению с простой портовой эвристикой? Как и в предыдущем упражнении, в памяти доступны X_train, X_test, y_train и y_test. Пример кода также позволяет воспроизвести результат портовой эвристики — pred_port. Кроме того, предварительно загружены numpy как np и функция accuracy_score().

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

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

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

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

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

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Compute the mean of average_packet for bad sources
avg_bad_packet = np.mean(____[____]['average_packet'])

# Label as positive if average_packet is lower than that
pred_packet = ____[____] < avg_bad_packet

# Find indices where pred_port and pred_packet both True
pred_port = X_test['unique_ports'] > avg_bad_ports
pred_both = pred_packet ____ pred_port

# Ports only produced an accuracy of 0.919. Is this better?
print(accuracy_score(____, ____))
Редактировать и запускать код