Thuật toán phân loại

Một phần của tài liệu NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP BẮT GIỮ, PHÂN TÍCH VÀ NHẬN DẠNG LUỒNG LƯU LƯỢNG IP TRÊN INTERNET (Trang 63 - 68)

Hiện nay có nhiều thuật toán học tự động khác nhau nhưng trong luận văn này chỉ trình bày tóm tắt 4 thuật toán học có giám sát cơ bản là:

- Thuật toán cây quyết định C4.5. - Thuật toán Naive Bayes/ NBD. - Thuật toán lân cận gần nhất (kNN). - Thuật toán AdaBoost.

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

Thuật toán cây quyết định C4.5 tạo mô hình học từ dữ liệu mẫu bằng cách xây dựng cây quyết định trong đó các nút cây thể hiện các thuộc tính của dữ liệu và các nhánh cây thể hiện các giá trị tương ứng có thể của thuộc tính. Lá cây chính là tên lớp cần phân loại. Khi đã có cây quyết định thì việc xác lớp của một đơn vị dữ liệu mới x được thực hiện dễ dàng bằng cách lần theo các nút và nhánh cây đến lá tương ứng.

Cây được xây dựng bằng cách sử dụng thuật toán tìm lặp từ trên xuống dưới, nghĩa là thuật toán sẽ chia dữ liệu mẫu thành các tập con dựa trên thuộc tính cho

phép phân chia dữ liệu một cách tốt nhất và thuộc tính này sẽ được chọn làm gốc

của cây. Thuật toán sau đó sẽ được lặp lại cho các tập con vừa hình thành ở bước trên cho đến khi dữ liệu mẫu được chia thành các tập con chứa các thuộc tính thuộc trong cùng 1 lớp. Tại mỗi bước của quá trình phân chia, khái niệm "thuộc tính cho

phép phân chia dữ liệu một cách tốt nhất" được xác định dựa trên một thông số

thống kê gọi là hệ số thông tin.

Hệ số thông tin được tính như sau:

v v giatri(A) ( , ) Entropy(S) - SvEntropy(S ) IG S A S ∈ = ∑ (3-1) Trong đó: (+) 2 (+) (-) 2 (-)

Entropy(S) = -p log p −p log p (3-2) Với S là tập dữ liệu mẫu, còn p(+) là phần các thuộc tính (của dữ liệu S) thuộc lớp + và p(-) là phần các thuộc tính thuộc lớp -.

Có thể hiểu hệ số thông tin IG là lượng suy giảm Entropy của tập dữ liệu trung bình khi tiến hành phân chia các phần tử của tập dữ liệu mẫu theo thuộc tính A nào đó. Giá trị(A) được hiểu là tập tất cả các giá trị có thể có của thuộc tính A và Sv là tập con của S khi thuộc tính A lấy giá trị là v. Thuộc tính A có thể lấy giá trị rời rạc hoặc liên tục, nếu A rời rạc thì phép kiểm tra tương ứng sẽ là A≤θ, trong đó θ là mức ngưỡng tương ứng của thuộc tính A.

Đại lượng IG(S,A) là entropy của tập dữ liệu ban đầu còn đại lượng thứ 2 được hiểu là entropy của tập dữ liệu sau khi đã được phân chia bằng cách sử dụng thuộc tính A và cũng chính là tổng entropy của các tập dữ liệu con Sv với các trọng số là số lượng thuộc tính tương ứng của mỗi tập con. Cuối cùng tại mỗi bước kiểm tra, thuộc tính nào có giá trị IG lớn nhất sẽ được chọn để hình thành nút tương ứng của cây.

Thuật toán Naive Bayes/NBD

Thuật toán Naive Bayes/NBD sử dụng phiên bản đơn giản hoá của công thức xác suất có điều kiện Bayes để quyết định xem đơn vị dữ liệu đầu vào thuộc lớp nào. Kỹ thuật phân loại này sẽ phân tích mối quan hệ giữa mỗi thuộc tính với lớp tương ứng của dữ liệu mẫu và đưa ra xác suất có điều kiện mô tả quan hệ giữa các giá trị của thuộc tính và lớp tương ứng.

