Thuật toỏn Naive Bayes/NBD

Một phần của tài liệu Một số phát hiện mới trong đo lường và phân tích lưu lượng internet. Mô hình và các thuộc tính phân loại lưu lượng theo ứng dụng769 (Trang 107)

5. Bố ục cc ủa luận ỏn

4.2.5.2 Thuật toỏn Naive Bayes/NBD

Thuật toỏn Naive Bayes 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à vộc 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, ..., Xk} và một bi n ng u nhiờn thế ẫ C ể ệ ớ hi n l p c a d ủ ữ

liệu. Và 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 phõn loại Naive Bayes hoạt động rất đơn giản như sau: trong giai đ ạo n học, nú tiến hành tớnh xỏc suấ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 thuật toỏ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 s cấ ằ ố ủa 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: ( ) ( | ) ( | ) ( ) i i i P C c P X x C c P C c X x P X x = = = = = = = ∏ (4-2-7) 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 hoỏ 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ố: ( ) ( ) (j | j)

j

Xỏc suất P(C=c|X=x) chỉ tồ ạ ến t i n u thu c tớnh Xộ i 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. ậ ữ ệ ẫ Đối v i cỏc thu c tớnh l y giỏ tr ớ ộ ấ ị

liờn tục, xỏc suất của chỳng khụng thể ự đ d oỏn bằng phõn bố ầ t n suất xuất hiện, mà phải tiến hành rời rạc hoỏ chỳng (NBD) ho c s dặ ử ụng phương phỏp d oỏn hàm ự đ

mật độ phõn bố liờn tục NBK.

4.2.5.3 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 2 đơ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 [55]: 1 ( , ) n ( , )i i i D x y f x y = = ∑ (4-2-9) 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à , trong y đú xi và yi tươ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 = x −y (4-2-10) Cũn với cỏc thuộc tớnh liờn tục thỡ f(xi,yi) =0 nếu cỏc thuộc tớnh phự hợp nhau và bằng 1 nếu chỳng khỏc nhau.

Vớ dụ về ho t ạ động c a thuủ ật toỏn kNN: giả sửx là đơn vị dữ ệ li u c n phõn ầ

loại, tiến hành tớnh kho ng cỏch ả D giữa và mx ỗi đơn v d li u m u . Vớ dị ữ ệ ẫ y ụ ế n u cú 100 đơn vị dữ ệ li u m u thỡ ẫ x được đỏnh giỏ lần lượt với 100 đơn vị này, bắt đầu bằng 1 đơn vị mẫu b t k . ấ ỳ x sẽ thuộc l p c a ớ ủ đơn v dị ữ ệ li u m u ẫ y nào mà cú khoảng cỏch D gần với nhx ất.

Luận ỏn này chủ yếu s dụng ba thuật toỏn trờn, tuy nhiờn để tăng độ ử chớnh xỏc của quỏ trỡnh phõn loại nghiờn cứu sinh đó kiểm tra thờm phương phỏp kết hợp cỏc thuật toỏn “yếu” v i nhau để tạớ o ra m t thu t toỏn học cú độ ộ ậ chớnh xỏc cao hơn. Kỹ thuậ đt ú gọi là AdaBoost [56].

4.2.5.4 AdaBoost – kỹ thuật “Boosting”

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 (m t ế ợ ề ậ ế ớ ộ

thuật toỏn học tựđộng được g i là y u n u nú cú ọ ế ế độ chớnh xỏc nằm trong khoảng từ

50% -60% nhưng khụng bộ hơn 50%).

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

Luận ỏn sử dụng thu t toỏn AdaBoost.MH mụ t trong [57] vỡ nú cho phộp ậ ả

cỏc bộ phõn loại tạo quyết định (phõn loại) dựa trờn tỉ lệ vềđộ_chắc_ch nắ tớnh theo trọng số. Nghiờn cứu sinh đó sửa đổi thu t toỏn cho phự h p v i bài toỏn nh n d ng ậ ợ ớ ậ ạ

luồng lưu lượng IP như sau.

AdaBoost.MH_Training_Process

Khởi tạo trọng số cho cỏc đối tượng dữ liệu mẫu; Tại mỗi vũng lặp i:

“Học” mụ hỡnh phõn loại yếu mới dựa trờn cỏc đối tượng dữ liệu mẫu đó gỏn

trọng số;

Sử dụng độ chớnh xỏc của mụ hỡnh phõn loại yếu đú để cập nh t tr ng s cho ậ ọ ố

cỏc đối tượng dữ liệu mẫu;

