Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Cách bước chạy của thuật toán Random Forest

Bước 1: Xóa các cột dữ liệu không cần thiết


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
¿

You might also like