Chúng tôi sẽ loại bỏ các cột / tính năng không cần thiết như ‘StartTime’, ‘SrcAddr’, ‘Sport’, ‘DstAddr’, ‘Dport’, ‘State’. Bước 2: Giải quyết các cột có giá trị bị rỗng Các giá trị rỗng tồn tại trong 2 cột / tính năng là ‘sTos’ và ‘dTos’. Cách đơn giản để giải quyết vấn đề này là xoá chúng. Nhưng điều này có thể làm giảm hiệu suất của mô hình máy học vì ngoài các giá trị rỗng ra nó còn chứa những giá trị khác vì vậygiải pháp thay thế các giá trị rỗng bằng giá trị khác Bước 3: Giải quyết các dữ liệu nhãn thô Cột / tính năng ‘Label’ (cột lớp mục tiêu) trong bộ dữ liệu CTU-13 chứa các nhãn được gán dưới dạng dữ liệu thô mô tả đặc tính của từng luồng tương ứng. Để các mô hình máy học có thể sử dụng được cột / tính năng này thì chúng ta phải chuyển đổi các giá trị thô trên thành các giá trị số nguyên. Bước 4.1: Sử dụng kỹ thuật mã hoá Bước 4.2: Sử dụng kỹ thuật mã hoá One- với giá trị số hot Encoding Với cột / tính năng ‘Dir’ có chứa tổng Cụ thể là chúng tôi vẫn sử dụng mã hoá cộng 7 biến giá trị phân loại nhưng do One-hot Encoding cho cột ‘Proto’ thành 4 2 biến ‘<->’ và ‘->’ nó sẽ được mã cột ‘Proto_udp’, ‘Proto_tcp’, ‘Proto_icmp’ hoá riêng là 1 cho giá trị ‘<->’ và 2 và ‘Proto_others’,cột ‘Dir’ thành 3 cột cho giá trị ‘->’ còn lại được mã hoá là ‘Dir_ <->’, ‘Dir_ ->’ và ‘Dir_others’.Đều 0. Với cột / tính năng ‘Proto’ có chứa dựa vào bài báo [19] mà nhóm tham khảo tổng cộng 15 biến giá trị phân loại được để thực hiện lại. Chi tiết thì chúng tôi nhưng mã hóa riêng cho các giá trị đã trình bày ở phần 3.3.1.4 ở trường hợp 2. ‘udp’ = 17, giá trị ‘tcp’ = 6, giá trị ‘icmp’= 1 còn lại sẽ được mã hoá = 0 vì các giá trị trên chiếm tỷ lệ lớn trong cột. Bước 5.1: Cân bằng dữ liệu bằng với Bước 5.2: Cân bằng dữ liệu với NearMiss- RandomUnderSampler. 1. Lớp RandomUnderSampler từ thư Kỹ thuật NearMiss lấy mẫu dựa theo thuật viện imblearn.under_sampling cho toán nearest neighbors và có phép ta lấy mẫu ngẫu nhiên từ các lớp 3 phiên bản riêng. Ở đây chúng tôi sử dụng đa số hay lớp thiểu số theo một chiến kỹ thuật NearMiss-1 để lấy mẫu lược tuỳ chọn bất kì. với số lượng mẫu như trường hợp sử dụng kỹ thuật RandomUnderSampler. Bước 6: Sử dụng thuật toán Random Forest Sử dụng lớp RandomForestClassifier(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=True, oob_score=False, n_jobs=None, random_state=0, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None) Công thức sử dụng trong thuật toán Random Forest với Gini Impurity G=∑ p k ( 1− p k )2=1−∑ ( p k )2 ¿
k Trong đó: G là giá trị Gini Impurity k số các lớp có trong tập data pk là xác suất mà một phần tử ngẫu nhiên thuộc lớp k ¿