Thuật toán Quinlan

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp phát hiện mã độc dựa trên dữ liệu Metadata của tệp tin (Trang 40)

3. Các nội dung nghiên cứu của luận văn

2.3.2. Thuật toán Quinlan

Giới thiệu

Thuật toán Quinlan quyết định thuộc tính phân hoạch bằng cách xây dựng các vector đặc trưng cho mỗi giá trị của từng thuộc tính dẫn xuất và thuộc tính mục tiêu [31].

Mô tả thuật toán

Bước 1: Phát hiện thuộc tính dẫn xuất và thuộc tính mục tiêu Thuộc tính mục tiêu: là thuộc tính quan tâm.

Thuộc tính dẫn xuất: là thuộc tính quan sát.

Bước 2: Với mỗi thuộc tính dẫn xuất A, tính vector đặc trưng

VA(j) = (T(j, r1), T(j , r2) , …, T(j , rn) )

 T(j, ri) = (tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất A là j và có giá trị thuộc tính mục tiêu là ri) / (tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất A là j).

 r1, r2, …, rn là các giá trị của thuộc tính mục tiêu.

Bước 3: Chọn thuộc tính có nhiều vector đơn vị nhất để phân hoạch.

Vector đơn vị là vector có duy nhất một thành phần có giá trị 1 và những thành phần khác có giá trị 0.

Bước 4: Loại bỏ các thuộc tính đã được phân hoạch.

Nếu vẫn còn thuộc tính đẫn xuất quay lại bước 2 để tính vector đặc trưng cho các thuộc tính dẫn xuất.

Ngược lại, kết thúc thuật toán. 2.3.3. Thuật toán ID3

32

Thuật toán quy nạp cây ID3 (gọi tắt là ID3) là một thuật toán học đơn giản nhưng được ứng dụng rộng rãi trong nhiều lĩnh vực và cho kết quả tốt. ID3 biểu diễn các khái niệm ở dạng các cây quyết định, ở dạng biểu diễn này cho phép 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 đối tượng trên một số thuộc tính nào đó. Thuật toán ID3 là học cây quyết định từ một tập các ví dụ rèn luyện (training example) hay là dữ liệu rèn luyện (training data).

Mô tả thuật toán ID3

Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Syney, Australia) và được công bố vào cuối thập niên 70 của thế kỷ 20 [32]. ID3 được xem như là một cải tiến của CLS với khả năng lựa chọn thuộc tính tốt nhất để tiếp tục triển khai cây tại mỗi bước.

Trong ID3, chúng ta cần xác định thứ tự của thuộc tính cần được xem xét tại mỗi bước. Với các bài toán có nhiều thuộc tính và mỗi thuộc tính có nhiều giá trị khác nhau, việc tìm được nghiệm tối ưu thường là không khả thi. Thay vào đó, một phương pháp đơn giản thường được sử dụng là tại mỗi bước, một thuộc tính tốt nhất sẽ được chọn ra dựa trên một tiêu chuẩn. Với mỗi thuộc tính được chọn, ta chia dữ liệu vào các nút con (child node) tương ứng với các giá trị của thuộc tính đó rồi tiếp tục áp dụng phương pháp này cho mỗi nút con. Việc chọn ra thuộc tính tốt nhất ở mỗi bước được gọi là cách chọn tham lam (greedy). Cách chọn này có thể không phải là tối ưu, nhưng là cách sẽ gần với cách làm tối ưu. Ngoài ra, cách làm này khiến cho bài toán cần giải quyết trở nên đơn giản hơn. Sau mỗi câu hỏi, dữ liệu được phân chia vào từng nút con tương ứng với các câu trả lời cho câu hỏi đó. Câu hỏi ở đây chính là một thuộc tính, câu trả lời chính là giá trị của thuộc tính đó. Để đánh giá chất lượng của một cách phân chia, chúng ta cần đi tìm một phép đo.

