Biến heuristic thành bộ phân loại
Bạn khá bất ngờ khi thấy các heuristic lại hữu ích đến vậy. Vì thế, bạn quyết định xem heuristic "quá nhiều cổng (port) duy nhất là đáng ngờ" như một bộ phân loại độc lập. Bạn thực hiện điều đó bằng cách đặt ngưỡng cho số lượng cổng duy nhất trên mỗi nguồn dựa trên số trung bình được dùng ở các máy nguồn xấu — đây là các máy có nhãn True. Bộ dữ liệu đã được nạp sẵn và chia thành huấn luyện và kiểm tra, nên bạn đã có các đối tượng X_train, X_test, y_train và y_test trong bộ nhớ. Bạn cũng đã import accuracy_score() và numpy với bí danh np. Lưu ý: trong bài này bạn sẽ không huấn luyện một bộ phân loại từ scikit-learn, mà sẽ tự định nghĩa quy tắc phân loại của riêng bạn một cách tường minh!
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
- Chọn tất cả các host xấu từ
X_trainđể tạo tập dữ liệu mớiX_train_bad. Lưu ýy_trainlà một mảng Boolean. - Tính trung bình cột
unique_portscho các host xấu và lưu vàoavg_bad_ports. - Xem xét một bộ phân loại dự đoán dương tính cho mọi ví dụ có
unique_portsvượt quáavg_bad_ports. Lưu dự đoán của bộ phân loại này trên dữ liệu kiểm tra vào biến mớipred_port. - Tính độ chính xác của bộ phân loại này trên dữ liệu kiểm tra bằng
accuracy_score().
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.
# Create a new dataset X_train_bad by subselecting bad hosts
X_train_bad = ____[____]
# Calculate the average of unique_ports in bad examples
avg_bad_ports = np.____(____['unique_ports'])
# Label as positive sources that use more ports than that
pred_port = ____['unique_ports'] > ____
# Print the accuracy of the heuristic
print(____(y_test, ____))