Bắt đầu ngayBắt đầu miễn phí

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_trainy_test trong bộ nhớ. Bạn cũng đã import accuracy_score()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

Xem khóa học

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ới X_train_bad. Lưu ý y_train là một mảng Boolean.
  • Tính trung bình cột unique_ports cho các host xấu và lưu vào avg_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_ports vượ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ới pred_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, ____))
Chỉnh sửa và Chạy Mã