AdaBoost.MH_Classification_Process

Tại mỗi vũng lặp i:

Weak_Score = đ ểi m số phõn lo i ỳng tớnh b i b phõn lo i y u i; ạ đ ở ộ ạ ế

If weak_Score := positive: //phõn loạ đi ỳng

True_Score = True_Score + weak_Score else

False_Score = False_Score + (weak_Score x –1.0);

Độ_chắc_ch n = True_Score/(True_Score + False_Score);ắ

Trong quỏ trỡnh phõn loại thuật toỏn chỉ đơn thu n kiầ ểm tra tất cả những đối tượng (luồng lưu lượng) được phõn loại đỳng và sai b i t t c cỏc mụ hỡnh phõn lo i ở ấ ả ạ

yếu và đưa ra độ_chắc_ch nắ là tỉ ệ ữ l gi a 0 và 1 làm c s cho quy t ơ ở ế định phõn lo i. ạ

4.3 Xõy dng mụ hỡnh nhn d ng và phõn lo i lung lưu lượng IP bng phương phỏp hc tự động

Sau khi nghiờn cứu và đỏnh giỏ (hiệu suất) cỏc phương phỏp phõn loại hi n cú, ệ

lượng IP trờn Internet thành sỏu nhúm khỏc nhau theo hướng sử dụng k t h p thu t ế ợ ậ

toỏn lựa chọn thu c tớnh CFS c i ti n và cỏc gi i thu t h c t ộ ả ế ả ậ ọ ựđộng v i cỏc k t qu ớ ế ả

phõn tớch đặc tớnh của cỏc luồng lưu lượng IP. Cú thể trỡnh cụ thể hoỏ ý tưởng c a ủ

mụ hỡnh bằng 3 bước chớnh như sau:

Bước 1. Cỏc gúi lưu lượng đo được gom lại thành cỏc lu ng l u lượng theo nh ồ ư ư định nghĩa lu ng l u lượng chương 3 ồ ư ở

Bước 2. Tỡm tập cỏc thuộc tớnh tố ưi u c a cỏc lu ng l u lượng IP, là cỏc thuộc ủ ồ ư tớnh đặc trưng cho từng nhúm ứng dụng trờn Internet. Tập cỏc thuộc tớnh này sẽ được sử ụ d ng làm đầu vào cho thu t toỏn h c và nhậậ ọ n d ng. ạ

Bước 3. “Học” cỏc qui tắc nhận dạng và phõn loại luồng lưu lượng IP bằng cỏch kết hợp thuật toỏn học tự động với giải thuật lựa chọn thuộc tớnh CFS cải tiến trờn cơ sở tập thu c tớnh lu ng tỡm được bướộ ồ ở c 2. B c này thựướ c ch t gồm ấ hai chương trỡnh con, chương trỡnh thứ nhất là “luyện” để thuật toỏn học tự động tỡm ra cỏc qui tắc phõn lo i đỏng tin cậ y và chương trỡnh con thứ hai là cỏc ạ bộ phõn loại sử dụng cỏc qui tắc tỡm ra ở chương trỡnh con thứ nhất.

Hỡnh 4-3 trỡnh bày lưu đồ thuật toỏn của mụ hỡnh bao gồm tất cả cỏc bước từ

bắt gúi, phõn tớch luồng, lựa chọn thuộc tớnh, học và cuối cựng là cỏc bộ phõn loại luồng. Kết quả của quỏ trỡnh này là l u lư ượng được nh n d ng và phõn chia thành ậ ạ

cỏc lớp khỏc nhau.

Lưu đồ được thực hiện như sau: từ cỏc tập dữ liệu đo trong bảng 2-3 hoặc cú thể là bắt trực tiếp từ mạng, ti n hành xõy dế ựng dữ liệu luồng và phõn tớch thống kờ

để xỏc nh cỏc c tớnh đị đặ đặc trưng của cỏc luồng lưu lượng ứng dụng như đ ó trỡnh bày trong chương 3. Trờn cơ sở kết qu phõn tớch ả đặc tr ng lu ng l u lư ồ ư ượng, mụ hỡnh thực hiện tớnh tập thuộc tớnh của chỳng và lưu trữ dưới dạng cỏc bản ghi thuộc tớnh luồng làm đầu vào cho thuật toỏn học tựđộng.

Tuy nhiờn để cỏc thuật toỏn học tự động bi t b t ế ắ đầu v i thu c tớnh lu ng ớ ộ ồ