Trước hết, thế nào là một phép phân chia tốt. Một phép phân chia là tốt nhất nếu dữ liệu trong mỗi nút con hoàn toàn thuộc vào một class. Khi đó nút con này có thể được gọi là một nút lá (leaf node), tức ta không cần phân chia thêm nữa. Nếu dữ liệu trong các nút con vẫn lẫn vào nhau theo tỉ lệ lớn, ta coi

33

rằng phép phân chia đó chưa thực sự tốt. Từ nhận xét này, ta cần có một hàm số đo độ tinh khiết (purity), hoặc độ vẩn đục (impurity) của một phép phân chia. Hàm số này sẽ cho giá trị thấp nhất nếu dữ liệu trong mỗi nút con nằm trong cùng một class (tinh khiết nhất), và cho giá trị cao nếu mỗi nút con có chứa dữ liệu thuộc nhiều class khác nhau.

Entropy đo tính thuần nhất của tập dữ liệu

Entropy dùng để đo tính thuần nhất của một tập dữ liệu. Entropy của một tập S được tính theo công thức:

Entropy(S) = −𝑃+𝑙𝑜𝑔2(𝑃+) −𝑃−𝑙𝑜𝑔2(𝑃−)

Trong trường hợp các mẫu dữ liệu có hai thuộc tính phân lớp “yes” (+), “no” (-), Ký hiệu P+ là để chỉ tỉ lệ các mẫu có giá trị của thuộc tính quyết định là “yes”, và P- là tỷ lệ các mẫu có giá trị của thuộc tính quyết định là “no” trong tập S.

Trường hợp tổng quát, đối với tập con S có n phân lớp thì ta có công thức sau:

Entropy(S) = ∑𝑛𝑖=1(−𝑃𝑖𝑙𝑜𝑔2(𝑃𝑖))

Trong đó Pi là tỷ lệ các mẫu thuộc lớp I trên tập hợp S các mẫu kiểm tra. Các trường hợp đặc biệt:

 Nếu tất cả các mẫu thành viên trong tập S đều thuộc cùng một lớp thì Entropy(S) = 0.

 Nếu trong tập S có số mẫu phân bố đều nhau vào các lớp thì Entropy(S) = 1.

 Các trường hợp còn lại 0 < Entropy(S) < 1.

Information Gain

Viết tắt là Gain: Gain là đại lượng dùng để đo tính hiệu quả của một thuộc tính được lựa chọn cho việc phân lớp. Đại lượng này được tính thông qua hai giá trị Information và Entropy.

Cho tập dữ liệu S gồm có n thuộc tính Ai(i=1,2,…,n) giá trị Information của thuộc tính Ai ký hiệu là Information (Ai) được xác định bởi công thức:

34

Giá trị Gain của thuộc tính A trong tập S ký hiệu là Gain(S,A) và được tính theo công thức sau:

Gain(S,A)=Information(A)–Entropy(A)= Entropy(S) -

∑ |𝑆𝑣| |𝑆|

𝑣!∈𝑣𝑎𝑙𝑢𝑒(𝐴) Entropy(𝑠𝑣)

Trong đó:

S là tập hợp ban đầu với thuộc tính A. Các giá trị của v tương ứng là các giá trị của thuộc tính A.

Sv bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v. |Sv| là số phần tử của tập Sv.

|S| là số phần tử của tập S.

Trong quá trình xây dựng cây quyết định theo thuật toán ID3 tại mỗi bước triển khai cây, thuộc tính được chọn để triển khai là thuộc tính có giá trị Gain lớn nhất.

Thuật toán ID3 xây dựng cây quyết định

Bước 1: Chọn A <= thuộc tính quyết định “tốt nhất” cho nút kế tiếp. Bước 2: Gán A là thuộc tính quyết định cho nút.

Bước 3: Với mỗi giá trị của A, tạo nhánh con mới của nút. Bước 4: Phân loại các mẫu huấn luyện cho các nút lá.

