Nguồn hay đích mới là máy bị nhiễm?
Trong bài trước, bạn dùng máy tính ở vai trò đích làm thực thể quan tâm. Tuy nhiên, chuyên gia an ninh mạng vừa cho biết chính các máy bị nhiễm mới tạo ra lưu lượng xấu và vì vậy sẽ xuất hiện như nguồn, không phải đích, trong tập dữ liệu flows.
Dữ liệu flows đã được nạp sẵn, cùng với danh sách bad các ID bị nhiễm và bộ trích xuất đặc trưng featurizer() từ bài trước. Bạn cũng có numpy dưới tên np, AdaBoostClassifier(), và cross_val_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
- Tạo một data frame trong đó mỗi hàng là một vector đặc trưng cho một
source_computer. Nhóm theo ID máy nguồn trong tậpflowsvà áp dụng bộ trích xuất đặc trưng cho từng nhóm. - Chuyển iterator thành data frame bằng cách gọi
list()trên nó. - Tạo nhãn bằng cách kiểm tra xem mỗi ID
source_computercó thuộc danh sách các máy xấu đã cho hay không. - Đánh giá một
AdaBoostClassifier()trên dữ liệu này bằngcross_val_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.
# Group by source computer, and apply the feature extractor
out = flows.____('source_computer').____(featurize)
# Convert the iterator to a dataframe by calling list on it
X = pd.DataFrame(____, index=____)
# Check which sources in X.index are bad to create labels
y = [x in bads for x in ____]
# Report the average accuracy of Adaboost over 3-fold CV
print(np.mean(____(____, X, y)))