nào trước và thuộc tớnh nào sau, c n ph i cú mụ hỡnh ch n thu c tớnh. Ngoài ra cỏc ầ ả ọ ộ

thuật toỏn này chỉ cú thể học được khi cú s n cỏc t p d li u m u và t p d li u ẵ ậ ữ ệ ẫ ậ ữ ệ

kiểm tra đểđỏnh giỏ kết quả học được. K t qu quỏ trỡnh hế ả ọc này là tập cỏc qui tắc nhận dạng và phõn loại lưu lượng và sẽđược ỏp dụng cho cỏc bộ phõn loại để ứng dụng trờn lưu lượng thực của mạng.

Cỏc phần tiếp theo sẽ lần lượt trỡnh bày cỏc bước th c hiự ện thuật toỏn này, bao gồm: bước 2 tỡm tập cỏc thuộc tớnh c a cỏc luủ ồng l u lư ượng và b c 3 mụ hỡnh ướ

lựa chọn thuộc tớnh và thuật toỏn phõn loại luồng tựđộng. Bước 1 đó được trỡnh bày trong cỏc chương 1 và 2 của luận ỏn. Lu lợng mạng (Packets) Bắt gói Phân tích luồng Thuật toán học tự động (C4.5, kNN, Bayes/NBD, Adaboost.MH) Bộ phân loại

Các qui luật (rules) phân loại

Tạo và lấy mẫu luồng Cơ sở dữ liệu luồng Quá trình xử lý “gần” trực tuyến Các quá trình xử lý off-line Tham số luồng: - địa chỉ IP nguồn/đích - cổng ứng dụng nguồn/đích - số hiệu giao thức

- thời gian time-out (20, 40, 60, 90 và 120s)

Tập các thuộc tính luồng:

- độ dài đuôi phân bố IAT luồng - phân bố kích thớc luồng - phân bố IAT gói trong 1 luồng - phân bố kích thớc 1 số gói đầu của luồng - các thuộc tính thể hiện hớng truyền, tính giao dịch, tính tơng tác, vv… của luồng - khác ….

Cơ sở dữ liệu đo sẵn (Traces)

Mô hình lựa chọn thuộc tính (CFS, hoán đổi) N h ã n c á c l ớ p lu lợ n g

Dữ liệu mẫu Mô hình

Hỡnh 4-3 Lưu đồ thuật toỏn phõn loại luồng lưu lượng sử dụng kỹ thuậ ọ ựt h c t động

4.3.1 Chun bị ữ d liu

Để phục v cho vi c xõy dụ ệ ựng và ki m nghi m mụ hỡnh, nghiờn c u sinh s ể ệ ứ ử

dụng 4 tệp dữ liệu trong bảng 2-3, bao gồm DL1, DL2, DL4 và DL6. Việc lựa chọn 2 dữ liệu đo trờn mạng Internet của dự ỏn NLANR và 2 dữ liệ đ ạu o t i mạng ISP/IXP của EVN Telecom nhằm đảm bảo đỏnh giỏ đỳng hiệu suất và độ chớnh xỏc của thuật toỏn họ ực t động c ng nh mụ hỡnh l a ch n thu c tớnh. Cỏc cụng c HUT2FLOW ũ ư ự ọ ộ ụ

và FS2FLOW được sử dụng để t o cỏc luạ ồng lưu lượng IP tương ứng với thời gian time-out = 60s. Kết quả về số lượng luồng t o ra ạ đối v i m i t p d li u nh trong ớ ỗ ậ ữ ệ ư

bảng 4-1.

Một trong những khõu quan trọng của kỹ thuật phõn lo i b ng thu t toỏn h c ạ ằ ậ ọ

độ chớnh xỏc của thuật toỏn học tựđộng tuy nhiờn phương phỏp phổ dụng nh t, s ấ ẽ được trỡnh bày trong mục 4.3.5, là phương phỏp “ ỏnh giỏ chộo”, trong ú ngđ đ ười ta chia dữ liệu thành k phần và luõn phiờn s dử ụng làm d li u m u và d li u ki m ữ ệ ẫ ữ ệ ể

tra. Tuy nhiờn phương phỏp này yờu cầu cỏc phần dữ liệu nhỏ đ ú phải cú kớch thước tương đương nhau, vỡ thế luận ỏn chọn 2 tập dữ liệu (DL1, DL2) cú số lượng luồng tương đương nhau từ Internet và 2 tập dữ liệu (DL4, DL6) cũng cú số lượng luồng tương đương nhau đo tại mạng ISP/IXP c a EVN Telecom. K t quủ ế ả thực nghiệm cho thấy thuật toỏn học đạt độ chớnh xỏc cao nhất trong trường h p này.ợ