Bước 5: Nếu các mẫu huấn luyện được phân loại hoàn toàn thì Kết Thúc. Ngược lại, lặp với các nút lá mới tại Bước 1.

2.3.4. Thuật toán C4.5

Giới thiệu

C4.5 được xem là phiên bản nâng cấp của ID3 với khả năng xử lý được cả dữ liệu đinh lượng dạng liên tục (continuous data) và cả dữ liệu định tính, và là thuật toán Decision tree tiêu biểu. C4.5 sử dụng thêm công thức Gain ratio để khắc phục các khuyết điểm của Information Gain của ID3 trong việc lựa chọn cách phân nhánh tối ưu

35

Thuật toán C4.5 được phát triển từ thuật toán CLS và ID3 vào năm 1993 [33]. Với những đặc điểm C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định hiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ. C4.5 sử dụng cơ chế lưu trữ dữ liệu thường trú trong bộ nhớ, chính đặc điểm này làm C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ, và cơ chế sắp xếp lại dữ liệu tại mỗi nút trong quá trình phát triển cây quyết định. C4.5 còn cho phép biểu diễn lại cây quyết định dưới dạng một danh sách sắp thứ tự các luật if-then (một dạng quy tắc phân lớp dễ hiểu). Kỹ thuật này cho phép làm giảm bớt kích thước tập luật và đơn giản hóa các luật mà độ chính xác so với nhánh tương ứng cây quyết định là tương đương.

Thuật toán C4.5 xây dựng cây quyết định

Bước 1: Kiểm tra case cơ bản

Bước 2: Với mỗi thuộc tính A, tìm thông tin nhờ việc tách thuộc tính A. Bước 3: Chọn a_best là thuộc tính mà độ đo lựa chọn thuộc tính “tốt nhất”

Bước 4: Dùng a_best làm thuộc tính cho node chia cắt cây.

Bước 5: Đệ quy trên danh sách phụ được tạo ra bởi việc phân chia theo a_best, và thêm các node này như là con của node.

Gain Entropy làm độ đo lựa chọn thuộc tính tốt nhất

Phần lớn các hệ thống đều cố gắng để tạo ra một cây càng nhỏ càng tốt, vì những cây nhỏ hơn thì dễ hiểu hơn và dễ đạt được độ chính xác dự đoán cao hơn. Do không thể đảm bảo được sự cực tiểu của cây quyết định, C4.5 dựa vào nghiên cứu tối ưu hóa, và sự lựa chọn cách phân chia mà có độ đo lựa chọn thuộc tính đạt giá trị cực đại.

Hai độ đo được sử dụng trong C4.5 là Information GainGain Ratio.

RF (relative frequency) tần số tương đối:

RF(Cj, S) = |𝑆𝑗|

|𝑆|

Với |Sj| là kích thước tập các case có giá trị phân lớp là Cj. |S| là kích thước tập dữ liệu đào tạo.

36

I(S) = -∑𝑥𝑗=1𝑅𝐹(𝐶𝑗, 𝑆) 𝑙𝑜𝑔 𝑅𝐹(𝐶𝑗, 𝑆)

Với S là tập cần xét sự phân phối lớp.

Sau khi S được phân chia thành các tập con S1, S2,…, St bởi test B thì

Information Gain được tính bằng:

G(S,B) = I(S) -∑ |𝑆𝑖

𝑆| 𝐼(𝑆𝑖)

𝑡 𝑖=1

Test B sẽ được chọn nếu có G(S, B) đạt giá trị lớn nhất.

Tuy nhiên có một vấn đề khi sử dụng G(S,B) ưu tiên test có số lượng lớn kết quả, ví dụ G(S,B) đạt cực đại với test mà từng Si chỉ chứa một case đơn. Tiêu chuẩn gain ratio giải quyết được vấn đề này bằng việc đưa vào thông tin tiềm năng (potential information) của bản thân mỗi phân hoạch:

