Kết hợp các heuristic
Một nhà phân tích an ninh mạng khác cho bạn biết rằng trong một số kiểu tấn công, máy tính nguồn bị nhiễm sẽ gửi các gói lưu lượng rất nhỏ để tránh bị phát hiện. Điều này khiến bạn tự hỏi liệu có nên tạo một heuristic kết hợp đồng thời tìm số lượng cổng lớn và kích thước gói nhỏ. Liệu cách này có cải thiện hiệu năng so với heuristic chỉ dựa trên cổng? Cũng như bài trước, bạn đã có X_train, X_test, y_train và y_test trong bộ nhớ. Mã mẫu cũng giúp bạn tái tạo kết quả của heuristic dựa trên cổng, pred_port. Bạn cũng đã nạp sẵn numpy dưới tên np và accuracy_score().
Bài tập này là một phần của khóa học
Thiết kế quy trình Machine Learning bằng Python
Hướng dẫn bài tập
- Cột
average_packettính kích thước gói trung bình trên tất cả các luồng được quan sát từ một nguồn. Hãy lấy trung bình của các giá trị đó chỉ đối với các nguồn xấu trong tập huấn luyện. - Bây giờ hãy xây dựng một quy tắc mới, gắn cờ dương tính cho tất cả nguồn có lưu lượng trung bình nhỏ hơn giá trị ở trên.
- Kết hợp các quy tắc sao cho cả hai heuristic phải đồng thời thỏa, dùng một phép toán số học phù hợp.
- Báo cáo độ chính xác của heuristic kết hợp.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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(____, ____))