Thuật tốn Tham số Mơ tả
KNN
n_neighbors Số lượng điểm gần nhất được sử dụng để phân lớp weights Hàm đánh trọng số các điểm được sử dụng trong
dự đốn nhãn
n_jobs Số lượng tác vụ sẽ chạy xử lý song song Decision Tree randoom_state Khởi tạo quá trình lấy mẫu ngẫu nhiên
Thuật tốn Tham số Mơ tả
criterion Độ đo lựa chọn thuộc tính phân loại splitter Tiêu chuẩn phân chia tại mỗi nút Random
Forest
n_estimators Số lượng cây trong tập hợp cây quyết định (forest) random_state Khởi tạo quá trình lấy mẫu ngẫu nhiên
n_jobs Số lượng tác vụ sẽ chạy xử lý song song
SVM
random_state Khởi tạo quá trình lấy mẫu ngẫu nhiên probability Lựa chọn ước tính xác suất
C Tham số chính quy hĩa (regularization)
gama Tham số của hàm Radial Basic Function (RBF) Các tham số được nghiên cứu sinh tinh chỉnh trong quá trình thử nghiệm được minh họa trong mã nguồn như trong Hình 3.6.
SEED = 42 ALGO = [‘KNN’, ‘DT’, ‘RF’, ‘SVM’] CLF NAME = { ‘KNN’: ‘K-Nearest Neighbors’, ‘DT’: ‘Decision Tree’, ‘RF’: ‘Random Forest’, ‘SVM’: ‘SVM’, } CLASSIFIERS = { ‘KNN’: KneighborsClassifier(n_jobs=-1), ‘DT’: DecisionTreeClassifier(random_state=SEED), ‘RF’: RandomForestClassifier(random_state=SEED, n_jobs=-1), ‘SVM’: SVC(random_state=SEED, probability=True), } HYPER_GRID = {
‘KNN’: {“n_neighbors”: [10, 100, 1000], “weights”: [“uniform”, “distance”]}, ‘DT’: {“criterion”: [“gini”, “entropy”], “splitter”: [“best”, “random”]},
‘RF’: {“n_estimators”: [10, 100, 1000]},
‘SVM’: {“C”: np.logspace(-1, 1, 3), “gamma”: np.logspace (-1, 1, 3)}, }
Hình 3.6 Các kịch bản thử nghiệm điều chỉnh tham số các mơ hình học máy
Do số lượng mẫu mã độc IoT Botnet cho thiết bị IoT hạn chế tài nguyên thu thập được cịn ít nên để tránh hiện tượng Overfitting và kiểm tra khả năng phát hiện các biến thể mới của mã độc IoT Botnet thì cần một phương án chia tập dữ liệu thử nghiệm thành
các tập nhỏ hơn để huấn luyện và đánh giá hiệu quả hơn (validation). Nghiên cứu sinh đã sử dụng 3 kịch bản phân chia tập dữ liệu thử nghiệm như sau để huấn luyện và đánh giá đặc trưng đề xuất. Với kịch bản đầu tiên, tập huấn luyện bao gồm mã độc Bashlite, mã độc IoT Botnet khác và tệp lành tính; tập kiểm thử bao gồm chủ yếu mã độc Mirai và tệp lành tính. Mục tiêu của kịch bản đầu tiên là kiểm tra khả năng phát hiện họ mã độc IoT Botnet mới (Mirai) của phương pháp đề xuất khi mà tập huấn luyện chỉ chứa chủ yếu họ mã độc IoT Botnet đã xuất hiện trước đĩ theo thời gian. Tương tự, mục tiêu của kịch bản thứ 2 nhằm kiểm tra, đánh giá khả năng phát hiện các biến thể khác nhau của mã độc IoT Botnet khi mà tập huấn luyện chỉ tập trung vào 2 họ mã độc IoT Botnet chính là Bashlite và Mirai. Mục tiêu của kịch bản thứ 3 nhằm kiểm tra, đánh giá khả năng phát hiện các mẫu mã độc IoT Botnet đã xuất hiện trước đĩ (Bashlite) dựa trên việc huấn luyện với họ mã độc xuất hiện sau (Mirai) và một số các biến thể các họ mã độc khác. Bên cạnh đĩ, kịch bản thứ 3 cũng phục vụ việc kiểm tra, đánh giá khả năng Overfiting của phương pháp đề xuất.