P(S, B) = ∑ |𝑆𝑖

𝑆| 𝑙𝑜𝑔 (|𝑆𝑖

𝑆|) .

𝑡 𝑖=1

Test B sẽ được chọn nếu có tỉ số giá trị gain ratio = G(S, B) / P(S, B) lớn nhất.

2.3.5. Thuật toán RandomForest

Giới thiệu về thuật toán Random Forest (RDF)

RDF được đề xuất bởi Breiman vào năm 2001. Đây là thuật toán phân loại có kiểm định dựa trên cây quyết định và kỹ thuật bagging và bootstrapping đã được cải tiến. Bootstrapping là một phương pháp rất nổi tiếng trong thống kê được giới thiệu bởi Efron vào năm 1979 [34]. Phương pháp này được thực hiện như sau: từ một quần thể ban đầu lấy ra một mẫu L = (x1, x2,..,xn) gồm n thành phần để tính toán các tham số mong muốn. Trong các bước tiếp theo lặp lại b lần tạo ra mẫu Lb cũng gồm n phần từ L bằng cách lấy lại mẫu với sự thay thế các thành phần trong mẫu ban đầu sau đó tính toán các tham số mong muốn (Đồng Thị Ngọc Lan, 2011) [35]. Phương pháp Bagging được xem như là một phương pháp tổng hợp kết quả có được từ các bootstraping sau đó huấn luyện mô hình từ các mẫu ngẫu nhiên này và cuối cùng đưa ra dự đoán phân loại dựa vào số phiếu bầu cao nhất của lớp phân loại (Đồng Thị Ngọc Lan, 2011) [35]. Cây quyết định là một sơ đồ phát triển có cấu trúc dạng cây phân nhánh đi từ gốc cho đến lá, giá trị các lớp phân loại

37

của mẫu được đưa vào kiểm tra trên cây 125 quyết định. Mỗi mẫu tương ứng có một đường đi từ gốc-tức là dữ liệu đầu vào đến lá-tức là các kết quả phân loại dự đoán đầu ra, biểu diễn dự đoán giá trị phân lớp mẫu đó. Mỗi sơ đồ cây trong tập mẫu được tạo thành từ tập hợp các điểm ảnh huấn luyện được lựa chọn ngẫu nhiên để huấn luyện mô hình phân loại RDF (mỗi tập mẫu bootstrap sẽ cho ra một tree và ntree tương ứng với nbootstrap). Khi một tập mẫu được rút ra từ tập huấn luyện (bootstrap) với sự thay thế có hoàn lại, thì theo ước tính có khoảng 1/3 các phần tử không nằm trong mẫu này và vì thế chúng không tham gia vào quá trình huấn luyện (Breiman L., 2001, 2007) [36], [37]. Điều này có nghĩa là chỉ có khoảng 2/3 các phần tử trong tập huấn luyện tham gia vào trong các tính toán để phân loại (in of bag), và 1/3 các phần tử này dùng để kiểm tra sai số được gọi là dữ liệu out-of-bag (OOB). Dữ liệu out-of-bag được sử dụng để ước lượng sai số tạo ra từ việc kết hợp các kết quả phân loại riêng lẻ sau đó được tổng hợp trong mô hình RDF cũng như dùng để ước tính các biến quan trọng (variable important) bằng chức năng Importance..

Mô tả thuật toán Random Forest

Chúng ta có thể nghĩ đến một ví dụ đơn giản trong cuộc sống, giả sử tôi muốn tìm hiểu một địa danh cho chuyến du lịch sắp tới, tôi sẽ đi hỏi một người bạn để tham khảo ý kiến. Nhưng, ý kiến của người bạn này có thể không khách quan cho lắm. Tôi liền đi hỏi thêm một vài người nữa, và tổng hợp lại để cho ra quyết định đi hay không.

