휴리스틱 결합하기
다른 보안 분석가가 말하길, 특정 유형의 공격에서는 감염된 소스 컴퓨터가 탐지를 피하려고 소량의 트래픽만 보낸다고 합니다. 이를 듣고 많은 포트를 사용하는지와 패킷 크기가 작은지를 동시에 확인하는 결합 휴리스틱을 만들면 더 좋지 않을까 생각하게 되었습니다. 이것이 단순 포트 휴리스틱보다 성능을 개선할까요? 지난 연습 문제와 마찬가지로, 메모리에는 X_train, X_test, y_train, y_test가 준비되어 있습니다. 샘플 코드는 포트 휴리스틱의 결과인 pred_port를 재현하는 데도 도움이 됩니다. 또한 numpy는 np로, accuracy_score()는 미리 로드되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 설계하는 Machine Learning 워크플로
연습 안내
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(____, ____))