Bảng 4-1 Số lượng luồng của mỗi tệp dữ liệ ươu t ng ứng TT Tệp dữ liệu Số lượng luồng (τττττ = 60s) 1 DL1 943 667 2 DL2 887 941 3 DL4 148 183 4 DL6 186397

4.3.2 Xõy dng tp cỏc thuc tớnh ca lung lưu lượng IP

Để tỡm được đầ đủy cỏc thuộc tớnh quan trọng cú thể sử dụng cho vi c nhệ ận dạng và phõn loại luồng lưu lượng IP thỡ ngoài việc dựa vào kết quả của qỳa trớnh phõn tớch luồng, cũn yờu cầu sự hiểu biết sõu sắc về kiến trỳc và cơ chế hoạt động của cỏc giao thức trong mạng Internet. Nghiờn cứu sinh đó thực hiện nghiờn cứu một cỏch chi tiết cơ chế ho t ạ động c a cỏc giao thủ ức trong kiến trỳc phõn lớp TCP/IP, đặc biệt là cỏc cơ chế đ ề i u khiển luồng và sửa lỗi. Kết quả đ ó xỏc định

được tập h p kho ng 42 thu c tớnh ợ ả ộ đặc tr ng, nh trong b ng 4-2, ư ư ả để sử dụng cho bài toỏn phõn loại luồng lưu lượng IP.

Thực tế và theo kiến trỳc IPFIX [61] của IETF, số lượng thuộc tớnh cú thể cú của cỏc luồng lưu lượng IP là rấ ớt l n, tuy nhiờn khụng ph i t t cả ấ ả chỳng đều úng đ

gúp vào quỏ trỡnh phõn loại lưu lượng, do đú việc l a chự ọn và tớnh toỏn giỏ trị cỏc thuộc tớnh trong bảng 4-2 được thực hiện dựa trờn 3 nguyờn tắc là (i) đảm bảo tớnh tổng quỏt, (ii) đảm bảo tớnh hiệu quả và (iii) đảm bảo tớnh chớnh xỏc.

Tớnh tổng quỏt

Theo đú thuộc tớnh được lựa chọn phải hàm chứa trong nú thụng tin cho phộp phõn biệt lưu lượng của cỏc nhúm ứng dụng khỏc nhau và với cỏc thuộc tớnh này cú thể dễ dàng phõn lo i ạ được cỏc gúi/luồng lưu lượng mới cũng như cỏc biến thể của cỏc lớp lưu lượng đó được phõn biệt.

Cõu hỏi đặt ra là cần bao nhiờu thuộc tớnh thỡ đủ cho quỏ trỡnh phõn loại cỏc luồng lưu lượng IP? Về nguyờn tắc, càng nhiều thuộc tớnh thỡ khả năng th hi n ể ệ được hế ất t t cả cỏc biểu hiện biến thiờn của luồng l u lư ượng càng cao và do ú đ độ

chớnh xỏc của thuật toỏn phõn loại cũng cao hơn. Tuy nhiờn thực tế thực hiện mụ hỡnh lại cần phải hạn chế số lượng thuộc tớnh ở một m c nhứ ất định do cỏc yờu c u ầ

về thời gian, cụng suất tớnh toỏn và dung lượng lưu trữ. Giải phỏp là cần cú s cõn ự

bằng giữa hiệu suất tớnh toỏn và độ chớnh xỏc phõn loại, theo đú sẽ chỉ chọn những thuộc tớnh cung cấp nhiều thụng tin cho quỏ trỡnh phõn loại nhất. Mức cõn bằng trong luận ỏn này được chọn qua cỏc bước thực nghiệm.

Tớnh chớnh xỏc

Theo đú cỏc thuộc tớnh được chọn phải cho xỏc su t phõn biấ ệt sai cỏc gúi/luồng lưu lượng càng thấp càng tốt, hay núi cỏch khỏc chỳng phải mụ tả một cỏch chớnh xỏc đặc trưng của luồng lưu lượng từng ứng d ng cụ ụ thể.

Bảng 4-2 Tập cỏc thuộc tớnh của luồng ph c v bài toỏn phõn loụ ụ ại lưu lượng

Một phần của tài liệu Một số phát hiện mới trong đo lường và phân tích lưu lượng internet. Mô hình và các thuộc tính phân loại lưu lượng theo ứng dụng769 (Trang 107)