Nếu coi mỗi ý kiến của những người góp ý là một cây quyết định, thì chúng ta đã có hình dung mơ hồ về Random Forest rồi. Random Forest hoạt động bằng cách đánh giá nhiều Cây quyết định ngẫu nhiên, và lấy ra kết quả được đánh giá tốt nhất trong số kết quả trả về.

Mã giả cho hoạt động của Random Forest:

- Chọn ngẫu nhiên “k” features từ tập “m” features. - Để ý k << m

38

- Chia các node con theo node tốt nhất vừa tìm được - Lặp lại bước 1-3 cho đến khi đạt đến k node

- Lặp lại bước 1-4 để tạo ra “n” cây

Sau các bước trên, chúng ta đã tạo ra được một Random Forest, vậy nó hoạt động như thế nào để dự đoán?

Để biểu diễn dự đoán sử dụng Random Forest đã huấn luyện, ta sử dụng các bước bên dưới:

- Lấy các test features và sử dụng các Cây quyết định đã tạo ra để dự đoán kết quả, lưu nó vào một danh sách.

- Tính toán số lượng vote trên toàn bộ Forest cho từng kết quả.

- Lấy kết quả có số lượng vote lớn nhất làm kết quả cuối cho mô hình.

Hình 2.11. Mô phỏng sự phân tách trong cây quyết định Ưu điểm của thuật toán Random Forest

Trong thuật toán Decision Tree, khi xây dựng cây quyết định nếu để độ sâu tùy ý thì cây sẽ phân loại đúng hết các dữ liệu trong tập training dẫn đến mô hình có thể dự đoán tệ trên tập validation/test, khi đó mô hình bị overfitting, hay nói cách khác là mô hình có high variance.

39

Thuật toán Random Forest gồm nhiều cây quyết định, mỗi cây quyết định đều có những yếu tố ngẫu nhiên: Lấy ngẫu nhiên dữ liệu để xây dựng cây quyết định, lấy ngẫu nhiên các thuộc tính để xây dựng cây quyết định.

Do mỗi cây quyết định trong thuật toán Random Forest không dùng tất cả dữ liệu training, cũng như không dùng tất cả các thuộc tính của dữ liệu để xây dựng cây nên mỗi cây có thể sẽ dự đoán không tốt, khi đó mỗi mô hình cây quyết định không bị overfitting mà có thế bị underfitting, hay nói cách khác là mô hình có high bias. Tuy nhiên, kết quả cuối cùng của thuật toán Random Forest lại tổng hợp từ nhiều cây quyết định, thế nên thông tin từ các cây sẽ bổ sung thông tin cho nhau, dẫn đến mô hình có low bias và low variance, hay mô hình có kết quả dự đoán tốt.

Ý tưởng tổng hợp các cây quyết định của thuật toán Random Forest giống với ý tưởng của The Wisdom of Crowds được đề xuất bởi by James Surowiecki vào năm 2004 [38]. The Wisdom of Crowds nói rằng thông thường tổng hợp thông tin từ 1 nhóm sẽ tốt hơn từ một cá nhân. Ở thuật toán Random Forest ta cũng tổng hợp thông tin từ 1 nhóm các cây quyết định và kết quả cho ra tốt hơn thuật toán Decision Tree với 1 cây quyết định.

2.4. Kết luận chương 2

Chương 2 trình bày được khái niệm về siêu dữ liệu, cấu trúc dữ liệu của tệp tin thực thi trên hệ điều hành Windows. Qua đó làm sáng tỏ mối liên hệ giữa dữ liệu cần sử dụng làm siêu dữ liệu với các trường, cấu trúc của tệp tin thực thi.

Trong chương này cũng đã trình bày chi tiết về các kỹ thuật áp dụng

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp phát hiện mã độc dựa trên dữ liệu Metadata của tệp tin (Trang 40)

Tải bản đầy đủ (PDF)

(69 trang)