Kỹ thuật đặc trưng trên dữ liệu đã nhóm
Bây giờ bạn sẽ tiếp nối bài tập trước bằng cách xét thêm một đặc trưng: số lượng giao thức (protocol) duy nhất được dùng bởi mỗi máy tính nguồn. Lưu ý rằng với dữ liệu đã nhóm, bạn luôn có thể xây dựng đặc trưng theo cách này: lấy số phần tử duy nhất của tất cả các cột phân loại, và giá trị trung bình của tất cả các cột số làm điểm xuất phát. Như trước đó, bạn đã có flows được nạp sẵn, cross_val_score() để đo độ chính xác, AdaBoostClassifier(), pandas là pd và numpy là np.
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
- Áp dụng một hàm
lambdatrên iterator của nhóm được cung cấp để tính số giao thức duy nhất được mỗi máy tính nguồn sử dụng. Bạn có thể dùngset()để rút gọn cộtprotocolthành một tập các giá trị duy nhất. - Chuyển kết quả thành một data frame với hình dạng đúng bằng cách cung cấp index và đặt tên cột là
protocol. - Nối data frame mới với data frame cũ, đang có sẵn dưới tên
X. - Đánh giá độ chính xác của
AdaBoostClassifier()trên bộ dữ liệu mới 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.
# Create a feature counting unique protocols per source
protocols = flows.groupby('source_computer').apply(
lambda df: ____)
# Convert this feature into a dataframe, naming the column
protocols_DF = pd.DataFrame(
protocols, index=____, columns=____)
# Now concatenate this feature with the previous dataset, X
X_more = pd.concat([X, ____], axis=____)
# Refit the classifier and report its accuracy
print(____(____(
AdaBoostClassifier(), ____, y)))