Ứng dỤng thuẬt toÁn fuzzy random forest trong …
Post on 24-Nov-2021
17 Views
Preview:
TRANSCRIPT
ĐẠI HỌC QUỐC GA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
--------------- 🙞🙞 ---------------
NGUYỄN VĂN LINH
ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM
FOREST TRONG PHÁT HIỆN XÂM NHẬP MẠNG
KHÔNG DÂY
Ngành: Công nghệ thông tin
Chuyên ngành: Khoa học máy tính
Mã số: 60480101
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS. Lê Hoàng Sơn
Hà Nội - 2019
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
--------------- 🙞🙞 ---------------
NGUYỄN VĂN LINH
ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM
FOREST TRONG PHÁT HIỆN XÂM NHẬP MẠNG
KHÔNG DÂY
Ngành: Công nghệ thông tin
Chuyên ngành: Khoa học máy tính
Mã số: 60480101
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS. Lê Hoàng Sơn
Xác nhận của cán bộ hướng dẫn
PGS TS. Lê Hoàng Sơn
Hà Nội - 2019
LỜI CẢM ƠN
Trước tiên, tôi xin được gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Thầy
giáo, PGS. TS. Lê Hoàng Sơn đã tận tình chỉ bảo, hướng dẫn, động viên và giúp đỡ tôi
trong suốt quá trình tôi thực hiện luận văn tốt nghiệp.
Tôi xin gửi lời cảm ơn tới các thầy cô trường Đại Học Công Nghệ - Đại Học
Quốc Gia Hà Nội – những người đã tận tình giúp đỡ, hướng dẫn trong quá trình tôi học
tập và tại trường.
Cuối cùng, tôi muốn gửi lời cảm ơn tới gia đình và bạn bè, những người thân
yêu luôn bên cạnh, quan tâm, động viên tôi trong suốt quá trình học tập và thực hiện
luận văn tốt nghiệp này.
Tôi xin chân thành cảm ơn!
Hà Nội, tháng 04 năm 2019
Học viên
Nguyễn Văn Linh
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong Luận văn là sản phẩm của riêng cá nhân
tôi, không sao chép lại của người khác. Những điều được trình bày trong nội dung Luận
văn, hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài
liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn đúng quy cách. Tôi xin hoàn
toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của
mình.
Hà Nội, tháng 04 năm 2019
Tác giả luận văn
Nguyễn Văn Linh
MỤC LỤC
LỜI CẢM ƠN 0
LỜI CAM ĐOAN 1
MỤC LỤC 2
DANH SÁCH BẢNG 3
DANH SÁCH HÌNH VẼ 4
DANH SÁCH TỪ VIẾT TẮT 6
1 13
1.1 13
1.2 14
1.2.1 14
1.2.2 15
1.2.3 18
1.2.4 20
1.3 22
1.3.1 23
1.3.2 27
1.3.3 30
1.4 34
1.5 34
2 35
2.1 35
2.2 37
2.3 43
2.4 47
2.5 58
2.6 80
3 81
3.1 81
3.2 87
3.3 92
3.4 92
3.1 95
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 85
TÀI LIỆU THAM KHẢO 87
DANH SÁCH BẢNG
Bảng 1.1 : Dữ liệu sử dụng cho phân lớp Bayes 16
Bảng 2.1: Dữ liệu phân lớp sử dụng cây quyết định 28
Bảng 2.2: Dữ liệu kiểm thử thuật toán cây quyết định 29
Bảng 2.3: Tất cả thuộc tính Sunny của Outlook 30
Bảng 2.4: Tất cả thuộc tính Rain của Outlook 31
Bảng 2.5: Bảng đánh giá và kiểm tra kết quả của thuật toán DT 32
Bảng 2.6: Tập dữ liệu phân lớp cho thuật toán RF 38
Bảng 2.7: Dữ liệu được chọn ngẫu nhiên từ tập dữ liệu ban đầu cho cây 2 39
Bảng 2.8: Dữ liệu để kiểm tra độ chính xác thuật toán RF 39
Bảng 2.9: Tất cả dữ liệu Sunny của Outlook 41
Bảng 2.10: Tất cả dữ liệu Rain của Outlook 41
Bảng 2.11: Bảng đánh dấu dữ liệu được chọn ngẫu nhiên cho cây 3 42
Bảng 2.12: Bảng dữ liệu chọn ngẫu nhiên cho cây 3 43
Bảng 2.13: Tất cả dữ liệu nhánh Strong của Wind 45
Bảng 2.14: Nhánh Sunny của Outlook nốt tiếp Strong của Wind 46
Bảng 2.15: Đánh giá kết quả thuật toán RF 47
Bảng 2.16: Dự liệu training thuật toán FRF 53
Bảng 2.17: Dữ liệu đánh giá thuật toán FRF 54
Bảng 2.18 Giá trị fuzzy của các thuộc tính 57
Bảng 2.19: Nhánh Sunny của outlook (FRF 1) 62
Bảng 2.20: Nhánh rain của outlook(FRF 1) 64
Bảng 2.23: Đánh giá kết quả cây FRF 69
Bảng 3.1: Bộ dữ liệu AWID [36] 70
Bảng 3.2: Các lớp của bộ dữ liệu AWID [36] 71
Bảng 3.3: Tỉ lệ của các bản ghi và lớp trong bộ dữ liệu 71
Bảng 3.4: Thuộc tính trong 1 bảng ghi 71
Bảng 3.5: Đánh giá kết quả của thuật toán 81
DANH SÁCH HÌNH VẼ
Hình 1.1: Báo cáo hàng năm về tình hình bảo mật của Cisco [27] 1
Hình 1.2: Kiến trúc mạng không dây [37] 2
Hình 1.3: Cơ chế bảo mật WEP 3
Hình 1.4: Tấn công Flooding 9
Hình 1.5: Tấn công Injection 10
Hình 1.6: Tấn công Impersonation 10
Hình 1.7: Các điểm trong không gian D chiều 11
Hình 1.8: Siêu phẳng phân lớp các điểm trong không gian 12
Hình 1.9 : Đồ thị biểu diễn các điểm trong mặt phẳng R+ 13
Hình 1.10 : Các điểm lựa chọn cho siêu phẳng 13
Hình 1.11: Kiến trúc mô hình SVM 14
Hình 1.12: Đồ thị biểu diễn siêu phẳng tìm được 15
Hình 1.13: Kiến trúc chung của mạng nơ-ron 18
Hình 1.14: Mô hình mạng nơ-ron 19
Hình 1.15: Công thức và đồ thị hàm ngưỡng 20
Hình 1.16: Công thức và đồ thị hàm tuyến tính 20
Hình 1.17: Công thức và đồ thị hàm sigmod 21
Hình 1.18: Công thức và đồ thị hàm tanh 21
Hình 1.19: Công thức và đồ thị hàm gausian 22
Hình 2.1: Hình ảnh cây sau vòng lặp đầu tiên của thuật toán DT 30
Hình 2.2: Cây phân lớp sau vòng lặp thứ 2 của thuật toán DT 31
Hình 2.3: Cây phân lớp cuối cùng của thuật toán DT 32
Hình 2.4: Ví dụ về cây quyết định với phân lớp mờ và phân lớp rõ 33
Hình 2.5: Lớp rõ và lớp mờ 34
Hình 2.6: Đồ thị biểu diễn các miền giá trị 35
Hình 2.7: Mô hình thuật toán rừng ngẫu nhiên [3] 37
Hình 2.8: Cây RF 2 sau vòng lặp thứ nhất 40
Hình 2.9: Cây RF 2 sau vòng lặp thứ hai 42
Hình 2.10: Cây RF 2 hoàn chỉnh thứ nhất 42
Hình 2.11: Cây RF 3 sau vòng lặp 1 45
Hình 2.12: Cây RF 3 sau vòng lặp 2 46
Figure 2.13: Cây RF 3 hoàn thiện 46
Hình 2.14: Mô hình fuzzy random forest 51
Hình 2.15: Đồ thị miền giá trị mờ của outlook 55
Hình 2.16: Đồ thị miền giá trị mờ của temprature 56
Bảng 2.17: Đồ thị miền giá trị mờ của humidity 56
Hình 2.18: Đồ thị miền giá trị mờ của wind 57
Hình 2.19: Cấy FRF 1 sau vòng lặp đầu tiên 61
Hình 2.20: Cây FRF 1 sau vòng lặp 2 65
Hình 2.21: Cây FRF 1 sau vòng lặp 3 67
Hình 2.22: Cây FRF 1 sau vòng lặp 4 68
Hình 2.23: Cây FRF hoàn thiện 68
Hình 3.1: Dữ liệu sau khi chuyển sang hệ cơ số 10 77
Hình 3.2: Dữ liệu đã được xử lý 78
Hình 3.3: Nhãn cho tập thuộc tính 78
Hình 3.4: Vị trí các thuộc tính dùng để phân lớp 79
Hình 3.5: Khoảng giá trị cho từng thuộc tính 79
Hình 3.6: Đồ thị hàm singleton 79
Hình 3.7: Công thức và đồ thị hàm triangular 80
Hình 3.8: Công thức và đồ thị hàm trapezoidal 80
Hình 3.9: Công thức là đồ thị hàm hình thang phải 80
Hình 3.10: Công thức là đồ thị hàm hình thang trái 81
Hình 3.12: Cây sau khi chạy thuật toán 81
Hình 3.13: Đồ thị đánh giá độ chính xác của cây 82
Hình 3.14: Độ chính xác của từng lớp theo số cây theo precision 83
Hình 3.15: Độ chính xác của từng lớp theo số cây theo recall 83
DANH SÁCH TỪ VIẾT TẮT
STT Từ viết tắt Đầy đủ Ý nghĩa
1 AP Access Point
Điểm truy cập: là thiết bị cho phép
các thiết bị không dây kết nối với
mạng dây sử dụng WiFi hoặc các
chuẩn liên quan
2 ARP Address Resolution
Protocol
Giao thức phân giải địa chỉ là một
giao thức truyền thông được sử dụng
để chuyển địa chỉ từ tầng mạng sang
tầng liên kết dữ liệu theo mô hình
OSI.
3 CCMP
Counter Mode Cipher
Block Chaining
Message
Authentication Code
Protocol
Giao thức CCMP là một giao thức
truyền dữ liệu và kiểm soát tính
truyền dữ liệu thống nhất để bảo đảm
cả tính bảo mật và nguyên vẹn của dữ
liệu được truyền đi
4 DoS Denial-of-service
Cuộc tấn công từ chối dịch vụ (tấn
công DoS - hay tấn công từ chối dịch
vụ phân tán là một nỗ lực làm cho
những người dùng không thể sử dụng
tài nguyên của một máy tính
5 DT Decision tree Cây quyết định là một thuật toán
dùng để phân lớp dự liệu
6 FCS Frame check sequence
Một mã phát hiện lỗi được thêm vào
một khung trong giao thức truyền
thông. Khung được sử dụng để gửi dữ
liệu tải trọng từ một nguồn đến đích.
7 FDT Fuzzy decision tree
Cây quyết định mờ là thuật toán phân
lớp áp dụng lý thuyết mờ vào cây
quyết định
8 FRF Fuzzy random forest
Rừng ngẫu nhiên mờ là thuật toán áp
dụng lý thuyết mờ vào rừng ngẫu
nhiên.
9 FTP File Transfer Protocol
Giao thức truyền tập tin: thường được
dùng để trao đổi tập tin qua mạng
lưới truyền thông dùng giao thức
TCP/IP (chẳng hạn như Internet -
mạng ngoại bộ - hoặc Intranet - mạng
nội bộ)
10 HTTP Hypertext Transfer
Protocol
Giao thức truyền tải siêu văn bản: là
một trong năm giao thức chuẩn của
mạng Internet, được dùng để liên hệ
thông tin giữa Máy cung cấp dịch vụ
và Máy sử dụng dịch vụ.
11 IEEE
The Institute of
Electrical and
Electronics Engineers
Viện kỹ nghệ Điện và Điện tử: là một
tổ chức phi lợi nhuận, chuyên nghiệp
nhằm nâng cao sự thịnh vượng qua sự
phát huy các đổi mới công nghệ tạo
cơ hội nghề nghiệp cho các thành
viên và cổ vũ cộng đồng thế giới mở
rộng
12 IoT Internet of Thing
Internet Vạn Vật, hay cụ thể hơn là
Mạng lưới vạn vật kết nối Internet
hoặc là Mạng lưới thiết bị kết nối
Internet là một liên mạng, trong đó
các thiết bị, phương tiện vận tải (được
gọi là "thiết bị kết nối" và "thiết bị
thông minh"), phòng ốc và các trang
thiết bị khác được nhúng với các bộ
phận điện tử, phần mềm, cảm biến,
cơ cấu chấp hành cùng với khả năng
kết nối mạng máy tính giúp cho các
thiết bị này có thể thu thập và truyền
tải dữ liệu
13 IP Internet Protocol
Giao thức Internet: là một địa chỉ đơn
nhất mà những thiết bị điện tử hiện
nay đang sử dụng để nhận diện và
liên lạc với nhau trên mạng máy tính
bằng cách sử dụng giao thức Internet.
14 MAC Media Access Control
Điều khiển truy nhập môi trường: là
tầng con, một phần của tầng liên kết
dữ liệu trong mô hình 7 tầng OSI
15 NLP Natural Language
Processing Xử lý ngôn ngữ tự nhiên
16 OOB Out of bag Là phương pháp đo lỗi dự đoán của
random forest, decision tree .v.v..
17 RF Random forest
Rừng ngẫu nhiên: Tương tự cây
quyết định là thuật toán dùng để phân
lớp
18 SSID Service Set Identifier
Là tên chính của mạng cục bộ không
dây 802,11 gồm mạng gia đình và các
hotspot công cộng
19 STA STAtion
Một thiết bị client trong mạng không
dây 802.11 như máy tính, máy tính
xách tay hoặc điện thoại thông minh.
Thuật ngữ STA đôi khi cũng được sử
dụng cho điểm truy cập, trong trường
hợp đó, STA là bất kỳ thiết bị nào
giao tiếp qua giao thức 802.11
20 TKIP Temporal Key
Integrity Protocol
Là một giao thức bảo mật được sử
dụng trong chuẩn mạng không dây
IEEE 802.11
21 WLAN Wireless LAN
Mạng cục bộ không dây (viết tắt từ
tiếng Anh: wireless local area
network) là mạng cục bộ gồm các
máy tính liên lạc với nhau bằng sóng
vô tuyến.
1 CHƯƠNG I: TỔNG QUAN BÀI TOÁN VÀ KIẾN THỨC NỀN
1.1 Đặt vấn đề
Ngày nay với sự phát triển của công nghệ và kinh tế, các thiết bị không dây như
điện thoại di động, máy tính xách tay, v.v. không ngừng gia tăng. Kèm theo đó là sự
phát triển của các hệ thống mạng không dây (WiFi) có mặt ở mọi nơi từ gia đình, các
công ty đến các địa điểm công cộng như quán ăn, quán café. Tốc độ phát triển của các
thiết bị không dây và mạng không dây đi kèm theo mối đe dọa từ an ninh mạng. Mỗi
ngày có hàng triệu giao dịch được thực hiện qua mạng. Chính vì sự phổ biến và tầm
quan trọng của nó như vậy mà vấn đề về bảo mật và an toàn cho mạng không dây được
đặt lên cao đặc biệt là ở những nơi quan trọng như ngân hàng hay cơ quan chính phủ.
Các cuộc tấn công mạng ngày các phổ biến làm thiệt hàng tỷ đô cho nền kinh tế.
Trên thế giới thiệt hại do các cuộc tấn công mạng lên đến 200 tỷ usd mỗi năm.
Theo Báo cáo An ninh mạng thường niên năm 2017 của Cisco, hơn 1/3 tổ chức từng bị
vi phạm an ninh trong năm 2016 chịu thiệt hại đáng kể do mất khách hàng, cơ hội và
doanh thu lên đến hơn 20% [5].
Hình 1.1: Báo cáo hàng năm về tình hình bảo mật của Cisco [27]
Hơn nữa ngày nay với sự phát triển của IoT, các thiết bị kết nối internet, router wifi, trở
thành đích nhắm của các hacker. Chính vì vậy rất nhiều biện pháp được đưa ra để phòng
chống và ngăn chặn các hình thức tấn công mạng.
Do đó bài toán được đặt ra ở đây là xác định một truy cập là bình thường hay bất
thường, Hay đúng hơn là bài toán phân lớp một truy cập mạng theo các thuộc tính đã
biết.
Trong những năm gần đây với sự phát triển và hoàn thiện của các thuật toán học
máy, nó được ứng dụng trong rất nhiều ngành khác nhau. Trong lĩnh vực an ninh mạng
cũng tương với bài toán phân lớp xâm nhập mạng không dây việc áp dụng các thuật
toán học máy đem lại hiệu quả cao. Trong luận văn này thì sẽ tìm hiểu và áp dụng thuật
toán Fuzzy Random Forest cho bài toán này.
1.2 Tổng quan về mạng không dây
1.2.1 Kiến trúc mạng 802.11
802.11 là một tập các chuẩn của tổ chức IEEE bao gồm các đặc tả kỹ thuật liên
quan đến hệ thống mạng không dây. Chuẩn IEEE 802.11 mô tả một giao tiếp "truyền
qua không khí" sử dụng sóng vô tuyến để truyền nhận tín hiệu giữa một thiết bị không
dây và tổng đài hoặc điểm truy cập, hoặc giữa 2 hay nhiều thiết bị không dây với nhau
(mô hình ad-hoc) [6].
Hình 1.2: Kiến trúc mạng không dây [37]
802.11 cấu trúc gồm 3 thành phần chính: tầng quản lý, tầng điều khiển và tầng dữ
liệu [28].
Tầng quản lý: Đóng vai trò cài đặt giao tiếp giữa STA với AP và duy trì kết nối
[28].
Tầng điều khiển: Điều phối truy cập vào môi trường không dây và đóng vai trò
trong việc phân phối các khung dữ liệu từ STA đến AP và ngược lại [28].
Tầng dữ liệu: Được sử dụng để truyền tải thông tin thực tế được tạo ra từ các lớp
khác. Tất cả các khung dữ liệu đều có cùng cấu trúc bao gồm tiêu đề, thân khung và
khung kiểm tra. Chiều dài thân khung trong byte là biến duy nhất của 4byte trong phạm
vi từ 0 đến 2312 [28].
1.2.2 Cơ chế bảo mật
Wired Equivalent Privacy – WEP
WEP là một thuật toán bảo nhằm bảo vệ sự trao đổi thông tin chống lại sự nghe
lén, chống lại những nối kết mạng không được cho phép .v.v.. WEP sử dụng stream
cipher RC4 cùng với một mã 40bit và một số ngẫu nhiên 24bit (initialization vector –
IV) để mã hóa thông tin. Thông tin mã hóa được tạo ra bằng cách thực hiện operation
XOR giữa keystream và plain text [4].
Hình 1.3: Cơ chế bảo mật WEP
Do WEP sử dụng RC4, một thuật toán sử dụng phương thức mã hóa dòng, nên
cần một cơ chế đảm bảo hai dữ liệu giống nhau sẽ không cho kết quả giống nhau sau
khi được mã hóa hai lần khác nhau. Đây là một yếu tố quan trọng trong vấn đề mã hóa
dữ liệu nhằm hạn chế khả năng suy đoán khóa của hacker. Để đạt mục đích trên, một
giá trị có tên Initialization Vector (IV) được sử dụng để cộng thêm với khóa nhằm tạo
ra khóa khác nhau mỗi lần mã hóa. IV là một giá trị có chiều dài 24bit và được chuẩn
IEEE 802.11 đề nghị (không bắt buộc) phải thay đổi theo từng gói dữ liệu. Vì máy gửi
tạo ra IV không theo định luật hay tiêu chuẩn, IV bắt buộc phải được gửi đến máy nhận
ở dạng không mã hóa. Máy nhận sẽ sử dụng giá trị IV và khóa để giải mã gói dữ liệu
[4].
Cách sử dụng giá trị IV là nguồn gốc của đa số các vấn đề với WEP. Do giá trị
IV được truyền đi ở dạng không mã hóa và đặt trong header của gói dữ liệu 802.11 nên
bất cứ ai “tóm được” dữ liệu trên mạng đều có thể thấy được. Với độ dài 24 bit, giá trị
của IV dao động trong khoảng 16.777.216 trường hợp. Những chuyên gia bảo mật tại
đại học California-Berkeley đã phát hiện ra là khi cùng giá trị IV được sử dụng với cùng
khóa trên một gói dữ liệu mã hóa (khái niệm này được gọi nôm na là va chạm IV),
hacker có thể bắt gói dữ liệu và tìm ra được khóa WEP. Thêm vào đó, ba nhà phân tích
mã hóa Fluhrer, Mantin và Shamir đã phát hiện thêm những điểm yếu của thuật toán
tạo IV cho RC4. FMS đã vạch ra một phương pháp phát hiện và sử dụng những IV lỗi
nhằm tìm ra khóa WEP [4].
Thêm vào đó, một trong những mối nguy hiểm lớn nhất là những cách tấn công
thêm hai phương pháp nêu trên đều mang tính chất thụ động. Có nghĩa là kẻ tấn công
chỉ cần thu nhận các gói dữ liệu trên đường truyền mà không cần liên lạc với Access
Point. Điều này khiến khả năng phát hiện các tấn công tìm khóa WEP đầy khó thêm và
gần như không thể phát hiện được [4].
Hiện nay, trên Internet đã sẵn có những công cụ có khả năng tìm khóa WEP như
AirCrack, AirSnort, dWepCrack, WepAttack, WepCrack, WepLab. Tuy nhiên, để sử
dụng những công cụ này đòi hỏi nhiều kiến thức chuyên sâu và chúng còn có hạn chế
về số lượng gói dữ liệu cần bắt được [4].
Mặc dù các thuật toán được cải tiến và kích thước kí tự được tăng lên, qua thời
gian nhiều lỗ hổng bảo mật được phát hiện trong chuẩn WEP khiến nó càng ngày càng
dễ bị qua mặt khi mà sức mạnh của máy tính ngày càng được củng cố. Năm 2001, nhiều
lỗ hổng tiềm tàng đã bị phơi bày trên mạng Internet. Đến năm 2005, FBI công khai trình
diễn khả năng bẻ khóa WEP chỉ trong một vài phút bằng phần mềm hoàn toàn miễn phí
nhằm nâng cao nhận thức về sự nguy hiểm của WEP.
Mặc dù nhiều nỗ lực cải tiến được tiến hành nhằm tăng cường hệ thống của
WEP, chuẩn này vẫn đặt người dùng vào vị trí hết sức nguy hiểm và tất cả các hệ thống
sử dụng WEP nên được nâng cấp hoặc thay thế. Tổ chức Liên minh WiFi chính thức
cho WEP ngừng hoạt động vào năm 2004.
WiFi Protected Access - WPA
WiFi Protected Access là một chuẩn do liên minh WiFi đưa ra nhằm thay thế
cho WEP. Chuẩn này chính thức được áp dụng vào năm 2003, một năm trước khi WEP
được cho "nghỉ hưu". Cấu hình WPA phổ biến nhất là WPA-PSK. WPA sử dụng mã
hóa 256-bit giúp tăng tính bảo mật lên rất nhiều so với 64-bit và 128-bit của WEP [7].
Một trong những yếu tố giúp WPA bảo mật tốt hơn là nó có khả năng kiểm tra
tính toàn vẹn của gói tin - tính năng giúp kiểm tra xem liệu hacker có thu thập hay thay
đổi gói tin truyền qua lại giữa điểm truy cập và thiết bị dùng WiFi hay không; và
Temporal Key Integrity Protocol, hệ thống kí tự cho từng gói, an toàn hơn rất nhiều so
với kí tự cố định của WEP. TKIP sau đó được thay thế bằng Advanced Encryption
Standard [7].
Mặc dù đã có nhiều cải tiến so với WEP nhưng "bóng ma" của người tiền nhiệm
một lần nữa lại ám ảnh WPA. Nguyên nhân nằm ở TKIP, một thành phần chủ chốt của
thuật toán mã hóa này. Liên minh WiFi đã thiết kế để có thể nâng cấp lên TKIP từ phiên
bản firmware của WEP và hacker có thể lợi dụng các điểm yếu của WEP để hack vào
thành phần này từ đó hack vào mạng WPA. Cũng giống như WEP, các tổ chức về bảo
mật đã chứng minh điểm yếu của WPA thông qua một loạt thử nghiệm. Một điểm thú
vị là các phương thức phổ biến nhất để hack WPA không phải là những cuộc tấn công
trực tiếp vào thuật toán này, mà thông qua 1 hệ thống bổ sung được phát hành cùng
WPA là WiFi Protected Setup (WPS - một hệ thống giúp liên kết thiết bị với các điểm
truy cập 1 cách dễ dàng) [7].
Wi-Fi Protected Access II
Đến năm 2006, WPA được thay thế bằng chuẩn mới là WPA2. Những thay đổi
đáng kể nhất của WPA2 so với người tiền nhiệm của nó là WPA2 sử dụng 1 thành phần
mới thay thế cho TKIP là có tên CCMP; đồng WPA2 yêu cầu phải sử dụng thuật toán
AES. Có thể nói rằng chuẩn WPA2 mới nhất này đã tăng khả năng bảo mật của router
WiFi lên cao nhất từ trước tới nay mặc dù nó vẫn còn 1 số lỗ hổng hơi khó hiểu. Tuy
nhiên bạn có thể hình dung về lỗ hổng này là nó yêu cầu hacker phải có quyền truy cập
được vào mạng WiFi trước sau đó chúng mới có thể tiến hành hack được vào các client
khác trong cùng mạng. Bởi thế, WPA2 có thể coi là chuẩn an toàn cho mạng WiFi gia
đình và với lỗ hổng trên, hacker chỉ có thể thâm nhập được vào mạng WiFi của các
doanh nghiệp (với rất nhiều thiết bị kết nối) mà thôi [7].
Ngoài ra, bạn nên lưu ý tắt tính năng WPS, hệ thống dễ bị tấn công trong WPA
và vẫn còn được lưu lại trong WPA2 nhằm tránh các nguy cơ bị tấn công, mặc dù việc
hack vào hệ thống này yêu cầu hacker phải mất từ 2 đến 14 tiếng thông qua một hệ
thống máy tính có năng lực tính toán cao. Bên cạnh đó, việc flash firmware (sử dụng
một bản firmware ngoài, không phải do nhà sản xuất router cung cấp) không hỗ trợ
WPS sẽ giúp cho WiFi của bạn được đảm bảo an toàn tuyệt đối [7].
1.2.3 Các dạng tấn mạng không dây
Có nhiều phương pháp để tấn công mạng không dây, một số phương pháp phổ
biến như:
Tấn công bị động:
Tấn công bị động hay nghe lén là kiểu tấn công không tác động trực tiếp vào
thiết bị nào trên mạng, không làm cho các thiết bị trên mạng biết được hoạt động của
nó vì thế kiểu tấn công này rất khó phát hiện. Các phương thức thường dùng trong tấn
công bị động như: nghe trộm, phân tích luồng thông tin. Sử dụng cơ chế bắt gói tin
Sniffing để lấy trộm thông tin khi đặt một thiết bị thu nằm trong vùng phủ sóng. Tấn
công kiểu bắt gói tin khó bị phát hiện ra sự có mặt của thiết bị bắt gói tin nếu thiết bị đó
không thực sự kết nối tới AP [8].
Có nhiều ứng dụng bắt gói tin có khả năng thu thập được password từ những địa
chỉ HTTP, email, phiên làm việc FTP, telnet. Những kiểu kết nối trên đều truyền
password theo dạng clear text (không mã hóa). Có nhiều ứng dụng có thể lấy được
password trên mạng không dây của quá trình trao đổi giữa Client và Server khi đang
thực hiện quá trình đăng nhập. Việc bắt gói tin giúp kẻ tấn công có thể nắm được thông
tin, phân tích được lưu lượng của mạng và nó còn gián tiếp làm tiền đề cho các phương
thức tấn công phá hoại khác [8].
Tấn công chủ động:
Tấn công chủ động là tấn công trực tiếp vào các thiết bị trên mạng như AP. Cuộc
tấn công chủ động có thể được dùng để tìm cách truy cập tới một server để thăm dò, lấy
những dữ liệu quan trọng, thậm chí làm thay đổi cấu hình cơ sở hạ tầng mạng. Kiểu tấn
công này dễ phát hiện nhưng khả năng phá hoại của nó rất nhanh. Kiểu tấn công cụ thể:
Mạo danh, truy cập trái phép [8].
Một trong những cách phổ biến là một máy tính tấn công bên ngoài giả mạo là
máy tính trong mạng rồi xin kết nối vào mạng để rồi truy cập trái phép nguồn tài nguyên
trên mạng. Hacker sẽ giả mạo địa chỉ MAC, địa chỉ IP của thiết bị mạng trên máy tính
của mình thành các giá trị của máy tính đang sử dụng trong mạng, làm cho hệ thống
hiểu nhầm và cho phép kết nối. Các thông tin về địa chị MAC, IP cần giả mạo có thể
thu thập được từ việc bắt trộm các gói tin trên mạng. Việc thay đổi địa chỉ MAC của
card mạng không dây có thể thực hiện dễ dàng trên hệ điều hành Windows, UNIX [8].
Tấn công kẻ ngồi giữa thao túng
Tấn công kiểu thu hút là trường hợp hacker sử dụng một AP giả mạo chèn vào
giữa hoạt động của các thiết bị, thu hút và giành lấy sự trao đổi thông tin của các thiết
bị về minh. AP chèn vào phải có vị trí, khả năng thu phát cao hơn nhiều so với AP hợp
pháp trong vùng phủ sóng của nó để làm cho các client kết nối lại với AP giả mạo này.
Với kiểu tấn công này thì người dùng khó có thể phát hiện được. Để tấn công thu hút,
hacker phải biết được giá trị SSID mà các client đang sử dụng và key WEP nếu mạng
có sử dụng WEP. Kết nối ngược từ AP trái phép được điều khiển thông qua một thiết
bị client như PC card hay workgroup bridge [8].
Tấn công thu hút có thể được thực hiện trên một laptop với 2 PCMCIA card.
Phần mềm AP chạy trên 1 laptop mà ở đó một PC card được sử dụng như một AP, 1PC
card dùng để kết nối laptop với AP hợp pháp. Lúc này latop trở thành kẻ ở giữa hoạt
động giữa client và AP hợp pháp. Hacker dùng kiểu tấn công này có thể lấy được các
thông tin giá trị bằng cách sử dụng các chương trình phân tích trên máy tính [8].
Tấn công xác thực lại
Kẻ tấn công xác định mục tiêu tấn công là các người dùng trong mạng WLAN
và các kết nối của họ đến AP. Sau đó sẽ chèn các frame yêu cầu xác thực lại vào mạng
WLAN bằng cách giả mạo địa chỉ MAC của AP và các người dùng. Người dùng khi
nhận được các frame yêu cầu xác thực lại sẽ hiểu nhầm là của AP gửi đến. Sau khi ngắt
được kết nối của một người dùng ra khỏi mạng WLAN, hacker tiếp tục thực hiện ngắt
kết nối với các người dùng còn lại. Sau khi bị ngắt kết nối, thông thường người dùng sẽ
kết nối lại để phục hồi dịch vụ, nhưng kẻ tấn công đã nhanh chóng tiếp tục gửi các gói
yêu cầu xác thực lại cho người dùng [8].
Tấn công giả mạo điểm truy cập
Tấn công giả mạo AP là kiểu tấn công man-in-the-middle cổ điển. Đây là kiểu
tấn công mà tin tặc đứng ở giữa và trộm lưu lượng truyền giữa hai nút. Kiểu tấn công
này rất mạnh vì tin tặc có thể trộm tất cả lưu lượng đi qua mạng. Rất khó khăn để tấn
công theo kiểu man-in-the-middle trong mạng có dây bời vì kiểu tấn công này yêu cầu
truy cập thực sự vào đường truyền. Trong mạng không dây thì lại dễ bị tấn công kiểu
này. Tin tặc sẽ tạo ra một AP giả mạo có cấu hình giống hệt như AP hợp pháp bằng
cách sao chép SSID, địa chỉ MAC.v.v.. của AP hợp pháp (những thông tin cấu hình của
AP hợp pháp có thể thu được bằng việc bắt các gói tin truyền trong mạng). Tin tặc phải
chắc chắn AP giả mạo có cường độ tín hiệu mạnh hơn cả so với AP hợp pháp bằng cách
đặt AP giả mạo gần với client hơn AP hợp pháp [8].
Bước tiếp theo là làm cho nạn nhân kết nối tới AP giả bằng cách đợi cho client
tự kết nối hoặc gây ra một cuộc tấn công DoS vào AP hợp pháp do vậy client sẽ phải
kết nối tới AP giả. Sau khi nạn nhân kết nối, nạn nhân vẫn hoạt động bình thường và
nếu nạn nhân kết nối tới một AP hợp pháp khác thì dữ liệu của nạn nhân đều đi qua AP
giả. Do đó, hacker có thể dùng các ứng dụng để thu thập các thông tin anh ta muốn.
Kiểu tấn công này tồn tại do trong 802.11 không yêu cầu chứng thực 2 hướng giữa AP
và client, AP phát quảng bá ra toàn mạng, rất dễ bị nghe trộm và ăn cắp thông tin bởi
hacker [8].
1.2.4 Các dấu hiệu tấn công mạng không dây
Có 3 loại dấu hiệu giúp chúng ta phát hiện được các điểm bất thường
Flooding Attacks: Loại tấn công này nhằm vào management frame thứ mà
không được bảo vệ trong 802.11, mặc dù 802.11 đã cố gắng để lấp lỗ hổng này.
Flooding attacks tạo ra một lượng tăng management frame đột ngột trên một đơn vị thời
gian. Nó là một dạng tấn công tiêu biểu trong trong tấn công DOS [28].
Hình dưới là một deauthentication attack trong các khoảng thời gian 1400 đến
1600 và 2800 đến 3000
Hình 1.4: Tấn công Flooding
Injection Attacks:
Tạo ra một loạt các khung dữ liệu được mã hóa hợp lệ có kích thước nhỏ
hơn.
Hình dưới ARP được thực hiện trên đó truyền một số lượng lớn các khung dữ
liệu nhỏ trong một khoảng thời gian lớn có lặp lại IVs để gợi lên phản ứng của mạng
[28].
Hình 1.5: Tấn công Injection
Impersonation Attacks:
Tạo ra một AP giả thường đi kèm với một cuộc tấn công hủy cấp phép để buộc
STA kết nối với AP riêng. Điểm chung của tất cả các cuộc tấn công mạo danh là số
lượng khung đèn hiệu xấp xỉ gấp đôi so với network victim [28].
Hình 1.6: Tấn công Impersonation
1.3 Giới thiệu một số thuật toán học máy
Trong vài năm trở lại đấy lĩnh vực trí tuệ nhân tạo nói chung và học máy nói
riêng phát triển cực kỳ mạnh vì khả năng ứng dụng của nó.
Học máy là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và
xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết
những vấn đề cụ thể [9].
Theo Arthur Samuel (1959): Máy học là ngành học cung cấp cho máy tính khả
năng học hỏi mà không cần được lập trình một cách rõ ràng
Theo Giáo sư Tom Mitchell – Carnegie Mellon University: Machine Learning
là 1 chương trình máy tính được nói là học hỏi từ kinh nghiệm E từ các tác vụ T và với
độ đo hiệu suất P. Nếu hiệu suất của nó áp dụng trên tác vụ T và được đo lường bởi độ
đo P tăng từ kinh nghiệm E. Ngày nay học máy được ứng dụng rộng rãi trên nhiều lĩnh
vực và đem lại thành công lớn. Một số lĩnh vực áp dụng học máy thành công như: Xử
lý ngôn ngữ tự nhiên, Hệ thống gợi ý, Xử lý dữ liệu lớn, lĩnh vực robot, xe tự lái .v.v..
1.3.1 Support vector machine
Support vector machine là một khái niệm trong thống kê và khoa học máy tính
cho một tập hợp các phương pháp học có giám sát liên quan đến nhau để phân loại và
phân tích hồi quy [10].
Nguyên lý cơ bản của SVM là tìm một siêu phẳng phân hoạch tối ưu cho phép
chia các điểm trong không gian nhiều chiều thành 2 lớp nằm ở 2 phía chưa siêu phẳng
[37].
SVM dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau.
Do đó SVM là một thuật toán phân loại nhị phân.
Hình 1.7: Các điểm trong không gian D chiều
Cho trước n điểm trong không gian D chiều (mỗi điểm thuộc vào một lớp kí hiệu
là +1 hoặc -1), mục đích của giải thuật SVM là tìm một siêu phẳng phân hoạch tối ưu
cho phép chia các điểm này thành hai phần sao cho các điểm cùng một lớp nằm về một
phía với siêu phẳng này [10].
1{( , ) | , { 1,1}}p n
i i i i iD x y x y == − (1.1)
Mỗi siêu phẳng đều có thể được viết dưới dạng một tập hợp các điểm x thỏa
mãn:
0w x b − = (1.2)
Công thức trên là tích vô hướng với vector pháp tuyến của siêu phẳng (w) và b
đóng vai trò là tham số.
Ta cần chọn w và b để cực đại hóa lề, hay khoảng cách giữa hai siêu mặt song
song ở xa nhau nhất có thể trong khi vẫn phân chia được dữ liệu [10]
Các siêu mặt ấy được xác định bằng:
1w x b − = (1.3)
1w x b − = − (1.4)
Hình 1.8: Siêu phẳng phân lớp các điểm trong không gian
Ví dụ:
Giả sử ta có một tập được gán nhãn (+1): {(3,1), (3, -1), (6, 1), (6, -1)}
Và tập các điểm được gán nhãn âm (-1): {(1, 0), (0, 1), (0, -1), (-1, 0)}
trong mặt phẳng R+ [33].
Hình 1.9 : Đồ thị biểu diễn các điểm trong mặt phẳng R+
Ta sử dụng SVM để phân biệt hai lớp (+1 và -1). Bởi vì dữ liệu được chia
tách một cách tuyến tính, nên chúng ta sử dụng một hàm tuyến tính để phân tách 2 lớp.
Theo quan sát, ta chọn ra ba vector hỗ trợ để thực thi các phép toán nhằm tìm ra mặt
phẳng phân tách tối ưu nhất [33]:
{s1 = (1,0), s2 = (3,1), s3 = (3, -1)}
Hình 1.10 : Các điểm lựa chọn cho siêu phẳng
Các vector hỗ trợ được tăng cường bằng cách thêm 1. Tức là s1 = (1,0), thì nó
sẽ được chuyển đổi thành s = (1, 0, 1). Theo kiến trúc SVM, Nhiệm vụ là tìm ra những
giá trị αi.
1 1 1 2 2 1 3 3 1( ) ( ) ( ) ( ) ( ) ( ) 1s s s s s s + + = − (1.5)
1 1 2 2 2 2 3 3 2( ) ( ) ( ) ( ) ( ) ( ) 1s s s s s s + + = − (1.6)
1 1 3 2 2 3 3 3 3( ) ( ) ( ) ( ) ( ) ( ) 1s s s s s s + + = − (1 .7)
Hình 1.11: Kiến trúc mô hình SVM
Do sử dụng SVM tuyến tính nên hàm Φ() - dùng để chuyển đổi vector
từ không gia dữ liệu đầu vào sang không gian đặc trưng – sẽ bằngΦ = () I. Biểu thức
trên được viết lại như sau [33]:
1 1 1 2 2 1 3 3 1 1s s s s s s + + = − (1.8)
1 1 2 2 2 2 3 3 2 1s s s s s s + + = + (1.9)
1 1 3 2 2 3 3 3 3 1s s s s s s + + = − (1.10)
Rút gọn biểu thức thông qua tính tích vô hướng của các vector:
1 2 32 4 4 1 + + = − (1.11)
1 2 34 11 9 1 + + = + (1.12)
1 2 34 9 11 1 + + = + (1.13)
Giải hệ phương trình trên có: α1 = -3.5, α2 = 0.75, α3 = 0.75. Tiếp đến tính trọng
số ω thông qua công thức:
1 3 3 1
3.5 0 0.75 1 0.75 1 0
1 1 1 2
i i
i
s
= = − + + − = −
(1.14)
Siêu phẳng phân chia hai lớp đó là: y = wx + b với w = (1, 0) và b = -2
Hình 1.12: Đồ thị biểu diễn siêu phẳng tìm được
1.3.2 Thuật toán Bayesian
Định lý Bayes:
( ) ( | ) ( )( | )
( ) ( )
P XY P X Y P YP Y X
P X P X= =
(1.15)
Với:
P(X): Xác suất của sự kiện X xảy ra, không quan tâm đến Y
P(Y): Xác suất của sự kiện Y xảy ra, không quan tâm đến X
P(X|Y): Xác suất (có điều kiện) của sự kiện X xảy ra, nếu biết rằng sự kiện Y xảy
ra
P(Y|X): Xác suất hậu nghiệm của Y nếu biết X
Thuật toán bayes dựa trên định lý Bayes áp dụng cho các bài toán giả định
điều kiện độc lập. Nghĩa là giả định đặc trưng của một lớp xảy ra không ảnh hưởng hay
phụ thuộc vào đặc trưng của lớp khác [1].
Áp dụng vào bài toán phân lớp ta phát biểu bài toán như sau
D: Là tập dữ liệu huấn luyện D (x1, x2 …, xn) Các thuộc tính x1, x2…, xn độc
lập điều kiện đôi một với nhau
Ci: Phân lớp i, với i= {1, 2 …, m}
Theo định lý bayes:
( | ) ( )( | )
( )
ii
P X C P CiP C X
P X=
(1.16)
Theo tính chất độc lập của điều kiện:
1 21
( | ) ( | ) ( | ) ( | ) ... ( | )n
i k i i i n ik
P X C P x C P x C P x C P x C=
= = (1.17)
⇨ Khi đó xác suất xảy ra của một điều kiện x mới là:
1
max( ( )) ( | )n
i k i
k
P c P x C=
(1.18)
Trong đó:
P(Ci): được tính dựa trên tần suất xuất hiện tài liệu trong tập huấn luyện.
P(xk|Ci): được tính từ những tập thuộc tính đã được tính trong quá trình huấn
luyện
Thuật toán Bayes [46]:
Bước 1: Huấn luyện tập dữ liệu:
Tính xác suất P(Ci)
Tính xác suất P(xk|Ci)
Bước 2: Lớp của giá trị mới được gắn cho lớp có xác suất lớn nhật theo công
thức:
1
max( ( )) ( | )n
i k i
k
P C P x C=
(1.19)
Ví dụ
Bảng 1.1 : Dữ liệu sử dụng cho phân lớp Bayes
# Outlook Temp Humidity Wind Decision
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Weak Yes
8 Sunny Mild High Weak No
9 Sunny Cold Normal Weak Yes
10 Rain Mild Normal Strong Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No
Xác định Decision với giá trị thời tiết mới {sunny, cool, high, strong}
Bước 1:
Tính các xác suất P(Ci)
Với C1 = “yes” : P(C1) = P(“yes”) = 9/14
Với C2 = “no”: P(C2) = P(“no”) = 5/14
Tính các xác suất P(xk|Ci)
- Với thuộc tính Outlook: có các giá trị sunny, overcast, rain
P(sunny|yes) = 2/9 P(sunny|no) = 3/5
P(overcast|yes) = 4/9 P(overcast|no) = 0/5
P(rain|yes) = 3/9 P(rain|no) = 2/5
- Với thuộc tính Temp: có các giá trị Hot, Cold, Mild
P(hot|yes) = 2/9 P(hot|no) = 2/5
P(cold|yes) = 3/9 P(cold|no) = 1/5
P(mild|yes) = 4/9 P(mild|no) = 2/5
- Với thuộc tính Humidity: có các giá trị Normal, High
P(normal|yes) = 6/9 P(normal|no) = 1/5
P(high|yes) = 3/9 P(high|no) = 4/5
- Với thuộc tính Wind: có các giá trị Weak, Strong
P(weak|yes) = 6/9 P(weak|no) = 2/5
P(strong|yes) = 3/9 P(strong|no) = 3/5
Bước 2: Phân lớp Xnew = {sunny, cool, high, strong}
Tính các xác suất:
P(yes) * P(Xnew|yes) = 0.005 P(no) * P(Xnew|no) = 0.021
Vậy Xnew thuộc vào lớp “no”
1.3.3 Mạng neural
Mạng nơ ron nhân tạo là một mô hình xử lý thông tin được mô phỏng dựa trên
hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các Nơ-ron được
gắn kết để xử lý thông tin.
ANN hoạt động giống như bộ não của con người, được học bởi kinh nghiệm
(thông qua việc huấn luyện), có khả năng lưu giữ các tri thức và sử dụng các tri thức đó
trong việc dự đoán các dữ liệu chưa biết [2].
Một mạng nơ-ron là một nhóm các nút nối với nhau, mô phỏng mạng nơ- ron thần
kinh của não người.
Mạng nơ ron nhân tạo được thể hiện thông qua ba thành phần cơ bản: mô hình của
nơ-ron, cấu trúc và sự liên kết giữa các nơ ron. Trong nhiều trường hợp, mạng nơ ron
nhân tạo là một hệ thống thích ứng, tự thay đổi cấu trúc của mình dựa trên các thông tin
bên ngoài hay bên trong chạy qua mạng trong quá trình học [2].
Hình 1.13: Kiến trúc chung của mạng nơ-ron
Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer, Hidden
Layer và Output Layer
Trong đó, lớp ẩn gồm các nơ-ron, nhận dữ liệu input từ các Nơ-ron ở lớp
trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo. Trong một mạng
ANN có thể có nhiều Hidden Layer
Hình 1.14: Mô hình mạng nơ-ron
Inputs: Mỗi Input tương ứng với 1 đặc trưng của dữ liệu.
Ví dụ: Trong ứng dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay
tiền hay không thì mỗi input là một thuộc tính của khách hàng như thu nhập, nghề
nghiệp, tuổi, số con, .v.v..[2].
Output: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như với
bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì output là yes hoặc
no [2].
Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng của
một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu vào đối với quá
trình xử lý thông tin chuyển đổi dữ liệu từ Layer này sang layer khác. Quá trình học của
ANN thực ra là quá trình điều chỉnh các trọng số Weight của các dữ liệu đầu vào để có
được kết quả mong muốn [2].
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input được
đưa vào mỗi Nơ-ron [2].
1
k
i i
i
S w x=
= (1.20)
Transfer Function (Hàm chuyển đổi): Hàm tổng của một nơ-ron cho biết
khả năng kích hoạt của nơ-ron đó còn gọi là kích hoạt bên trong. Các nơ-ron này
có thể sinh ra một output hoặc không trong mạng ANN, nói cách khác rằng có thể
output của 1 Nơ-ron có thể được chuyển đến layer tiếp trong mạng Nơ-ron theo
hoặc không. Mối quan hệ giữa hàm tổng và kết quả output được thể hiện bằng
hàm chuyển đổi. Giá trị đầu ra của nơ-ron có thể biểu diễn theo công thức toán học sau
[2].
( )k
i i
i
y f w x = − (1.21)
Tùy vào từng bài toán, hàm chuyển đổi có thể là các hàm dưới đây:
● Hàm ngưỡng
Hình 1.15: Công thức và đồ thị hàm ngưỡng
● Hàm tuyến tính
Hình 1.16: Công thức và đồ thị hàm tuyến tính
● Hàm sigmod
Hình 1.17: Công thức và đồ thị hàm sigmod
● Hàm tanh
Hình 1.18: Công thức và đồ thị hàm tanh
● Hàm Gausian
Hình 1.19: Công thức và đồ thị hàm gausian
Mạng nơ-ron là một bộ phân lớp mạnh được sử dụng trong nhiều lĩnh vực khác
nhau như xử lý ảnh, xử lý ngôn ngữ tự nhiên đồng thời cũng được sử dụng trong việc
xác định xâm nhập mạng. Ngoài ra nó còn được kết hợp với nhiều phương pháp khác
như cách tiếp cận thống kê và một số biến thể của nó [30] [31] [32].
1.4 Mục tiêu của luận văn
Luận văn tập trung nghiên cứu và áp dụng thuật toán fuzzy random forest vào
bài toán phân lớp xâm nhập mạng không dây từ đó có thể đặt được một số điểm như
nhau.
- Biết các dạng tấn công mạng không dây cơ bản
- Hiểu được một số thuật toán học máy áp dụng trong bài toán phân lớp mạng
không dây
- Áp dụng được thuật toán fuzzy random forest và áp dụng vào bài toán phân lớp
mạng không dây
Mục tiêu chính của luận văn là xây dựng được một thuật toán phân lớp hiệu quả
và có độ chính xác cao.
1.5 Tổng kết chương
Bài toán phát hiện xâm nhập mạng không dây là một bài toán quan trọng hiện
nay chính bởi vì tầm quan trọng và tốc độ phát triển nhanh của internet. Cùng với sự
phát triển của AI nói chung và ML nói riêng trong những năm trở lại đây, cũng đã có
rất nhiều nghiên cứu áp dụng các thuật toán học máy vào bài toán phân lớp và phát hiện
xâm nhập mạng không dây đem lại những kết quả nhất định. Luận văn này cũng tập
trung nghiên cứu và ứng dụng thuật toán fuzzy random forest vào bài toán này với mục
đích xây dựng được một thuật toán phân lớp có kết quả tốt.
2 CHƯƠNG II: THUẬT TOÁN FUZZY RANDOM FOREST
2.1 Giới thiệu
Ngày nay với sự phát triển của xã hội dữ liệu ngày càng nhiều kèm theo sự phức
tạp và tính đa dạng. Vì vậy phân lớp dữ liệu luôn là một bài toán đầy thách thức [38].
Rất nhiều thuật toán học máy đã được áp dụng vào bài toán phân lớp dữ liệu [13]. Đã
có rất nhiều thuật toán giải quyết vấn đề phân lớp đem lại độ chính xác cao nhưng với
điều kiện là dữ liệu đầy đủ và chính xác [40].
Trong đó cây quyết định [17] là một thuật toán phổ biến trong bài toán phân lớp
[14,15]. Một số ưu điểm của cây quyết định là độ chính xác cao, đòi hỏi phải điều chỉnh
một số lượng nhỏ các tham số và cây quyết định là một thuật toán dễ hiểu, dễ giải thích
và cài đặt [16].
Nhưng đối với bài toán mà dữ liệu không chắc chắn, không đầy đủ thì thuật toán
cây quyết định chưa phải là tốt nhất. Để giải quyết vấn đề này nhiều kỹ thuật và thuật
toán được đưa ra. Trong đó kỹ thuật kết hợp các thuật toán với cho thấy sự hiệu quả.
Cây quyết định mờ là một trong những cải tiến của cây quyết định cơ bản dùng
cho bài toán với dữ liệu không chắc chắn [18], [19]. Tương tự như cây quyết định cơ
bản thì cây quyết định mờ cũng là một đồ thị không tuần hoàn gồm các thành phần như
gốc, đỉnh, lá .v.v.. Cây được thiết lập theo hướng từ trên xuống dưới theo cách thức chia
để trị, ở điểm ban đầu các mẫu huấn luyện nằm ở gốc của cây. Điều kiện dừng là khi
tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá), không còn thuộc tính nào
để phân chia mẫu, không còn lại mẫu nào tại nút.
Điểm khác biệt giữa cây quyết định mờ và cây quyết định cơ bản là các đỉnh là
các tập mờ thay vì các tập thông thường như ở cây quyết định cơ bản hoặc sử dụng tập
mờ để định lượng các thuộc tính liên tục sau đó sử dụng ID3 để xây dựng cây quyết
định. Entropy mờ, information gain, gain ratio được dùng để đánh giá các thuộc tính.
Các thuật toán khác khai thác sự mơ hồ tối thiểu (không cụ thể) của một phân bố
khả năng [20], chỉ số Gini mờ [21], tầm quan trọng phân loại tối đa của thuộc tính góp
phần vào hệ quả [22] và chuẩn hóa mờ Kolmogorov-Smirnov [23] để chọn thuộc tính
được sử dụng trong nút tách.
Một cách tiếp cận khác là các thuộc tính liên tục được phân chia trước quá trình
học cây quyết định mờ. Bằng cách tối ưu hóa các chỉ mục được xác định một cách có
tổ chức [24]. Các tác giả đề xuất một phân tích thú vị về sự kết hợp khác nhau của các
phương pháp discretization để phân chia các thuộc tính thành các phân vùng và các
cách tiếp cận khác nhau để xác định các chức năng thành viên trên các phân vùng này
[25].
Một số bài báo đã đề xuất các thuật toán phân chia các thuộc tính liên tục đồng
thời với sự phát triển cây mờ. Các thuật toán này khai thác các phân đoạn mờ đặc biệt
[21] hoặc các phương pháp khá phức tạp [26], [27].
Việc mờ hóa cây quyết định đã cho thấy sự hiệu quả rõ ràng. Từ sự hiệu quả này
mà việc nghĩ đến áp dụng mờ hóa vào thuật toán random forest được phát triển, thuật
toán gốc được Bonissone và cộng sự giới thiệu vào năm 2010 [5,6].
Về thuật toán fuzzy random forest dựa trên việc khai thác hai thuật toán. Đầu
tiên là thuật toán sinh rừng cho mỗi cây, tiếp theo là lấy mẫu ngẫu nhiên và thay thế
mẫu có sẵn. Thuật toán này dựa trên ID3 và xây dựng cây mờ rồi chọn một tập hợp con
ngẫu nhiên các thuộc tính có sẵn tại mỗi nút và, sau đó, bằng cách chọn một trong những
thuộc tính tốt nhất để thực hiện. Thuộc tính liên tục được phân chia trước khi bắt đầu
việc tạo ra random forest bằng cách sử dụng bộ mờ hình thang.
Các phân vùng này thu được thông qua 2 bước. Đầu tiên 1 điểm phân chia được
xác định bằng thuật toàn học cây quyết định C4.5, tiếp theo đó một thuật toán di truyền
được sử dụng để lấy các tập mờ xác định việc phân chia các thuộc tính liên tục từ các
điểm phân chia. Khi một đối tượng chưa được dán nhãn phải được phân loại, tất cả các
cây mờ được kích hoạt và kết quả đầu ra được kết hợp. Các phương pháp kết hợp khác
nhau được đề xuất và thử nghiệm trong [41].
Bonissone và cộng sự [42] tiếp đến Jose M. Cadenas và cộng sự đã có nhiều cải
tiến cho thuật toán fuzzy random forest ban đầu [43] bằng cách mở rộng xử lý thông tin
trong bộ FRF để kết hợp các dữ liệu có chứa các thuộc tính được đo bằng các giá trị
khoảng cách và các thuộc tính được đo bằng các giá trị mờ có thể khác với các giá trị
mờ tạo thành phân chia mờ của thuộc tính và do đó mức độ tương đồng của các giá trị
mờ này cho mỗi phần tử của phân vùng mờ của thuộc tính có thể nhỏ hơn 1.
Matteis và cộng sự [16] đề xuất phương pháp tạo phân vùng mờ đồng thời với
việc tạo cây quyết định mờ, khi tạo nút quyết định thông qua ba bộ mờ tam giác. Cốt
lõi của tập mờ trung gian trùng với các cực trị phải và trái của các giá đỡ của tập mờ
trái và phải. Do đó, phân vùng được xác định hoàn toàn bởi một điểm duy nhất: cốt lõi
của bộ fuzzy trung gian. Đối với mỗi thuộc tính trong tập các thuộc tính được chọn ngẫu
nhiên cho nút, chúng ta đánh giá các vị trí khác nhau của lõi và chọn vị trí cung cấp lợi
ích thông tin cao nhất. Thu được thông tin được tính bằng cách sử dụng entropy mờ.
Do đó, nút cha mẹ được chia thành ba nút con (một cho mỗi tập mờ), chứa các đối tượng
của nút cha với các giá trị thành viên cao hơn 0.5 đến tập mờ tương ứng. Cùng một biến
liên tục có thể được xem xét trong các nút quyết định khác nhau từ gốc đến lá: cho mỗi
nút quyết định chúng ta áp dụng cùng một phân vùng mờ. Vì mỗi nút này tập trung vào
một khoảng thời gian cụ thể của vũ trụ của biến liên tục, điều này tương ứng với việc
thực hiện phóng to ở khoảng thời gian cụ thể. Việc học của cây quyết định mờ sẽ chấm
dứt khi không có nút nào có thể được tách ra thêm dựa trên các điều kiện xác định.
Meenakshi và Venkatachalam [44] đã đề xuất phương pháp sử dụng fuzzy
entropy để tìm kiếm một cách tốt nhất cây quyết định đối với những bài toán về dữ liệu
không chắc chắn.
Vitaly và Penka [45] đã sử dụng một kỹ thuật tính toán tích lũy thông tin và tích
lũy entropy cho tập dữ liệu mờ làm giảm chi phí tạo cây quyết định tối thiểu dựa trên
các tiêu chí tối ưu mới thu được một cái quyết định có trật tự.
2.2 Thuật toán Decision Tree
Trong lĩnh vực máy học cây quyết định là một kiểu mô hình dự báo, nghĩa là
một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu
của sự vật/hiện tượng. Mỗi một nút trong tương ứng với một biến; đường nối giữa nó
với nút con của nó thể hiện một giá trị cụ thể cho biến đó. Mỗi nút lá đại diện cho giá
trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến được biểu diễn bởi
đường đi từ nút gốc tới nút lá đó. Kỹ thuật máy học dùng trong cây quyết định được gọi
là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định [11].
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá
dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho các
phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó.
Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập con
dựa theo một kiểm tra giá trị thuộc tính. Quá trình này được lặp lại một cách đệ quy cho
mỗi tập con dẫn xuất. Quá trình đệ quy hoàn thành khi không thể tiếp tục thực hiện việc
chia tách được nữa, hay khi một phân loại đơn có thể áp dụng cho từng phần tử của tập
con dẫn xuất. Một bộ phân loại random forest sử dụng một số cây quyết định để có thể
cải thiện tỉ lệ phân loại [11].
Giải thuật ID3 (gọi tắt là ID3) Được phát triển đồng thời bởi Quinlan trong AI
và Breiman, Friedman, Olsen và Stone trong thống kê. ID3 là một giải thuật học đơn
giản nhưng tỏ ra thành công trong nhiều lĩnh vực. ID3 là một giải thuật hay vì cách biểu
diễn tri thức học được của nó, tiếp cận của nó trong việc quản lý tính phức tạp, heuristic
của nó dùng cho việc chọn lựa các khái niệm ứng viên, và tiềm năng của nó đối với việc
xử lý dữ liệu nhiễu [12].
ID3 biểu diễn các khái niệm ở dạng các cây quyết định. Biểu diễn này cho phép
chúng ta xác định phân loại của một đối tượng bằng cách kiểm tra các giá trị của nó
trên một số thuộc tính nào đó.
Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các ví dụ
rèn luyện hay còn gọi là dữ liệu rèn luyện.
Input: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các thuộc tính mô tả một tình
huống, hay một đối tượng nào đó, và một giá trị phân loại của nó.
Output: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập dữ
liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chưa gặp trong tương lai.
Giải thuật ID3 xây dựng cây quyết định được trình bày như sau [12]:
Lặp:
1. Chọn A <= thuộc tính quyết định “tốt nhất” cho nút kế tiếp
2. Gán A là thuộc tính quyết định cho nút
3. Với mỗi giá trị của A, tạo nhánh con mới của nút
4. Phân loại các mẫu huấn luyện cho các nút lá
5. Nếu các mẫu huấn luyện được phân loại hoàn toàn thì NGƯNG,
Ngược lại, lặp với các nút lá mới.
Thuộc tính tốt nhất ở đây là thuộc tính có entropy trung bình thấp nhất theo thuộc
tính kết quả với Entropy được tính như sau:
Gọi S là tập các mẫu huấn luyện
Gọi p là tỷ lệ các mẫu dương trong S
Ta có H ≡ – p.log2p – (1 – p).log2(1 – p)
Ví dụ:
Training data
Bảng 2.1: Dữ liệu phân lớp sử dụng cây quyết định
# Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
Test data
Bảng 2.2: Dữ liệu kiểm thử thuật toán cây quyết định
1 Rain Mild Normal Weak Yes
2 Sunny Mild Normal Strong Yes
3 Overcast Mild High Strong Yes
4 Overcast Hot Normal Weak Yes
5 Rain Mild High Strong No
Entropy: 2
1
( ) log ( )n
i i
i
E p p p=
= −
Information Gain: ( , ) ( ) ( | )Gain X T E X E X T= −
E(Decision) = -(p(no).log2(p(no) + p(yes).log2(p(yes))) = - (4/9.log2(4/9)+5/9.log2(5/9)) =
0.991
E(Decision|Outlook) = p(Sunny).E(Sunny|Decision) + p(Overcast).E(Overcast|Decision) +
p(Rain).E(Rain|Decision) = 4/9.-(3/4. log2(3/4) + 1/4. log2(1/4)) + 2/9.0 + 3/9.-(1/3.
log2(1/3)+2/3. log2(2/3)) = 2/3
Gain(Decision|Outlook) = E(Decision) – E(Decision| Outlook) = 0.991-0.667 = 0.324
E(Decision|Temperature) = p(Hot).E(Hot|Decision) + p(Mild).E(Mild|Decision) +
p(Cool).E(Cool|Decision) = 3/9.-(2/3. log2(2/3) + 1/3. log2(1/3)) + 2/9.-(1/2. log2(1/2) + 1/2.
log2(1/2)) + 4/9.-(1/4. log2(1/4)+3/4. log2(3/4)) = 8/9
Gain(Decision|Temperature) = E(Decision) – E(Decision| Temperature) = 0.991-8/9=0.1
E(Decision|Humidity) = p(High).E(High|Decision) + p(Normal).E(Normal|Decision) = 5/9.-
(3/5. log2(3/5) + 2/5. log2(2/5)) + 4/9.-(1/4. log2(1/4) + 3/4. log2(3/4)) = 0.8999
Gain(Decision|Humidity) = E(Decision) – E(Decision| Humidity) = 0.991-0.8999=0.09
E(Decision|Wind) = p(Weak).E(Weak|Decision) + p(Strong).E(Strong|Decision) = 6/9.-(2/6.
log2(2/6) + 4/6. log2(4/6)) + 3/9.-(2/3. log2(2/3) + 1/3. log2(1/3)) = 0.92
Gain(Decision|Wind) = E(Decision) – E(Decision|Wind) = 0.991-0.92=0.071
Hình 2.1: Hình ảnh cây sau vòng lặp đầu tiên của thuật toán DT
Xét nhánh Overcast : Tất cả record trả về Yes = > Dừng
E(Sunny) = -(3/4. log2(3/4) + 1/4. log2(1/4)) = 0.81
E(Rain) = -1/3.log2(1/3)-2/3.log2(2/3) = 0.918
Gain(Sunny|Temperature) = 0.81 - 2/4.0 - 1/4.0 + 1/4.0 = 0.81
Gain(Sunny|Humidity) = 0.81 – 3/4.0 – 1/4.0 = 0.81
Gain(Sunny|Wind) = 0.81 – 3/4.(-2/3.log2(2/3)-1/3.log2(1/3)) – 1/4.0 = 0.12
Bảng 2.3: Tất cả thuộc tính Sunny của Outlook
# Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
Gain(Rain|Temperature) = 0.918 - 1/3.0 – 2/3.(-1/2.log2(1/2)-1/2.log2(1/2)) = 0.25
Gain(Rain|Hunidity) = 0.918 - 1/3.0 – 2/3.(-1/2.log2(1/2)-1/2.log2(1/2)) = 0.25
Gain (Rain|Wind) = 0.918 – 2/3.0 – 1/3.0 = 0.918
Bảng 2.4: Tất cả thuộc tính Rain của Outlook
# Outlook Temperature Humidity Wind Decision
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
Hình 2.2: Cây phân lớp sau vòng lặp thứ 2 của thuật toán DT
Xét nhánh High: All record return No => Stop
Xét nhánh Normal: All record return Yes = > Stop
Xét nhánh Weak: All record return Yes => Stop
Xét nhánh Strong: All record return No => Stop
Hình 2.3: Cây phân lớp cuối cùng của thuật toán DT
Test result
Bảng 2.5: Bảng đánh giá và kiểm tra kết quả của thuật toán DT
# Outlook Temperature Humidity Wind Decision Tree
result
1 Rain Mild Normal Weak Yes Yes
2 Sunny Mild Normal Strong Yes Yes
3 Overcast Mild High Strong Yes Yes
4 Overcast Hot Normal Weak Yes Yes
5 Rain Mild High Strong No No
2.3 Thuật toán Fuzzy Decision Tree
Fuzzy Decision Tree là mở rộng của cây quyết định áp dụng lý thuyết mờ trong
việc phân lớp [34] [56].
Hình 2.4: Ví dụ về cây quyết định với phân lớp mờ và phân lớp rõ
Hình trên cho thấy sự khác biệt của cây quyết định thông thường và cây quyết
định mờ. Với cây quyết định thông thường đường phân tách sắc nét (a). Với hình (b) sử
dụng phân giải mềm [56].
Tương tự như cây quyết định thông thường, ta thấy ở cả 2 cây quyết định từ điểm
gốc đến lá đều được thiết lập theo một quy tắc phân loại. Tuy nhiên với cây quyết định
thông thường sử dụng rời rạc hóa do đó đừng phân loại sắc nét tập không gian phân lớp
chồng chéo như hình (a). Đối với cây quyết định mờ kết quá trong phạm vi trong khoảng
[0,1] để lấy làm mức độ khả năng phù hợp của mỗi đối tượng [56].
Ví dụ với 2 cây quyết định trên ta có đối tượng (x1=81, x2=25). Với cây quyết
định thông thường kết quá là c3. Tuy nhiên nếu điểm lấy dữ liệu di chuyển nhỏ tới một
điểm mới do nhiễu ví dụ (x1 = 79, x2 = 25) thì cây quyết định cổ điển sẽ cho kết quả
sai: lớp c2. Ngược lại, cây quyết định mờ cho kết quả về các khả năng mà đối tượng
thuộc về các lớp c1, c2, c3 tương ứng π1=0, π2=0.52, π3=0.48. Theo kết quả này người
dùng có thể đưa ra quyết định hoặc tiến hành thử nghiệm và điều tra thêm. Kết quả phân
loại sai có thể bị giảm [56].
Mỗi nhánh của cây quyết định mờ, từ gốc tới lá, tạo thành một quy tắc quyết
định, có thể được biểu diễn theo định dạng “nếu 1x là 1A và .... ix là iA .... và mx là mA
sau đó là lớp là cj”, trong cái ' 1x là 1A ' .... ' ix là iA ' .... và ' mx là mA ' là các quyết định mờ
ở các nút và các nhánh liên kết, và cj là lớp trong lá. Một ví dụ về quy tắc thu được trong
hình 1 (b) là “nếu x2là B2 và x1 là A1 thì lớp là c2” [56].
Để phân loại cho một đối tượng không xác định được lấy từ các mức độ phù hợp
của đối tượng đến từng nút từ gốc đến lá. Trong ví dụ trên, khả năng của một đối tượng
thuộc lớp 2c được tính bằng: )](),([ 11222 xAxB= , ⊗ là phép nhân mờ trực tiếp (mức tối
thiểu hoặc trọng số trung bình được sử dụng) , )( 22 xB và )( 11 xA là độ phụ thuộc 2x đến
2B và 1x đến 1A tương ứng. Từ đó tính được độ phụ thuộc của một đối tượng đến một
lớp bằng kii ~1}{ = . Nếu nhiều hơn một lá có liên thuộc với ci thì giá trị πI=⊕(πj) được
dùng làm khả năng tương ứng với ⊕ là phép tổng mờ trực tiếp. Cuối cùng một giá trị
lớn nhất ví dụ K với KiK thì lớp Kc sẽ được gán cho đối tượng, nếu không cây
quyết định dự đoán phân phối trên tất cả các lớp [56].
Với tập thông thường thì 1 tập Ac được định nghĩa → aaAc };1,0{:)( Với tập
mờ thì có A là độ phụ thuộc với → aaA ];1,0[:)( A(a) là khả năng A có giá trị a∈
Hình 2.5: Lớp rõ và lớp mờ
Entropy mờ của một tập S được xác định bởi )S,(log)S,()S( 1 j
k
j jF cpcpE == với
+=ji ca iij aAaAcp ))()(()S,( 21 là tỷ lệ mờ của S. [56]
)S()S()S;,( 2S
S
1S
S 11
F
F
FF
F
FF E
N
NE
N
NTAE +=
(2.1)
)S,(log)S,()S( 11 11 j
k
j jF cpcpE =−= (2.2)
)S,(log)S,()S( 21 22 j
k
j jF cpcpE =−= (2.3)
2,1,)S,(SS
== kNNcp kjk
F
c
Fkj (2.4)
Với:
= += ||
1 21
S ))()((S
i iiF aAaAN (2.5)
== ||
1 1
S)(1 S
i iF aAN (2.6)
== ||
1 2
S)(2 S
i iF aAN (2.7)
=ji
jk
ca ik
c
F aAN )(S
(2.8)
Tướng ứng với cây quyết định thông thường có information gain
)S;,()S( TAEE FF − được sử dụng làm tiêu chí đánh giá tốt nhất cho từng thuộc tính
tương ứng.
Ví dụ áp dụng vào bài toán chuẩn đoán lỗi máy.
Dữ liệu gồm 5 lớp: (1) normal condition, (2) tap wear, (3) hole undersize, (4)
hole oversize, and (5) misalignment
8 thuộc tính: (1) the peak torque (x1); (2) the mean torque (x2); (3) the variance
of the torque (x3); (4) the mean of torque in retraction stroke (x4); (5) the mean of thrust
force (x5); (6) the covariance of torque and thrust force (x6); (7) the correlation of torque
and thrust force (x7) and (8) the correlation of torque and thrust force in retraction stroke
(x8) [56].
Hình 2.6: Đồ thị biểu diễn các miền giá trị
Ví dụ kết quả cho một thuộc tính x3 như sau
Phân lớp cứng với decision tree. Decision tree với phân lớp mềm
2.4 Thuật toán Random Forest
Tiếp cận Random Forest (rừng ngẫu nhiên) do (Breiman, 2001) đưa ra là một
trong những phương pháp tập hợp mô hình thành công nhất. Giải thuật random forest
tạo ra một tập hợp các cây quyết định (Breiman et al., 1984), (Quinlan, 1993) không cắt
nhánh, mỗi cây được xây dựng trên tập mẫu bootstrap (lấy mẫu có hoàn lại từ tập học),
tại mỗi nút phân hoạch tốt nhất được thực hiện từ việc chọn ngẫu nhiên một tập con các
thuộc tính. Lỗi tổng quát của rừng phụ thuộc vào độ chính xác của từng cây thành viên
trong rừng và sự phụ thuộc lẫn nhau giữa các cây thành viên. Giải thuật random forest
xây dựng cây không cắt nhánh nhằm giữ cho thành phần lỗi bias thấp (thành phần lỗi
bias là thành phần lỗi của giải thuật học, nó độc lập với tập dữ liệu học) và dùng tính
ngẫu nhiên để điều khiển tính tương quan thấp giữa các cây trong rừng. Tiếp cận random
forest cho độ chính xác cao khi so sánh với các thuật toán học có giám sát hiện nay.
Như trình bày trong (Breiman, 2001), random forest học nhanh, chịu đựng nhiễu tốt và
không bị tình trạng học vẹt. Giải thuật random forest sinh ra mô hình có độ chính xác
cao đáp ứng được yêu cầu thực tiễn cho vấn đề phân loại, hồi quy [3].
x3=<1.03
x3=<0.92 4
x3 >0.92
x7=<0.71 5
x7 >0.71 1
x3>1.03
x3=<1.25 3
x3 >0.92 2
x3=
x7=
x3= 4
x3= 5
x3= 1
x3=
x3= 3
x3= 2
Giải thuật xây dựng random forest
• Từ tập dữ liệu học LS có m phần tử và n biến (thuộc tính), xây dựng T cây
quyết định một cách độc lập nhau
• Mô hình cây quyết định thứ t được xây dựng trên tập mẫu Bootstrap thứ t
(lấy mẫu m phần tử có hoàn lại từ tập học LS)
• Tại nút trong, chọn ngẫu nhiên n’ biến (n’<<n) và tính toán phân hoạch tốt
nhất dựa trên n’ biến này
• Cây được xây dựng đến độ sâu tối đa không cắt nhánh Kết thúc quá trình
xây dựng T mô hình cơ sở, dùng chiến lược bình chọn số đông để phân lớp
một phần tử mới đến X
Hình 2.7: Mô hình thuật toán rừng ngẫu nhiên [3]
Ví dụ:
Xây dựng cây thứ 1:
Chọn cấy thứ nhất là cây ví dụ trên mục 2. Thuật toán cây quyết định => Hình
22: Cây phân lớp cuối cùng của thuật toán DT
Xây dựng cây thứ 2:
Bảng 2.6: Tập dữ liệu phân lớp cho thuật toán RF
# Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No
Chọn ngẫu nhiên bản ghi làm tập training.
Training data cây 2:
Bảng 2.7: Dữ liệu được chọn ngẫu nhiên từ tập dữ liệu ban đầu cho cây 2
# Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
8 Sunny Mild High Weak No
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
13 Overcast Hot Normal Weak Yes
Test data
Bảng 2.8: Dữ liệu để kiểm tra độ chính xác thuật toán RF
# Outlook Temperature Humidity Wind Decision
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
7 Overcast Cool Normal Strong Yes
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
14 Rain Mild High Strong No
E(Decision) = -(p(no).log2(p(no) + p(yes).log2(p(yes))) = - (3/9.log2(3/9)+6/9.log2(6/9)) =
0.918
E(Decision|Outlook) = p(Sunny).E(Sunny|Decision) + p(Overcast).E(Overcast|Decision) +
p(Rain).E(Rain|Decision) = 3/9.-(2/3. log2(2/3) + 1/3. log2(1/3)) + 3/9.0 + 3/9.-(1/3.
log2(1/3)+2/3. log2(2/3)) = 0.612
Gain(Decision|Outlook) = E(Decision) – E(Decision| Outlook) = 0.918-0.612 = 0.306
E(Decision|Temperature) = p(Hot).E(Hot|Decision) + p(Mild).E(Mild|Decision) +
p(Cool).E(Cool|Decision) = 3/9.-(1/3. log2(1/3) + 2/3. log2(2/3)) + 2/9.-(1/2. log2(1/2) + 1/2.
log2(1/2)) + 4/9.-(1/4. log2(1/4)+3/4. log2(3/4)) = 8/9
Gain(Decision|Temperature) = E(Decision) – E(Decision| Temperature) = 0.918-8/9=0.03
E(Decision|Humidity) = p(High).E(High|Decision) + p(Normal).E(Normal|Decision) = 5/9.-
(1/5. log2(1/5) + 4/5. log2(4/5)) + 4/9.-(2/4. log2(2/4) + 2/4. log2(2/4)) = 0.8455
Gain(Decision|Humidity) = E(Decision) – E(Decision| Humidity) = 0.918-0.8455=0.0725
E(Decision|Wind) = p(Weak).E(Weak|Decision) + p(Strong).E(Strong|Decision) = 6/9.-(2/6.
log2(2/6) + 4/6. log2(4/6)) + 3/9.-(1/3. log2(1/3) + 2/3. log2(2/3)) = 0.918
Gain(Decision|Wind) = E(Decision) – E(Decision|Wind) = 0.918-0.918=0
Hình 2.8: Cây RF 2 sau vòng lặp thứ nhất
Xét nhánh Overcast: Tất cả record trả về Yes = > Dừng
E(Sunny) = -(2/3. log2(2/3) + 1/3. log2(1/3)) = 0.918
Gain(Sunny|Temperature) = 0.918 – 1/3.0 – 2/3.(1/2.log2(1/2)+1/2.log2(1/2))= 0.25
Gain(Sunny|Humidity) = 0.918 – 2/3.0 – 1/3.0 = 0.918
Gain(Sunny|Wind) = 0.918 –2/3.0 – 1/3.0= 0.918
Bảng 2.9: Tất cả dữ liệu Sunny của Outlook
# Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
8 Sunny Mild High Weak No
11 Sunny Mild Normal Strong Yes
E(Rain) = -1/3.log2(1/3)-2/3.log2(2/3) = 0.918
Gain(Rain|Temperature) = 0.918 - 1/3.0 – 2/3.(-1/2.log2(1/2)-1/2.log2(1/2)) = 0.25
Gain(Rain|Humidity) = 0.918 - 1/3.0 – 2/3.(-1/2.log2(1/2)-1/2.log2(1/2)) = 0.25
Gain (Rain|Wind) = 0.918 – 2/3.0 – 1/3.0 = 0.918
Bảng 2.10: Tất cả dữ liệu Rain của Outlook
# Outlook Temperature Humidity Wind Decision
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
Hình 2.9: Cây RF 2 sau vòng lặp thứ hai
Xét nhánh Sunny-> Weak : All record return No => Stop
Xét nhánh Sunny-> Strong : All record return Yes => Stop
Xét nhánh Rain -> Weak : All record return Yes => Stop
Xét nhánh Rain -> Strong All record return No => Stop
Hình 2.10: Cây RF 2 hoàn chỉnh thứ nhất
Xây dựng cây 3:
Chọn ngẫu nhiên lấy training data cây 3
Bảng 2.11: Bảng đánh dấu dữ liệu được chọn ngẫu nhiên cho cây 3
# Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No
Training data cây 3
Bảng 2.12: Bảng dữ liệu chọn ngẫu nhiên cho cây 3
# Outlook Temperature Humidity Wind Decision
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
14 Rain Mild High Strong No
E(Decision) = -(p(no).log2(p(no) + p(yes).log2(p(yes))) = - (3/9.log2(3/9)+6/9.log2(6/9)) =
0.918
E(Decision|Outlook) = p(Sunny).E(Sunny|Decision) + p(Overcast).E(Overcast|Decision) +
p(Rain).E(Rain|Decision) = 2/9.-(1/2. log2(1/2) + 1/2. log2(1/2)) + 3/9.0 + 4/9.-(2/4.
log2(2/4)+2/4. log2(2/4)) = 2/3
Gain(Decision|Outlook) = E(Decision) – E(Decision| Outlook) = 0.918-2/3 = 0.25
E(Decision|Temperature) = p(Hot).E(Hot|Decision) + p(Mild).E(Mild|Decision) +
p(Cool).E(Cool|Decision) = 2/9.-(1/2. log2(1/2) + 1/2. log2(1/2)) + 2/9.-(1/2. log2(1/2) + 1/2.
log2(1/2)) + 5/9.-(1/5. log2(1/5)+4/5. log2(4/5)) = 0.8455
Gain(Decision|Temperature) = E(Decision) – E(Decision| Temperature) = 0.918-
0.8455=0.0725
E(Decision|Humidity) = p(High).E(High|Decision) + p(Normal).E(Normal|Decision) = 5/9.-
(1/5. log2(1/5) + 4/5. log2(4/5)) + 4/9.-(2/4. log2(2/4) + 2/4. log2(2/4)) = 0.8455
Gain(Decision|Humidity) = E(Decision) – E(Decision| Humidity) = 0.918-0.8455=0.0725
E(Decision|Wind) = p(Weak).E(Weak|Decision) + p(Strong).E(Strong|Decision) = 6/9.-(3/6.
log2(3/6) + 3/6. log2(3/6)) + 3/9.0 = 2/3
Gain(Decision|Wind) = E(Decision) – E(Decision|Wind) = 0.918=0.25
Hình 2.11: Cây RF 3 sau vòng lặp 1
Xét nhánh Weak: All record return Yes
E(Strong) = -(3/6. log2(3/6) + 3/6. log2(3/6)) = 1
Gain(Strong|Temperature) = 1 – 1/6.0 – 2/6.(-1/2.log2(1/2)-1/2.log2(1/2)) – 3/6.(-
1/3log2(1/3)-2/3log2(2/3))= 0.2
Gain(Strong|Humidity) = 1 –3/6(-2/3log2(2/3)-1/3log2(1/3)) – 3/6(-2/3log2(2/3)-
1/3log2(1/3))= 0.082
Gain(Strong|Outlook) = 1 – 2/6.(-1/2log2(1/2)-1/2log2(1/2)) - 2/6.0 – 2/6.0 = 0.3
Bảng 2.13: Tất cả dữ liệu nhánh Strong của Wind
# Outlook Temperature Humidity Wind Decision
2 Sunny Hot High Strong No
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
14 Rain Mild High Strong No
Hình 2.12: Cây RF 3 sau vòng lặp 2
Xét nhánh Overcast : All record return Yes => Stop
Xét nhánh Rain-> Strong : All record return No => Stop
Bảng 2.14: Nhánh Sunny của Outlook nốt tiếp Strong của Wind
# Outlook Temperature Humidity Wind Decision
2 Sunny Hot High Strong No
11 Sunny Mild Normal Strong Yes
E(Sunny) = -1/2log2(1/2) – 1/2log2(1/2) = 1
Gain(Sunny|Temperature) = 1 – 1.0 = 1
Gain(Sunny|Humidity) = 1 – 1.0 = 1
Figure 2.13: Cây RF 3 hoàn thiện
Test result
Bảng 2.15: Đánh giá kết quả thuật toán RF
# Outlook
Tempe
rature
Humidity Wind Decision
Tree
1
Tree
2
Tree
3
Conclusion
10 Rain Mild Normal Weak Yes Yes Yes Yes Yes
11 Sunny Mild Normal Strong Yes Yes Yes Yes Yes
12 Overcast Mild High Strong Yes Yes Yes Yes Yes
13 Overcast Hot Normal Weak Yes Yes Yes Yes Yes
14 Rain Mild High Strong No No No No No
2 Sunny Hot High Strong No No Yes No No
3 Overcast Hot High Weak Yes Yes Yes Yes Yes
7 Overcast Cool Normal Strong Yes Yes Yes Yes Yes
9 Sunny Cool Normal Weak Yes Yes No Yes Yes
2.5 Thuật toán Fuzzy Random Forest
Trong Random Forest của Breiman [41], mỗi cây xây dựng với kích thước tối
đa và không cắt tỉa. Trong quá trình xây dựng mỗi cây trong rừng, mỗi khi cần tách nút,
chỉ có một tập con ngẫu nhiên của tập tất cả các thuộc tính được xem xét và một lựa
chọn ngẫu nhiên có hoàn lại được thực hiện cho mỗi phép tách nút. Kích thước của tập
con này là tham số duy nhất trong rừng ngẫu nhiên. Kết quả là, một số thuộc tính (bao
gồm cả thuộc tính tốt nhất) không được xem xét cho mỗi phép tách nút, nhưng một số
thuộc tính được loại trừ lại có thể được sử dụng tách nút khác trong cùng một cây.
Random forest [41] có hai yếu tố ngẫu nhiên, một là bagging được sử dụng lựa
chọn tập dữ liệu được sử dụng như dữ liệu đầu vào cho mỗi cây; và hai là tập các thuộc
tính được coi là ứng cử viên cho mỗi nút chia. Tính ngẫu nhiên nhằm tăng sự đa dạng
của cây và cải thiện chính xác kết quả dự báo sau khi tổng hợp dự báo trên các cây trong
rừng. Khi random forest được xây dựng thì 1/3 đối tượng quan sát được loại bỏ ra khỏi
dữ liệu huấn luyện của mỗi cây trong rừng. Các đối tượng này được gọi là “Out of bag
- OOB” [41]. Mỗi cây sẽ có các tập đối tượng OOB khác nhau. Các đối tượng OOB
không sử dụng để xây dựng cây và được sử dụng thử nghiệm cho mỗi cây tương ứng
[41].
Thuật toán 2.1. Fuzzy Random Forest
FRF (input: E, Fuzzy Partition; output: Fuzzy Random Forest)
Begin
1. Tạo tập con: Lấy ngẫu nhiên có hoàn lại |E| mẫu từ tập dữ liệu huấn
luyện E
2. Xây dựng cây quyết định mờ từ tập con (Thuật toán 2.2)
3. Lặp lại bước 1 và bước 2 cho tới khi tất cả các cây quyết định mờ được
xây dựng.
End.
Thuật toán 2.2. Fuzzy Decision Tree
FuzzyDecisionTree (input: E, Fuzzy Partition; output: Fuzzy Decision Tree)
Begin
1. Khởi tạo các mẫu trong dữ liệu huấn luyện E với giá trị 1 (Xfuzzy_tree,root(e)
= 1)
2. Đặt M là tập các thuộc tính, tất cả các thuộc tính được phân vùng theo
phân vùng mờ
3. Chọn thuộc tính để chia tại nút N
3.1. Lựa chọn ngẫu nhiên thuộc tính e từ tập các thuộc tính M
3.2. Tính Information Gain cho thuộc tính e, sử dụng giá trị
Xfuzzy_tree,root(e) mỗi thuộc tính e trong nút N
3.3. Chọn thuộc tính e có Information Gain lớn nhất
4. Phân hoạch nút N theo thuộc tính e được chọn trong bước 3.3 và loại
bỏ khỏ M. Đặt En là tập dữ liệu của
mỗi nút con
5. Lặp lại bước 3 và 4 với mỗi (En, M) cho tới khi phù hợp với điều kiện
dừng
End.
Công thức tính giá trị Information Gain dựa trên thuật toán ID3 sử dụng phân
vùng mờ hình thang [44]. Tư tưởng chính, mỗi thuộc tính {A1, A2,…Af} được biểu diễn
bởi một tập mờ hình thang, vì vậy mỗi nút trong của cây được chia dựa trên phân vùng
số thuộc tính tạo ra nút con cho mỗi tập mờ. Phân vùng mờ mỗi thuộc tính đảm bảo đầy
đủ (không có điểm trong miền nằm ngoài vùng mờ) và là phân vùng mờ mạnh, thỏa
mãn
1
, ( ) 1i
f
A
i
x E x=
= = (2.9)
Với {A1, A2,…Af} là các tập mờ của các phân hoạch cho bởi hàm thuộc 𝜇𝐴𝑖.
Hàm Xt,N(e) được gọi là mức của mẫu e thỏa mãn điều kiện dừng của cây t tại
nút N. Được xác định như sau:
Xfuzzy_tree,root(e) = 1 với e 𝜖E có trong nút gốc của cây t
Xfuzzy_se_partition(e) > 0 và với e 𝜖 E thuộc về một hoặc cả hai nút con. Được xác
định như sau:
Xt,childnode(e) = Xt,node(e) × 𝜇fuzzy_set_partition(e) nếu giá trị e được xác định
Xt,childnode(e) = Xt,node(e) ×
1
_ splitnumber input nếu e có giá trị thiếu
Điều kiện dừng trong cho thuật toán 2 thỏa mãn một trong các trường hợp sau:
(1) tất cả các mẫu e thuộc một nút; (2) số mẫu e thỏa mãn giá trị ngưỡng x cho trước;
(3) Nút lá rỗng.
Phân lớp bằng fuzzy random forest [41]
Các ký hiệu
- T là số cây trong fuzzy random forest
- Nt là tổng số nút lá trong cây thứ t với t=1,2,...,T. Đặc tính phân lớp của cây
quyết định mờ là một mẫu có thể thuộc về một lá hoặc nhiều lá khác nhau do
sự chồng chéo của tập mờ tạo ra một số phân hoạch mà một thuộc tính cùng
tồn tại trên các phân hoạch khác nhau.
- I là tổng số lớp của dữ liệu mẫu.
- e là mẫu sử dụng huấn luyện hoặc kiểm tra.
- Xt.n(e) là độ phụ thuộc mẫu e của nút lá n trên cây t
- Support là độ hỗ trợ của lớp i trong mỗi, lá bằng support(n)=
i
n
E
E với Ei là
tổng mức độ thuộc của các mẫu e trong lớp thứ i của nút lá n, En là tổng mức
độ thuộc của đối tượng e trong nút lá n.
- L_FRF là ma trận có kích thước ( tNT MAX ), với 1 2max( , ... )tN tMAX N N N=
trong đó mỗi phần tử của ma trận là một vectơ kích thước I có Support(i) bằng
độ hỗ trợ của nút lá n trên cây t. Một số phần tử của ma trận không chứa thông
tin vì tất cả các cây không có lá nào đạt tNMAX . Tuy nhiên ma trận L_FRF
bao gồm tất cả các thông tin được tạo ra bởi FRF, trong khi các thông tin này
được sử dụng để phân lớp các mẫu e.
- L_FRFt,n,i tham chiếu đến phần tử của ma trận chỉ ra độ hỗ trợ lớp i của nút lá
n trên cây t .
- T_FRFt,i là ma trận có kích thước (T I ) bao gồm độ chắc chắn (confidence)
của mỗi cây t đối với mỗi lớp i.
- D_FRFi là một vectơ có kích thước I, chỉ độ chắc chắn của FRF đối với mỗi
lớp i
Phân lớp trong fuzzy random forest
Phân lớp mờ được P. Bonissone và các cộng sự [15] đưa ra hai dạng mô hình được
gọi là Chiến lượng 1 và Chiến lượng 2 như sau:
Hình 2.14: Mô hình fuzzy random forest
Chiến lược 1 [41]
Tổng hợp thông tin từ các lá trong mỗi cây quyết định khác nhau. Sau đó tổng
hợp cây quyết định thì tạo được một rừng. Hàm Faggre11 sử dụng tổng hợp thông tin
từ các lá trên mỗi cây, hàm Faggre12 sử dụng tổng hợp thông tin từ các cây quyết định.
Mô hình phân lớp Strategy 1 được thực hiện bởi thuật toán 2.3 như sau
Thuật toán 2.3. FRF Classification
FRFClassification(Input e, Fuzzy Random Forest; Output c )
Begin
DecisionsOfTrees(in: e,Fuzzy Random Forest; out: T_FRF);
DecisionOfForest(in: T_FRF; out: c);
End;
DecisionsOfTrees(in: e,Fuzzy Random Forest; out: T_FRF)
Begin
1) Tạo ma trận L_FRF
2) Với mỗi cây t thực hiện
{Cho mỗi lớp i thực hiện , 1_ = ( , , _ )t iT FRF Faggre t i L FRF }
End;
DecisionOfForest(in: T_FRF; out: c)
Begin
1) Với mỗi lớp i thực hiện 2_ = ( , _ )iD FRF Faggre i T FRF
2) , 1..argmax { _ }i i I ic D FRF==
End;
Ma trận L_FRF và hàm tổng hợp thông tin Faggre được xác định như sau:
- Ma trận L_FRF được tạo ra bằng cách quét mâu e trên các cây t
- Các hàm tổng hợp thông tin Faggre coi như trọng số của cây trong FRF và xác
định như sau:
, ,; 1,...
11
1 arg max _( , , _ )
0
tN
t n jj j I
n
if i L FRFFaggrel t i L FRF
otherwise
==
=
=
(2.10)
2 ,
1
( )( , _ ) _
( )
Tt
t i
t t
errors OOBFaggrel i T FRF T FRF
size OOB
=
=
(2.11)
Với μ là hàm thuộc được xác định:
1 0 min arg
( max arg)( ) min arg max arg
max min
0 max_ arg
x p m
p m xx p m x p m
p p
p m x
+
+ −= + +
− (2.12)
Trong đó pmax = maxt=1,..T
( )
( )
t
t
error OOB
size OOB
là tỷ lệ lỗi lớn nhất trong các cây của
rừng ,
( )
( )
t
t
error OOB
size OOB tỷ lệ lỗi của cây t, error(OOBt) số lỗi khi thực hiện phân lớp thực
hiện trên cây t sử dụng dữ liệu kiểm thử OOB, size(OOBt) kích thước của dữ liệu kiểm
tra OOB của cây t. pmin là tỷ lệ lỗi của cây t và
max minarg
4
p pm
==
.
Các cây trong FRF bao giờ cũng có trọng số lớn hơn 0. Trọng số thể hiện tỷ lệ
lỗi, vì thế cây có tỷ lệ lỗi thấp nhất thì có trọng số là 1
Chiến lượng 2 [39]
FRFclassification (in: e, Fuzzy Random Forest; out: c)
Begin
1. Tạo ma trận L_FRF
2. Với mỗi lớp i thực hiện _ 2( , _ )iD FRF Faggre i L FRF=
3. , 1..argmax { _ }i i I ic D FRF==
End;
Trong thuật toán này thì ma trận L_FRF được tạo ra thông qua chay mẫu e trên cây
trong rừng và hàm tổng hợp thông tin Faggre 2 được xác định bởi công thức sau:
2 , ,
1 1
( )( , _ ) _
( )
tNTt
t n i
t nt
errors OOBFaggrel i T FRF T FRF
size OOB
= =
=
(2.13)
Với hàm thuộc 𝜇 xác định tương tự như thuật toán 2.3
Ví dụ:
Training data
Bảng 2.16: Dự liệu training thuật toán FRF
# Outlook Temperature Humidity Wind Decision
1 Sunny Hot High Weak No
2 Sunny Hot High Strong No
3 Overcast Hot High Weak Yes
4 Rain Mild High Weak Yes
5 Rain Cool Normal Weak Yes
6 Rain Cool Normal Strong No
7 Overcast Cool Normal Strong Yes
8 Sunny Mild High Weak No
9 Sunny Cool Normal Weak Yes
Test data
Bảng 2.17: Dữ liệu đánh giá thuật toán FRF
10 Rain Mild Normal Weak Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
14 Rain Mild High Strong No
Chuyển đổi dữ liệu sang dạng tập mờ
Outlook
1 0
( ) (10 ) /10 0 10
0 10
rain
x
x x x
x
= − = =
0 0
/10 0 10
( ) 1 10 20
(30 ) /10 20 30
0 30
overcast
x
x x
x x
x x
= =
= = = − =
0 20
( ) ( 20) /10 20 30
1 30
sunny
x
x x x
x
= − = =
Hình 2.15: Đồ thị miền giá trị mờ của outlook
Temperature
1 0
( ) 1 /15 0 15
0 15
cool
x
x x x
x
= − = =
0 0
/15 0 15
( ) 1 15 25
/10 3.5 25 35
0 35
mild
x
x x
x x
x x
x
= =
= = − + =
0 25
( ) /10 2.5 25 35
1 35
hot
x
x x x
x
= − = =
Hình 2.16: Đồ thị miền giá trị mờ của temperature
Humidity
1 3
( ) 1.5 / 6 3 9
0 9
normal
x
x x x
x
= − = =
0 3
( ) / 6 0.5 3 9
1 9
high
x
x x x
x
= − = =
Bảng 2.17: Đồ thị miền giá trị mờ của humidity
Wind
1 3
( ) 2.5 / 2 3 5
0 5
weak
x
x x x
x
= − = =
0 3
( ) / 2 0.5 3 5
1 5
strong
x
x x x
x
= − = =
Hình 2.18: Đồ thị miền giá trị mờ của wind
Bảng 2.18 Giá trị fuzzy của các thuộc tính
#
Out-
look
MF
sunny
MF
overcast
MF
rain
Temp-
erature
MF
hot
MF
mild
MF
cool
Hum-
idity
MF
high
MF
normal
Wind
MF
weak
MF
strong
Deci-
sion
1
Sunny
(25)
0.5 0.5 0
Hot (32)
0.7 0.3 0 High
(7.5)
0.75 0.25 Weak
(3)
1 0
No
2
Sunny
(29)
0.9 0.1 0
Hot (33)
0.8 0.2 0 High
(6.8)
0.633 0.367 Strong
(4.5)
0.25 0.75
No
3
Overcast
(16)
0 1 0 Hot
(30)
0.5 0.5 0 High
(8.3)
0.883 0.117 Weak
(2.5)
1 0
Yes
4
Rain
(4)
0 0.4 0.6 Mild
(24)
0 1 0 High
(9)
1 0 Weak
(1.5)
1 0
Yes
5
Rain
(2)
0 0.8 0.2 Cool
(2)
0 0.2 0.8 Normal
(3.8)
0.133 0.867 Weak
(2.5)
1 0
Yes
6
Rain
(1)
0 0.9 0.1 Cool
(0)
0 0.07 0.93 Normal
(4.2)
0.2 0.8 Strong
(5)
0 1
No
7
Overcast
(9)
0 0.9 0.1 Cool
(8)
0 0.53 0.47 Normal
(2.7)
0 1 Strong
(4)
0.5 0.5
Yes
8
Sunny
(26)
0.6 0.4 0 Mild
(12)
0 0.8 0.2 High
(6.7)
0.617 0.383 Weak
(3)
1 0
No
9
Sunny
(27)
0.7 0.3 0 Cool
(-3)
0 0 1 Normal
(3.5)
0.083 0.917 Weak
(2)
1 0
Yes
Sum 2.7 5.3 1 2 3.6 3.4 4.249 4.751 6.75 2.25
Ta có:
H(Decision) = -(p(no).log2(p(no) + p(yes).log2(p(yes))) = - (4/9.log2(4/9)+5/9.log2(5/9)) =
0.991
Tính : G(Decision|Outlook)
P(Sunny|Yes) =
0.7 7
0.7 0.6 0.9 0.5 27
yes sunny
sunny
= =
+ + +
P(Sunny|No) =
0.6 0.9 0.5 20
0.7 0.6 0.9 0.5 27
no sunny
sunny
+ += =
+ + +
P(Overcast|Yes) =
1 0.4 0.8 0.9 0.30.64
5.3
yes overcast
overcast
+ + + += =
P(Overcast|No) =
0.5 0.1 0.9 0.40.36
5.3
no overcast
overcast
+ + += =
P(Rain|Yes) =
0.6 0.2 8
0.6 0.2 0.1 9
yes rain
rain
+= =
+ +
P(Rain|No) =
0.1 1
0.6 0.2 0.1 9
no rain
rain
= =
+ +
H(Sunny|Outlook) = -7/27log2(7/27)-20/27log2(20/27) = 0.83
H(Overcast|Outlook) = -0.64.log2(0.64)-036.log2(0.36) = 0.94
H(Rain|Outlook) = -8/9.log2(8/9)-1/9.log2(1/9) = 0.5
Gain(Decision|Outlook) = 0.991 – 0.83(2.7/9) -0.94(5.3/9) -0.5(1/9) = 0.133
Tính : G(Decision|Temperature)
P(Hot|Yes) =
0.5 1
0.7 0.8 0.5 3
yes hot
hot
= =
+ + P(Hot|No) =
0.7 0.8 3
0.7 0.8 0.5 4
no hot
hot
+= =
+ +
P(Mild|Yes) =
0.5 1 0.2 0.530.62
3.6
yes mild
mild
+ + += =
P(Mild|No) =
0.3 0.5 0.07 0.80.464
3.6
no mild
mild
+ + += =
P(Cool|Yes) =
0.8 0.4 10.67
3.4
yes cool
cool
+ += =
P(Cool|No) =
0.93 0.20.33
3.4
no cool
cool
+= =
H(Hot|Outlook) = -1/3log2(1/3)-3/4log2(3/4) = 0.84
H(Mail|Outlook) = -0.62.log2(0.62)-0.464.log2(0.464) = 0.97
H(Cool|Outlook) = -0.67.log2(0.67)-0.33.log2(0.33) = 0.91
Gain(Decision|Temperature) = 0.991 – 0.84(2/9)-0.97(3.6/9)-0.91(3.4/9) = 0.07
Tính : G(Decision|Humidity)
P(High|Yes) =
0.883 1 0.133 0.0830.49
4.249
yes high
high
+ + += =
P(High|No) =
0.75 0.633 0.2 0.6170.51
4.249
no high
high
+ + += =
P(Normal|Yes) =
0.117 0.867 1 0.9170.61
4.751
yes mild
mild
+ + += =
P(Normal|No) =
0.25 0.367 0.8 0.3830.39
4.751
no normal
normal
+ + += =
H(High|Humidity) = -0.49log2(0.49)-0.51log2(0.51) = 0.99
H(Normal|Humidity) = -0.61.log2(0.61)-0.39log2(0.39) = 0.96
Gain(Decision|Humidity) = 0.991 – 0.99(4.249/9)-0.96(4.751/9) = 0.02
Tính : G(Decision|Wind)
P(Weak|Yes) =
1 1 1 0.5 1 2
6.75 3
yes weak
weak
+ + + += =
P(Weak|No) =
1 0.25 11/ 3
6.75
no weak
weak
+ += =
P(Strong|Yes) =
0.52 / 9
2.25
yes strong
strong
= =
P(Strong|No) =
0.75 17 / 9
2.25
no strong
strong
+= =
H(Weak|Wind) = -2/3log2(2/3)-1/31log2(1/3) = 0.91
H(Strong|Wind) = -2/9.log2(2/9)-7/9log2(7/9) = 0.76
Gain(Decision|Humidity) = 0.991 – 0.91(6.75/9)-0.76(2.25/9) = 0.1185
Hình 2.19: Cấy FRF 1 sau vòng lặp đầu tiên
Điều kiện dừng:
• Tỉ lệ độ thuộc lớp > 90%
• Số lượng tập dữ liệu nhỏ hơn ngưỡng mở rộng
n = (1/9).100 % => Nếu số lượng mẫu trong nút nhỏ hoặc bằng 1 thì ngừng ở rộng nút
Xét nhánh Overcast
C(no) = (0.5+0.1+0.9+0.4)/ 5.3= 0.36
C(yes) = (1+0.4+0.8+0.9+0.3)/5.3 = 0.64
⇨ Tiếp tục mở rộng cây
E(Overcast) = -(0.64. log2(0.64) + 0.36. log2(0.36)) = 0.94
Tính: Gain(Overcast|Temperature)
P(Hot|No) = (0.7+0.8)/2 = 3/4 P(Hot|Yes) = 0.5/2 = 1/4
⇨ H(Hot|Temperature) = -3/4.log2(3/4) – 1/4.log2(1/4)= 0.81
P(Mild|No) = (0.3+0.2+0.07+0.8)/3.6 = 0.38
P(Mild|Yes) = (0.5+1+0.2+0.53)/3.6 = 0.62
⇨ H(Mild|Temperature) = -0.38.log2(0.38) -0.62.log2(0.62) = 0.95
P(Cool|No) = (0.8+0.47+1)/(3.4) = 0.67 P(Cool|Yes) = 0.93+0.2/3.4= 0.33
⇨ H(Cool|Temperature) = -0.67.log2(0.67) -0.33log2(0.33) = 0.91
Gain(Overcast|Temperature) = 0.94- 0.81.(2/9)-0.95.(3.6/9)-0.91.(3.4/9) = 0.036
Tính: Gain(Overcast|Humidity)
P(High|No) = (0.75+0.633+0.2+0.617)/4.249 = 0.51
P(High|Yes) = (0.883+1+0.133+0.083)/4.249 = 0.49
⇨ H(High|Humidity) = -0.51.log2(0.51)-0.49.log2(0.49) = 0.99
P(Normal|No) = (0.25+0.367+0.8+0.383)/(4.751) = 0.38
P(Normal|Yes) = (0.117+0.867+1+0.917)/4.751 = 0.62
⇨ H(Mild|Humidity) =- 0.62.log2(0.62) -0.38.log2(0.38) = 0.95
Gain(Overcast|Humidity) = 0.94- 0.99(4.249/9) – 0.95(4.751/9) = -0.02
Tính Gain(Overcast|Wind) =
P(Weak|No) = (1+0.25+1)/6.75 = 1/1=3 P(Weak|Yes) = (1+1+1+0.5+1)/6.75 = 2/3
H(Weak|Wind) = -1/3.log2(1/3)-2/3.log2(2/3) = 0.91
P(Strong|No) = (0.75+1)/2.25 = 7/9 P(Strong|Yes) = 0.5/2.25 = 2/7
H(Strong|Wind) = -7/9.log2(7/9) -2/7.log2(2/7) = 0.76
Gain(Sunny|Wind) = 0.94 – 0.91.(6.75/9) – 0.76.(2.25/9) = 0.0675
Xét nhánh sunny
Bảng 2.19: Nhánh Sunny của outlook (FRF 1)
#
Out
look
MF
sunny
MF
overcast
MF
rain
Temp-
erature
MF
hot
MF
mild
MF
cool
Humi-
dity
MF
high
MF
normal
Wind
MF
weak
MF
strong
Deci-
sion
1
Sunny
(25)
0.5 0.5 0
Hot (32)
0.7 0.3 0 High
(7.5)
0.75 0.25 Weak
(3)
1 0
No
2
Sunny
(29)
0.9 0.1 0
Hot (33)
0.8 0.2 0 High
(6.8)
0.633 0.367 Strong
(4.5)
0.25 0.75
No
8
Sunny
(26)
0.6 0.4 0 Mild
(12)
0 0.8 0.2 High
(6.7)
0.617 0.383 Weak
(3)
1 0
No
9
Sunny
(27)
0.7 0.3 0 Cool
(-3)
0 0 1 Normal
(3.5)
0.083 0.917 Weak
(2)
1 0
Yes
C(no) = (0.5+0.9+0.6 )/( 0.5+0.9+0.6+0.7)= 0.74; C(yes) = 0.7 / (2.7) = 0.26
⇨ Tiếp tục mở rộng cây
E(Sunny) = -(0.74. log2(0.74) + 0.26. log2(0.26)) = 0.83
Tính: Gain(Sunny|Temperature)
P(Hot|No) = (0.7+0.8)/(0.7+0.8) = 1 P(Hot|Yes) = 0
⇨ H(Hot|Temperature) = 1.log2(1) = 0
P(Mild|No) = 0.8/0.8 = 1 P(Mild|Yes) = 0
⇨ H(Mild|Temperature) = 1.log2(1) = 0
P(Cool|No) = (0.2)/(1.2) = 1/6 P(Cool|Yes) = 1/1.2=5/6
⇨ H(Cool|Temperature) = -1/6.log2(1/6) -5/6log2(5/6) = 0.65
Gain(Sunny|Temperature) = 0.83- 0.65.(1.2/4) = 0.635
Tính: Gain(Sunny|Humidity)
P(High|No) = (0.75+0.633+0.617)/( 0.75+0.633+0.617+0.083) = 0.96
P(High|Yes) = 0.083/2.083 = 0.04
⇨ H(High|Humidity) = -0.96.log2(0.96)-0.04.log2(0.04) = 0.24
P(Normal|No) = (0.25+0.367+0.383)/(1.917) = 0.52
P(Normal|Yes) = 0.917/1.917 = 0.48
⇨ H(Mild|Humidity) =- 0.52.log2(0.52) -0.48.log2(0.48) = 0.99
Gain(Sunny|Humidity) = 0.83- 0.24(2.083/4) – 0.99(1.917/4) = 0.23
Tính Gain(Sunny|Wind) =
P(Weak|No) = (1+0.25+1)/3.25 = 9/13 P(Weak|Yes) = 1/3.25 = 4/13
H(Weak|Wind) = -9/13.log2(9/13)-4/13.log2(4/13) = 0.89
P(Strong|No) = 0.75/0.75 = 1 P(Strong|Yes) = 0
H(Strong|Wind) = 0
Gain(Sunny|Wind) = 0.83 – 0.89.(3.25/4) = 0.1
Xét nhánh Rain
Bảng 2.20: Nhánh rain của outlook (FRF 1)
#
Out
look
MF
sunny
MF
overcast
MF
rain
Temp-
erature
MF
hot
MF
mild
MF
cool
Humi
dity
MF
high
MF
normal
Wind
MF
weak
MF
strong
Deci
sion
4
Rain
(4)
0 0.4 0.6 Mild
(24)
0 1 0 High
(9)
1 0 Weak
(1.5)
1 0
Yes
5
Rain
(2)
0 0.8 0.2 Cool
(2)
0 0.2 0.8 Normal
(3.8)
0.133 0.867 Weak
(2.5)
1 0
Yes
6
Rain
(1)
0 0.9 0.1 Cool
(0)
0 0.07 0.93 Normal
(4.2)
0.2 0.8 Strong
(5)
0 1
No
7
Overcast
(9)
0 0.9 0.1 Cool
(8)
0 0.53 0.47 Normal
(2.7)
0 1 Strong
(4)
0.5 0.5
Yes
C(no) = 0.1/1= 1/10 ; C(yes) = 0.9/1 = 9/1
⇨ Tiếp tục mở rộng cây
E(Rain) = -1/9.log2(1/9)-8/9.log2(8/9) = 0.5
Tính: Gain(Rain|Temperature)
P(Hot|No) = 0 P(Hot|Yes) = 0
⇨ H(Hot|Temperature) = 0
P(Mild|No) = 0.07/1.27 = 0.055 P(Mild|Yes) = 1.2/1.27 = 0.945
⇨ H(Mild|Temperature) = -0.055.log2(0.055) – 0.945.log2(0.945) = 0.3
P(Cool|No) = (0.93)/(1.73) = 0.54 P(Cool|Yes) = 0.8/1.73= 0.46
⇨ H(Cool|Temperature) = -0.54.log2(0.54) -0.46log2(0.46) = 0.99
Gain(Rain|Temperature) = 0.5- 0.3(1.27/3) – 0.99(1.73/3) = -0.1979
Tính: Gain(Rain|Humidity)
P(High|No) = (0.2)/(1.333) = 0.15 P(High|Yes) = (1+0.133)/1.333 = 0.85
⇨ H(High|Humidity) = -0.15.log2(0.15)-0.85.log2(0.85) = 0.6
P(Normal|No) = (0.8)/(1.667) = 0.48 P(Normal|Yes) = 0.867/1.667 = 0.52
⇨ H(Mild|Humidity) =- 0.52.log2(0.52) -0.48.log2(0.48) = 0.99
Gain(Rain|Temperature) = 0.5- 0.6(1.333/3) – 0.99(1.917/3) = -0.
Tính Gain(Rain|Wind) =
P(Weak|No) = 0 P(Weak|Yes) = 2/2 = 1
H(Weak|Wind) = -1.log2(1) = 0
P(Strong|No) = 1/1 =1 P(Strong|Yes) = 0
H(Strong|Wind) = -1.log2(1) = 0
Gain(Sunny|Wind) = 0.5 – 0 = 0.5
Hình 2.20: Cây FRF 1 sau vòng lặp 2
Xét nhánh Hot
C(no) = (0.7+0.8)/1.5= 1 => Dừng gán cho lớp No C(yes) = 0/0.6 = 0
Xét nhánh Mild
C(no) = (0.3+0.2+0.8)/1.3 = 1 => Dừng gán cho lớp No C(yes) = 0
Xét nhánh Cool
C(yes) = 1/1.2 = 0.83 C(no) = 0.2 / 1.2 = 017
⇨ Tập dữ liệu nhỏ hơn ngưỡng mở rộng
⇨ Gán lớp Yes
Xét nhánh Rain -> Strong
C(no) = 1/1.5 = 2/3 C(yes) = 0.5/1.5 = 1/3
⇨ Tiếp tục mở rộng cây
Xét nhánh Rain -> Weak
C(yes) = (1+1)/2 =1 => Dừng gán cho lớp Yes C(no) = 0
Xét nhánh Overcast ->Weak
C(yes) = (1+1+1+0.5+1)/6.75 = 2/3 C(no) = (1+0.25+1) / 6.75 = 1/3
⇨ Tiếp tục mở rộng cây
#
Temp-
erature
MF
hot
MF
mild
MF
cool
Humidity
MF
high
MF
normal
Wind
MF
weak
MF
strong
Decision
4 Mild(24) 0 1 0 High(9) 1 0 Weak(1.5) 1 0 Yes
5 Cool(2) 0 0.2 0.8 Normal(3.8) 0.133 0.867 Weak(2.5) 1 0 Yes
6 Cool(0) 0 0.07 0.93 Normal(4.2) 0.2 0.8 Strong(5) 0 1 No
Xét nhánh Overcast -> Strong
C(no) = (1+0.75)/2.25 = 7/9 C(yes) = 0.5/2.25 = 2/9
⇨ Tiếp tục mở rộng cây
Hình 2.21: Cây FRF 1 sau vòng lặp 3
E(Strong) = -2/3.log2 (2/3) - 1/3log2(1/3) = 0.91
G(Strong|Temperature)
P(Hot) = 0;
P(mild|yes) = 0.53/ (0.07+0.53) = 0.88 P(mild|no) = 0.07/ (0.6) = 0.12
H(mild) = -0.88.log2(0.88) – 0.12log2(0.12) = 0.53
P(rain|no) = 0.93/ (0.93+0.47) = 0.66 P(rain|yes) = 0.47/1.4 = 0.34
H(rain) = -0.66.log2(0.66)-0.34log2(0.34) = 0.92
G(Strong|Temperature) = 0.91 - 0.53(0.6/2) – 0.92(1.4/2) = 0.107
G(Strong|Humidity)
P(high|no) = 0.2/0.2 =1 P(high|yes) = 0
H(high) = 0
P(normal|no) = 0.8/1.8 = 0.44 P(normal|yes) = 1/1.8 = 0.56
H(normal) = -0.44.log2(0.44)-0.56log2(0.56) = 0.99
G(Strong|Humidity) = 0.91 – 0.99(1.8/2) = 0.019
Dừng do data nhỏ hơn ngưỡng mở rộng => gán cho lớp có C lớn hơn
Hình 2.22: Cây FRF 1 sau vòng lặp 4
Xét Overcast-> Weak
C(no) = (1+0.25+1)/6.75 = 1/3 C(yes) = 2/3
⇨ Tiếp tục mở rộng cây
Xét Overcast -> Strong
C(no) = 1.75/2.25 = 0.78 C(yes) = 0.5/2.25 = 0.22
Tương tự như trên ta có cây hoàn thiện
Hình 2.23: Cây FRF hoàn thiện
Test result
Bảng 2.21: Đánh giá kết quả cây FRF
1 Rain Mild Normal Weak Yes Yes
2 Sunny Mild Normal Strong Yes No
3 Overcast Mild High Strong Yes Yes
4 Overcast Hot Normal Weak Yes Yes
5 Rain Mild High Strong No No
2.6 Tổng kết chương
Decision tree là một thuật toán phân lớp khá cơ bản và được phát triển từ lâu.
Nó cũng có những kết quả nhất định trong bài toán phân lớp nhưng chưa được khả quan,
chính vì vậy cũng đã có nhiều nghiên cứu cải tiến decision tree tiêu biểu là fuzzy
decision tree bằng việc áp dụng lý thuyết mờ vào thuật toán. Tiếp theo là thuật toán
random forest, với việc xác định được điểm yếu của decision tree là phụ thuộc vào dữ
liệu training thì random forest được phát triển làm giảm sự phụ thuộc vào dữ liệu.
Những thuật toán này cũng đã cho kết quả tốt hơn trong một số trường hợp. Tiếp tục
làm giảm ảnh hưởng vào dữ liệu training thuật toán fuzzy random forest được xây dựng
bằng cách áp dụng lý thuyết mờ vào thuật toán random forest. Áp dụng cho những bài
toán có dữ liệu không đầy đủ đem lại hiệu quả cao.
3 CHƯƠNG III : KẾT QUẢ THỰC NGHIỆM
3.1 Giới thiệu về bộ dữ liệu
Để đánh giá thuật toán ta sẽ phân lớp và xác định truy cập là bất thường với bộ
dữ liệu AWID [36], AWID là bộ dữ liệu lớn thu thập các kết nối mạng kèm phân lớp
dữ liệu, Là bộ dữ liệu được các nhà nghiên cứu sử dụng để đánh giá với các nghiên cứu
đánh giá về khả năng xâm nhập mạng không dây.
AWID có nhiều version khác nhau, gồm 8 gói dữ liệu chính chia là bộ đầy đủ và
bộ cắt giảm.
Bảng 3.1: Bộ dữ liệu AWID [36]
Bảng 3.2: Các lớp của bộ dữ liệu AWID [36]
Bảng 3.3: Tỉ lệ của các bản ghi và lớp trong bộ dữ liệu
Trong luận văn này sẽ sử dụng bộ
Để làm tập train và tập test.
Mỗi bản ghi trong bộ dữ liệu có 155 thuộc tính :
Bảng 3.4: Thuộc tính trong 1 bảng ghi
DESCRIPTION TYPE
1 Interface id Unsigned integer, 4 bytes
2 WTAP_ENCAP Signed integer, 2 bytes
3 Time shift for this packet Time offset
4 Epoch Time Time offset
5 Time delta from previous captured frame Time offset
6 Time delta from previous displayed frame Time offset
7 Time since reference or first frame Time offset
8 Frame length on the wire Unsigned integer, 4 bytes
9 Frame length stored into the capture file Unsigned integer, 4 bytes
10 Frame is marked Boolean
11 Frame is ignored Boolean
12 Header revision Unsigned integer, 1 byte
13 Header pad Unsigned integer, 1 byte
14 Header length Unsigned integer, 2 bytes
15 TSFT Boolean
16 Flags Boolean
17 Rate Boolean
18 Channel Boolean
19 FHSS Boolean
20 dBm Antenna Signal Boolean
21 dBm Antenna Noise Boolean
22 Lock Quality Boolean
23 TX Attenuation Boolean
24 dB TX Attenuation Boolean
25 dBm TX Power Boolean
26 Antenna Boolean
27 dB Antenna Signal Boolean
28 dB Antenna Noise Boolean
29 RX flags Boolean
30 Channel+ Boolean
31 MCS information Boolean
32 A-MPDU Status Boolean
33 VHT information Boolean
34 Reserved Unsigned integer, 4 bytes
35 Radiotap NS next Boolean
36 Vendor NS next Boolean
37 Ext Boolean
38 MAC timestamp Unsigned integer, 8 bytes
39 CFP Boolean
40 Preamble Boolean
41 WEP Boolean
42 Fragmentation Boolean
43 FCS at end Boolean
44 Data Pad Boolean
45 Bad FCS Boolean
46 Short GI Boolean
47 Data rate (Mb/s) Floating point (single-precision)
48 Channel frequency Unsigned integer, 4 bytes
49 Turbo Boolean
50 Complementary Code Keying (CCK) Boolean
51 Orthogonal Frequency-Division
Multiplexing (OFDM) Boolean
52 2 GHz spectrum Boolean
53 5 GHz spectrum Boolean
54 Passive Boolean
55 Dynamic CCK-OFDM Boolean
56 Gaussian Frequency Shift Keying (GFSK) Boolean
57 GSM (900MHz) Boolean
58 Static Turbo Boolean
59 Half Rate Channel (10MHz Channel Width) Boolean
60 Quarter Rate Channel (5MHz Channel
Width) Boolean
61 SSI Signal Signed integer, 4 bytes
62 Antenna Unsigned integer, 4 bytes
63 Bad PLCP Boolean
64 Type/Subtype Unsigned integer, 2 bytes
65 Version Unsigned integer, 1 byte
66 Type Unsigned integer, 1 byte
67 Subtype Unsigned integer, 1 byte
68 DS status Unsigned integer, 1 byte
69 More Fragments Boolean
70 Retry Boolean
71 PWR MGT Boolean
72 More Data Boolean
73 Protected flag Boolean
74 Order flag Boolean
75 Duration Unsigned integer, 2 bytes
76 Receiver address Ethernet or other MAC address
77 Destination address Ethernet or other MAC address
78 Transmitter address Ethernet or other MAC address
79 Source address Ethernet or other MAC address
80 BSS Id Ethernet or other MAC address
81 Fragment number Unsigned integer, 2 bytes
82 Sequence number Unsigned integer, 2 bytes
83 Block Ack Request Type Unsigned integer, 1 byte
84 BAR Ack Policy Boolean
85 Multi-TID Boolean
86 Compressed Bitmap Boolean
87 TID for which a BlockAck frame is requested Unsigned integer, 2 bytes
88 Block Ack Bitmap Sequence of bytes
89 Good Boolean
90 ESS capabilities Boolean
91 IBSS status Boolean
92 CFP participation capabilities Unsigned integer, 2 bytes
93 Privacy Boolean
94 Short Preamble Boolean
95 PBCC Boolean
96 Channel Agility Boolean
97 Spectrum Management Boolean
98 Short Slot Time Boolean
99 Automatic Power Save Delivery Boolean
100 Radio Measurement Boolean
101 DSSS-OFDM Boolean
102 Delayed Block Ack Boolean
103 Immediate Block Ack Boolean
104 Listen Interval Unsigned integer, 2 bytes
105 Current AP Ethernet or other MAC address
106 Status code Unsigned integer, 2 bytes
107 Timestamp Unsigned integer, 8 bytes
108 Beacon Interval Unsigned integer, 4 bytes
109 Association ID Unsigned integer, 2 bytes
110 Reason code Unsigned integer, 2 bytes
111 Authentication Algorithm Unsigned integer, 2 bytes
112 Authentication SEQ Unsigned integer, 2 bytes
113 Category code Unsigned integer, 2 bytes
114 HT Action Unsigned integer, 1 byte
115 Supported Channel Width Unsigned integer, 1 byte
116 GAS Query Response fragment Frame number
117 Starting Sequence Number Unsigned integer, 2 bytes
118 Tagged parameters Label
119 SSID Character string
120 Current Channel Unsigned integer, 1 byte
121 DTIM count Unsigned integer, 1 byte
122 DTIM period Unsigned integer, 1 byte
123 Multicast Boolean
124 Bitmap Offset Unsigned integer, 1 byte
125 Environment Unsigned integer, 1 byte
126 RSN Version Unsigned integer, 2 bytes
127 Group Cipher Suite type Unsigned integer, 1 byte
128 Pairwise Cipher Suite Count Unsigned integer, 2 bytes
129 Auth Key Management (AKM) Suite Count Unsigned integer, 2 bytes
130 Auth Key Management (AKM) type Unsigned integer, 1 byte
131 RSN Pre-Auth capabilities Boolean
132 RSN No Pairwise capabilities Boolean
133 RSN PTKSA Replay Counter capabilities Unsigned integer, 2 bytes
134 RSN GTKSA Replay Counter capabilities Unsigned integer, 2 bytes
135 Management Frame Protection Required Boolean
136 Management Frame Protection Capable Boolean
137 PeerKey Enabled Boolean
138 Transmit Power Signed integer, 1 byte
139 Link Margin Signed integer, 1 byte
140 Initialization Vector Unsigned integer, 3 bytes
141 Key Index Unsigned integer, 1 byte
142 WEP ICV Unsigned integer, 4 bytes
143 TKIP Ext. Initialization Vector Character string
144 CCMP Ext. Initialization Vector Character string
145 TID Unsigned integer, 2 bytes
146 Priority Unsigned integer, 2 bytes
147 EOSP Boolean
148 Ack Policy Unsigned integer, 2 bytes
149 Payload Type Boolean
150 #N/A #N/A
151 QoS bit 4 Boolean
152 TXOP Duration Requested Unsigned integer, 2 bytes
153 Buffer State Indicated Boolean
154 data.len
155 class Character string
Ví dụ về 1 bản ghi trong bộ dữ liệu thô :
0,?,0.000000000,1393668189.035614000,0.000000000,0.000000000,0.000000
000,1552,1552,0,0,0,0,26,1,1,1,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0x00000000,0,0,0,8987
920748,0,0,0,0,1,0,0,0,54,2437,0,0,1,1,0,0,0,0,0,0,0,0,25,1,0,0x28,0,2,8,0x02,0,0,0,0,1
,0,44,c0:18:85:94:b6:55,c0:18:85:94:b6:55,28:c6:8e:86:d3:d6,00:13:33:87:62:6d,2
8:c6:8e:86:d3:d6,0,2313,?,?,?,?,?,?,1,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0xf6ddd9,0,0x0e5162ff,?,?,1,1,0,0x000
0,0,?,?,?,0,1488,normal
3.2 Xử lý dữ liệu
Từ dữ liệu thô dữ liệu được chuyển đổi sang dữ liệu số cơ số 10.
Hình 3.1: Dữ liệu sau khi chuyển sang hệ cơ số 10
Ví dụ như Mac address hoặc một số dữ liệu cơ số 16(Hex) được chuyển đổi sang
dữ liệu cơ số 10 (Dec)
Ví dụ 1 bản ghi sau khi đã convert:
0,?,0.000000000,1393661302.645757000,0.000000000,0.000000000,0.000000
000,261,261,0,0,0,0,26,1,1,1,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,141756563971,0,0,
0,0,1,0,0,0,1.000000000,9271,0,1,0,1,0,0,0,0,0,0,0,0,-
71,1,0,8,0,0,8,0,0,0,0,0,0,0,0,281474976710655,281474976710655,19382534579049
9,193825345790499,193825345790499,0,10321,?,?,?,?,?,?,1,1,0,0,0,1,0,0,0,1,0,0,0,0
,0,?,?,?,290000256,256,?,?,?,?,?,?,?,?,?,1,'pnet',6,0,1,0,0,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,normal
Hình 3.2: Dữ liệu đã được xử lý
Sau khi đã xử lý dữ liệu, cần đi từ thuộc tính để xác định hàm chuyển đổi fuzzy
cho phù hợp và tạo nhãn cho từng thuộc tính.
Với các thuộc tính có giá trị 0 và 1 thì sẽ được gán cho 3 nhãn là: Unknow, Yes,
No.
Với thuộc tính khác thì được gán cho 4 nhãn là: Unknow, Low, Medium, High
Ví dụ file gán nhãn cho thuộc tính:
Hình 3.3: Nhãn cho tập thuộc tính
Xét bộ dữ liệu nhiều thuộc tính không có giá trị (được thay thế bằng dấu ‘?’)
hoặc các thuộc tính là tên điểm truy cập thì không có giá trị khi phân lớp nên được loại
bỏ khi sử dụng phân lớp. Tổng hợp lại thì có 26 thuộc tính có thể sử dụng để phân lớp.
File đánh dấu vị trí các thuộc tính có khả năng phân lớp.
Hình 3.4: Vị trí các thuộc tính dùng để phân lớp
Tiếp theo với từng thuộc tính cần xác định hàm thuộc và khoảng giá trị cho từng
thuộc tính.
Hình 3.5: Khoảng giá trị cho từng thuộc tính
Đối với những thuộc tính có giá trị ‘Yes’, ‘No’ thì sử dụng Singleton function
Hình 3.6: Đồ thị hàm singleton
Đối với thuộc tính có 3 vùng giá trị thì sử dụng hàm tam giác (Triangular
function)
Hình 3.7: Công thức và đồ thị hàm triangular
Đối với các thuộc tính có 4 vùng giá trị thì sử dụng các hàm hình thang
(Trapezoidal function)
Hình 3.8: Công thức và đồ thị hàm trapezoidal
Hình thang phải
Hình 3.9: Công thức là đồ thị hàm hình thang phải
Hình thang trái
Hình 3.10: Công thức là đồ thị hàm hình thang trái
3.3 Xây dựng ứng dụng
Áp dụng thuật toán xây dựng và kiểm tra độ chính xác của thuật toán fuzzy
random forest sử dụng ngôn ngữ java
Ví dụ một phần cây đã được xây dự bằng thuật toán:
Hình 3.11: Cây sau khi chạy thuật toán
3.4 Kết quả đánh giá
Bảng 3.5: Đánh giá kết quả của thuật toán
Thuật toán Số cây Độ chính xác (%)
Random forest 1 34
3 34
5 58
8 54
Fuzzy random forest 1 54
3 54
5 74
8 84
Thuật toán fuzzy random forest đem lại kết quả có độ chính xác cao hơn so với
thuật toán random forest, với số lượng cây nhất định fuzzy random forest có độ chính
xác cao hơn 80%. Nhưng điểm mạnh của thuật toán cũng là điểm yếu của thuật toán.
Với việc lấy random data để xây dựng cây, thuật toán đã loại bỏ được điểm yếu của cây
quyết định là quá phụ thuộc vào dữ liệu. Việc lấy random dữ liệu cũng là kết quả của
thuật toán không ổn định. Việc mờ hóa dữ liệu cũng đã đem lại hiệu quả dễ thấy. Đem
lại độ chính xác cao hơn so dữ liệu ban đầu. Mặc dù trong quá trình xử lý dữ liệu ta cần
thêm một bước mờ hóa dữ liệu. Nhưng với dữ liệu đã mờ hóa việc tính toán có thể
nhanh hơn bởi vì thay vì việc tính toán mỗi 1 giá trị của 1 thuộc tính thì ta quy về vài
nhãn ngôn ngữ, gần như sẽ giúp giảm thiểu các trường hợp và tốc độ tính toán.
Hình 3.12: Đồ thị đánh giá độ chính xác của cây
Đồ thị precision biểu diễn tỷ lệ số dự đoán đúng chia cho tổng số dự đoán trả ra
của lớp đó
34 34
585454 54
74
84
0
10
20
30
40
50
60
70
80
90
1 Tree 3 Tree 5 Tree 8 Tree
Độ chính xác
RF RFR
Hình 3.13: Độ chính xác của từng lớp theo số cây theo precision
Nhìn vào đồ thị precision có thể thấy tỷ lệ phân lớp của lớp normal khá ổn định
khoảng 70%, còn flooding là lớp không ổn định khi 1 cây và 3 cây không ra được kết
quả nào. Có thể đây là vấn đề của việc lấy random data để training cho thuật toán đã
không bao phủ được lớp flooding. Nhìn chung từ 5 cây trở lên thì tỷ lệ số bản ghi phân
lớp chính xác chia tổng số bản ghi trả về khá cao, vào bao quát được các hết các lớp.
Đồ thị recall biểu diễn tỷ lệ số dự đoán đúng chia cho số bản ghi thực có
Hình 3.14: Độ chính xác của từng lớp theo số cây theo recall
Recall là tỷ lệ của bản ghi phân lớp chính xác chia cho số bản ghi thực tế. Giúp
ta thấy được sự hiệu quả của thuật toán theo từng lớp. Nhìn vào đồ thị trên ta có thể
thấy lớp normal có đổ chính xác rất cao. Gần như tất cả các bản ghi normal đều được
70
70
70
70
0 0
99
99
60 6
5
60
79
30
38
65
90
1 T R E E 3 T R E E 5 T R E E 8 T R E E
PRECISION
Normal Flodding Injection Impersonation
99
99 10
0
99
0 0
80
80
36 37
37
7780
80
79
79
1 T R E E 3 T R E E 5 T R E E 8 T R E E
RECALL
Normal Flodding Injection Impersonation
phân lớp chính xác. Do việc lấy random dữ liệu không bao quát được lớp flooding do
đó trường hợp 1 cây và 3 cây đã không phân lớp đúng được bất kỳ bản ghi lớp flooding
nào. Tương tự thì lớp injection cũng có tỷ lệ chính xác thấp. Nhưng từ 8 cây trở lên việc
data có thể bao quát tất cả các lớp thì tỷ lệ recall khá cao, mức độ chính xác của các lớp
đề lớn hơn 70%. Cho thấy thuật toán cũng có độ hiệu quả nhất định trong bài toán phân
lớp.
3.1 Tổng kết chương
Việc áp dụng thuật toán fuzzy random forest vào bài toán phân lớp xâm nhập
mạng không dây đã đem lại kết quả khả quan với độ chính xác cao hơn so với việc áp
dụng thuật toán decision tree và random forest. Từ đó ta có thể thấy được tác dụng của
việc áp dụng lý thuyết mờ vào thuật toán giúp tăng độ chính xác do có thể xử lý dữ liệu
chính xác hơn.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Từ bài toán phân lớp một truy cập mạng, luận văn đã tập trung nghiên cứu và
tìm hiểu về kiến trúc mạng không dây kèm theo các kiểu xâm nhập mạng phổ biến hiện
này đồng thời tìm hiểu về một số thuật toán học máy đã được áp dụng vào bài toán.
Luận văn cũng áp dụng được lý thuyết và xây dựng thành công thuật toán fuzzy random
forest cho bài toán. Ngoài ra luận văn cũng đã nghiên cứu và tìm hiểu chuyển đổi tập
dữ liệu ban đầu về dạng tập dữ liệu mờ. Đồng thời áp dụng được những thuộc tính có
khả năng phân lớp tốt.
Luận văn đã đóng góp cho thấy việc có thể áp dụng thuật toán fuzzy random
forest vào bài toán phân lớp xâm nhập mạng đem lại hiệu quả nhất định. Giới thiệu lại
các thuật toán học máy cơ bản như fuzzy decision tree, random forest.
Sau khi đánh giá ta thấy được mức độ chính xác của fuzzy random forest cao
hơn so với random forest. Độ chính xác cao khi có số lượng cây nhất định. Tỷ lệ các
phân lớp chính xác của từng lớp cao và không bị chênh lệch quá nhiều. Nhưng việc lấy
random data cũng có một số hạn chế nhất định. Ví dụ từ thực nghiệm chúng ta thấy việc
phân lớp bằng số cây nhỏ như 1 cây đến 3 cây việc lấy random data training có thể
không bao quát được hết tất cả các lớp dẫn đến việc phân lớp kém độ chính xác với số
lượng cây ít. Do đó cần phải xây dựng số cây thích hợp để có thể có một bộ phân lớp
hiệu quả nhất. Từ bài toán phân lớp xâm nhập mạng ta có thấy được hiệu quả của thuật
toán fuzzy random forest từ đó việc áp dụng fuzzy vào các bài toán phù hợp có thể cho
kết quả tốt hơn. Và thuật toán fuzzy random forest cũng có thể thử nghiệm và áp dụng
vào các bài toán phân lớp khác
Qua những kết quả thu được ban đầu ta thấy còn nhiều việc phải làm và tối ưu.
Như hiện tại ta thấy độ chính xác của thuật toán còn chưa phải là quá cao, với độ chính
xác này thì chưa thể áp dụng vào thực tế.
Phát hiện xâm nhập mạng không dây là một vấn đề quan trọng trong khoảng thời
gian gần đây vì tốc độ phát triển của nó đi cùng tầm quan trọng của nó. Do đó trong
thời gian tới hướng đi của luận văn là tiếp tục tìm hướng xử lý dữ liệu tốt hơn, tối ưu
chương trình và áp dụng tập mờ hợp lý hơn với mục đích tăng độ chính xác của thuật
toán. Đồng thời xây dựng một ứng dụng hoàn thiện thiết lập trên các server thực tế để
cảnh báo và phát hiện các xâm nhập mạng.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Vũ Thị Tuyến. Một số mô hình học máy trong phân loại câu hỏi: Luận văn
thạc sĩ công nghệ thông tin. Đại học Công Nghệ-Đại học Quốc Gia Hà Nội, 2016
[2] Nhữ Bảo Vũ. Xây dựng mô hình đối thoại cho tiếng việt trên miền mở dựa
vào phương pháp học chuỗi: Luận văn thạc sĩ công nghệ thông tin. Đại học Công Nghệ-
Đại học Quốc Gia Hà Nội, 2016
[3] Huỳnh Phụng Toàn, Nguyễn Vũ Lâm, Nguyễn Minh Trung và Đỗ Thanh
Nghị. Rừng ngẫu nhiên cái tiến cho phân loại dữ liệu gen. Tạp chí Khoa học 2012:22b
9-17
[4]http://www.pcworld.com.vn/articles/cong-
nghe/congnghe/2006/03/1188349/wep-bao-mat-cho-mang-khong-day
[5] http://www.bkav.com.vn/gioi-thieu-san-pham/-/chi_tiet/511114/tong-ket-
an-ninh-mang-nam-2017-va-du-bao-xu-huong-2018
[6] https://vi.wikipedia.org/wiki/IEEE_802.11
[7] http://genk.vn/may-tinh/hieu-ve-cac-chuan-bao-mat-wifi-de-su-dung-an-
toan-20130719233217894.chn
[8] https://tailieu.vn/doc/bao-cao-mang-khong-day-nguyen-thanh-hoa-
1677959.html
[9] https://vi.wikipedia.org/wiki/H%E1%BB%8Dc_m%C3%A1y
[10]
https://vi.wikipedia.org/wiki/M%C3%A1y_vect%C6%A1_h%E1%BB%97_tr%E1%
BB%A3
[11] https://vi.wikipedia.org/wiki/C%C3%A2y_quy%E1%BA%BFt_%C4%91
%E1%BB%8Bnh
[12] https://oktot.net/cay-quyet-dinh-va-giai-thuat-id3/
Tiếng Anh
[13] Amanpreet Singh, Narina Thakur, Aakanksha Sharm “A Review of
Supervised Machine Learning Algorithms” 2016 International Conference on
Computing for Sustainable Global Development (INDIACom)
[14] J. Han, M. Kamber, and J. Pei, Data Mining: Concepts and Techniques, 3rd
ed. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2012.
[15] X. Wang, X. Liu, W. Pedrycz, and L. Zhang, “Fuzzy rule-based decision
trees,” Pattern Recognition, vol. 48, no. 1, pp. 50 – 59, 2015
[16] Adriano Donato De Matteis, Francesco Marcelloni, Armando Segator “A
New Approach to Fuzzy Random Forest Generation” Fuzzy Systems (FUZZ-IEEE),
2015 IEEE International Conference on
[17] J. Quinlan, “Induction of decision trees,” Machine Learning, vol. 1, no. 1,
pp. 81–106, 1986
[18] C. Janikow, “Fuzzy decision trees: Issues and methods,” IEEE Transactions
on Systems, Man, and Cybernetics, Part B: Cybernetics, vol. 28, no. 1, pp. 1–14, 1998.
[19] Y.-l. Chen, T. Wang, B.-s. Wang, and Z.-j. Li, “A survey of fuzzy decision
tree classifier,” Fuzzy Information and Engineering, vol. 1, no. 2, pp. 149–159, 2009
[20] Y. Yuan and M. J. Shaw, “Induction of fuzzy decision trees,” Fuzzy Sets
and Systems, vol. 69, no. 2, pp. 125 – 139, 1995.
[21] B. Chandra and P. Varghese, “Fuzzy sliq decision tree algorithm,” IEEE
Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, vol. 38, no. 5, pp.
1294–1301, 2008.
[22] X.-Z. Wang, D. Yeung, and E. Tsang, “A comparative study on heuristic
algorithms for generating fuzzy decision trees,” IEEE Transactions on Systems, Man,
and Cybernetics, Part B: Cybernetics, vol. 31, no. 2, pp. 215–226, 2001.
[23] X. Boyen and L. Wehenkel, “Automatic induction of fuzzy decision trees
and its application to power system security assessment,” Fuzzy Sets and Systems, vol.
102, no. 1, pp. 3 – 19, 1999
[24] R. Weber, “Fuzzy-id3: a class of methods for automatic knowledge
acquisition,” in Proc. 2nd Internat. Conf. on Fuzzy Logic & Neural Networks, 1992,
pp. 265–268.
[25] M. Zeinalkhani and M. Eftekhari, “Fuzzy partitioning of continuous
attributes through discretization methods to construct fuzzy decision tree classifiers,”
Information Sciences, vol. 278, pp. 715–735, 2014.
[26] C. Z. Janikow, “A genetic algorithm method for optimizing fuzzy decision
trees,” Information Sciences, vol. 89, no. 34, pp. 275 – 296, 1996
[27] https://www.cisco.com/c/m/en_au/products/security/offers/annual-
cybersecurity-report-2017.html
[28] C. Kolias, G. Kambourakis, A. Stavrou, and S. Gritzalis. Intrusion detection
in 802.11 Networks: Empirical evaluation of threats and a public dataset. IEEE
Communications Surveys Tutorials, 18(1):184{208, 2016.
[29] Sonu Duhan, Padmavati khandnor. (2016) Intrusion Detection System in
Wireless Sensor Networks: A Comprehensive Review. In: International Conference on
Electrical, Electronics, and Optimization Techniques (ICEEOT) - 2016
[30] Mohiuddin Ahmed, Abdun Naser Mahmood, Jiankun Hu. (2016) A survey
of network anomaly detection techniques. In: Journal of Network and Computer
Applications 60 (2016) 19–31.
[31] Aminanto, M. E., & Kim, K. (2016, August). Detecting Impersonation
Attack in WiFi Networks Using Deep Learning Approach. In International Workshop
on Information Security Applications (pp. 136-147). Springer, Cham.
[32] Aminanto, M. E., Yoo, P. D., Tanuwidjaja, H. C., & Kim, K. (2017).
Weighted Feature Selection Techniques for Detecting Impersonation Attack in Wi-Fi
Networks. Doi: http://caislab.kaist.ac.kr/publication/paper_files/2017/SCIS_AM.pdf
[33] http://axon.cs.byu.edu/Dan/678/miscellaneous/SVM.example.pdf
[34] Cristina Olaru∗, Louis Wehenkel. A complete fuzzy decision tree technique.
In: Fuzzy Sets and Systems 138 (2003) 221 – 254
[35] Yonghong Peng, Peter A. Flach. Soft Discretization to Enhance the
Continuous Decision Tree Induction, Supported by Esprit METAL project (26.357),
and National Natural Science Foundation of China (59905008).
[36] http://icsdweb.aegean.gr/awid/
[37] https://garao.in/2018/12/06/what-is-ieee-802-11bb-protocol/
[38] H. Ahn, H. Moon, J. Fazzari, N. Lim, J. Chen, R. Kodell, Classification by
ensembles from random partitions of high dimensional data, Computational Statistics
and Data Analysis 51 (2007) 6166–6179
[39] R.E. Banfield, L.O. Hall, K.W. Bowyer, W.P. Kegelmeyer, A comparison
of decision tree ensemble creation techniques, IEEE Transactions on Pattern Analysis
and Machine Intelligence 29 (1) (2007) 173–180
[40] Amir Hussain, Erfu Yang “A Novel Classification Algorithm Based on
Incremental Semi-Supervised Support Vector Machin”, PLOS ONE | DOI:
10.1371/journal.pone.0135709 August 14, 2015.
[41] Piero Bonissone, José M. Cadenas, M. Carmen Garrido, R. Andrés Díaz-
Valladares “A fuzzy random forest”, International Journal of Approximate Reasoning
51 (2010) 729–747.
[42] P. P. Bonissone, J. M. Cadenas, M. C. Garrido, R. A. D´ıaz-Valladares, R.
Mart´ınez “Weighted decisions in a Fuzzy Random Forest”, IFSA-EUSFLAT 2009.
[43] Jose M. Cadenas, M. Carmen Garrido, Raquel Martı ´nez, Piero P.
Bonissone. (2011) Extending information processing in a Fuzzy Random Forest
ensemble. In: Soft Comput (2012) 16:845–861- Springer Nature
[44] S. Meenakshi, V. Venkatachalam “FUDT: A Fuzzy Uncertain Decision
Tree Algorithm for Classification of Uncertain Data”, research article - computer
engineering and computer science, Arab J Sci Eng (2015) 40:3187–3196.
[45] Vitaly LEVASHENKO, Penka MARTINCOVÁ “Fuzzy decision tree for
parallel processing support”, Journal of Information, Control and Management
Systems, Vol. 3, (2005), No. 1.
top related