Giả thiết X là vec-tơ dữ liệu mẫu trong đó mỗi đơn vị dữ liệu của nó được mô tả bằng các thuộc tính {X1, X2, …..,Xk} và một biến ngẫu nhiên C thể hiện lớp của dữ liệu. Gọi x là một đơn vị dữ liệu xét và c là một lớp cụ thể nào đó. Thuật toán Naïve Bayes hoạt động như sau:

Trong giai đoạn học, nó tiến hành tính xác xuất của mỗi lớp bằng cách đếm số lần xuất hiện của lớp này trong tập dữ liệu mẫu gọi là xác suất tiền định P(C=c). Ngoài ra nó còn tính xác suất xảy ra dữ liệu x với điều kiện đã biết xác suất của lớp c, tức P(C=c), và với giả thiết các thuộc tính độc lập với nhau, xác suất này bằng tích các xác suất từng thuộc tính. Cuối cùng xác suất đơn vị dữ liệu x thuộc lớp c được tính bằng công thức Bayes như sau:

1 1 i P(C=c) P(X C=c) ( X=x)= P(X=x) x P C c =  =  ∏ (3-3)

Mẫu số thể hiện yếu tố bất biến giữa các lớp và chỉ có giá trị như một hằng số chuẩn hóa và có thể được tính bằng tổng các xác suất kết hợp của các chỉ số:

( )

P C c X=  =x ( ) ( ) (j j)

j

P X =x =∑P c P X = x C (3-4) Xác suất P C c X( =  =x) chỉ tồn tại nếu thuộc tính Xi lấy các giá trị rời rạc, tức có số giá trị hữu hạn và bé, khi đó các xác suất tương ứng đơn giản là tần suất xuất hiện của các đơn vị dữ liệu trong tập dữ liệu mẫu.

Thuật toán lân cận gần nhất (kNN)

Thuật toán này thường được gọi là phương pháp học dự đoán "lười" vì nó tương đối đơn giản. Mỗi khi có một dữ liệu mới đến mô hình phân loại, thuật toán sẽ dự đoán lớp của nó là lớp chiếm đa số trong k đơn vị dữ liệu mẫu tương tự có trong mô hình. Mức độ tương tự được xét dựa trên thông số đo lường khoảng cách giữa hai đơn vị dữ liệu và được tính theo sự khác nhau giữa các giá trị của thuộc tính như sau: 1 ( , ) n ( , )i i i D x y f x y = = ∑ (3-5) Nói cách khác, công thức này thể hiện khoảng cách D giữa hai đơn vị dữ liệu x và y, trong đó xi và yitương ứng là giá trị của thuộc tính thứ i. Với các thuộc tính rời rạc có thể tính:

2 ( , ) (i i i i)

f x y = xy (3-6)

Còn với các thuộc tính liên tục thì f x y( , )i i =o nếu các thuộc tính phù hợp

nhau và bằng 1 nếu chúng khác nhau.

Thuật toán AdaBoost - Kỹ thuật "Boosting"

Thuật toán AdaBoost là thuật toán tương đối mới nhưng lại rất triển vọng do độ chính xác cao của nó, là một trong các thuật toán dạng "Boosting" cho phép nâng cao độ chính xác của bộ phân loại bằng cách kết hợp nhiều thuật toán "yếu" với nhau (các thuật toán có độ chính xác nằm trong khoảng 50%-60%). AdaBoost hoạt

động bằng một chuỗi các vòng lặp, tại mỗi vòng nó "luyện" một phiên bản của thuật toán yếu khác nhau. Các phiên bản khác nhau này được hình thành bằng cách gán giá trị trọng số khác nhau cho mỗi đối tượng (luồng lưu lượng) của dữ liệu mẫu, cứ sau mỗi vòng lặp các giá trị trọng số này được cập nhật theo cách nhấn mạnh các đối tượng mà thuật toán yếu ở vòng lặp trước gặp vấn đề với chúng (tức có độ chính xác thấp).

Một phần của tài liệu NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP BẮT GIỮ, PHÂN TÍCH VÀ NHẬN DẠNG LUỒNG LƯU LƯỢNG IP TRÊN INTERNET (Trang 63 - 68)

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

(75 trang)
w