Ứng dỤng thuẬt toÁn fuzzy random forest trong …

101
ĐẠ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

Upload: others

Post on 24-Nov-2021

17 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

ĐẠ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

Page 2: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

ĐẠ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

Page 3: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 4: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 5: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 6: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 7: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 8: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 9: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 10: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 11: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 12: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 13: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 14: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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].

Page 15: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 16: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

ở 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.

Page 17: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 18: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

đì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

Page 19: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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ẽ

Page 20: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 21: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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:

Page 22: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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..

Page 23: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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ố.

Page 24: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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+

Page 25: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 26: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 27: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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)

Page 28: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 29: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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”

Page 30: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 31: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 32: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 33: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 34: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 35: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 36: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 37: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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 đó.

Page 38: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 39: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 40: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 41: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 42: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 43: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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].

Page 44: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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ờ

Page 45: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

ở 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)

Page 46: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

)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ị

Page 47: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 48: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 49: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 50: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 51: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 52: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 53: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 54: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 55: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 56: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 57: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 58: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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)

Page 59: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 60: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 61: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

- 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

Page 62: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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:

Page 63: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

, ,; 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;

Page 64: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 65: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

= − = =

Page 66: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

= − = =

Page 67: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 68: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 69: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

+ + += =

Page 70: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 71: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 72: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 73: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 74: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 75: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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)

Page 76: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 77: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 78: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 79: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 80: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 81: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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]

Page 82: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 83: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 84: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 85: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 86: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 87: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 88: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 89: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 90: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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)

Page 91: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 92: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 93: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 94: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 95: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 96: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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.

Page 97: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …
Page 98: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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/

Page 99: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

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

Page 100: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

[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

Page 101: ỨNG DỤNG THUẬT TOÁN FUZZY RANDOM FOREST TRONG …

[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.