Bước phân cụm được thực hiện trên từng lớp máy đích. Mục đích của bước phân cụm là để gom các bản ghi (thuộc cùng một lớp máy đích) có địa chỉ máy trạm giống nhau vào cùng một nhóm, mỗi nhóm chính là một lớp máy trạm. Mỗi phần tử của lớp máy trạm có thuộc tính là địa chỉ IP máy trạm và coi đó là thuộc tính của lớp. Các phần tử trong cùng một lớp máy trạm sẽ thuộc cùng một lớp máy đích và có địa chỉ máy trạm giống nhau.
Trong quá trình thực nghiệm, để thuận tiện cho việc thể hiện trong cơ sở dữ liệu, mỗi lớp máy trạm sẽ được gán nhãn theo nguyên tắc:
Nhãn lớp máy trạm = [địa chỉ IP máy trạm]
Trong đó [địa chỉ IP máy trạm] là chuỗi địa chỉ IP đã được bỏ các dấu chấm phân cách. Ví dụ: nếu địa chỉ máy trạm là 192.168.0.128 thì lớp máy trạm tương ứng sẽ là 1921680128.
Vì địa chỉ các máy trạm kết nối đến cùng một máy đích là không biết trước, số lượng các lớp máy trạm cũng không biết trước, do đó luận văn đề xuất sử dụng phương pháp phân cụm phân cấp, cụ thể là phương pháp Bottom-up, để tách các bản ghi trong logfile ra thành các nhóm khác nhau.
Phương pháp Bottom-up bắt đầu với mỗi đối tượng được khởi tạo tương ứng với các cụm riêng biệt, sau đó tiến hành nhóm các đối tượng theo một độ đo tương tự (như khoảng cách giữa hai trung tâm của hai nhóm), quá trình này được thực hiện cho đến khi tất cả các nhóm được hòa nhập vào một nhóm hoặc cho đến khi các điều kiện kết thúc thoả mãn.
Sử dụng phương pháp Bottom-up cần xác định 02 yếu tố sau:
- Hàm tính độ tương tự (ký hiệu là f), được dùng để xác định độ
- Ngưỡng tương tự (ký hiệu là T), dùng để xác định hai nhóm có tương tự nhau không. Nếu độ tương tự giữa hai nhóm nhỏ hơn hoặc bằng ngưỡng tương tự thì có thể nhập hai nhóm vào làm một.
Trong phương phápBottom-up, ban đầu mỗi bản ghi log sẽ được coi là thuộc một nhóm có phần tử duy nhất chính là bản ghi đó. Mục tiêu là phải gộp các bản ghi log có địa chỉ máy trạm giống nhau vào cùng một nhóm. Như vậy thuộc tính “địa chỉ IP máy trạm” sẽ được sử dụng để tính độ tương tự.
Ký hiệu thuộc tính “địa chỉ IP máy trạm” của nhóm A là AIP. Định nghĩa hàm tính độ tương tự như sau:
f(A,B) = {
Với hàm tương tự như trên thì độ tương tự của hai nhóm cũng chính bằng độ tương tự của hai phần tử bất kỳ thuộc mỗi nhóm. Do đó không cần xác định trung tâm của nhóm khi tính độ tương tự.
Định nghĩa ngưỡng T=0.
Như vậy, nếu f(A,B) ≤ T thì gộp A và B vào thành một nhóm.
Quá trình phân cụm được tiến hành như sau:
- Ký hiệu tập các bản ghi ban đầu cần phân cụm là X, mỗi phần tử ký hiệu là Xi, với i=1,..,n. Các bản ghi trong cùng một lớp máy đích được sắp xếp theo một thứ tự nhất định. Giả sử có n bản ghi. Khi đó ta có:
X={X1,X2,..,Xn}
- Ký hiệu tập các nhóm là C. Ban đầu, mỗi bản ghi được coi là thuộc một nhóm, tức là sẽ có n nhóm sau:
C={(X1), (X2),.., (Xn)}
- Thực hiện vòng lặp thứ nhất, ký hiệu là V1 duyệt từ nhóm đầu tiên cho đến nhóm cuối cùng. Ký hiệu vị trí duyệt của vòng lặp V1 tại nhóm thứ i là V1i.
- Trong mỗi bước vòng lặp V1, thực hiện một vòng lặp thứ hai, ký hiệu là V2i, trong đó i là vị trí duyệt của vòng lặp V1. Vòng lặp V2i
sẽ duyệt các nhóm khác tính từ nhóm đứng sau phần tử hiện tại của vòng lặp V1 (tức là nhóm V1i+1) cho đến hết. Ký hiệu vị trí duyệt thứ j của vòng lặp V2i là V2ij.
- Trong mỗi bước của vòng lặp V2i, tiến hành tính toán độ tương tự giữa V2ịj và V1i. Nếu f(V2ij, Vi)≤T thì gộp V1i và V2ij vào thành một nhóm. Việc gộp nhóm sẽ sắp xếp lại thứ tự các nhóm, do đó khi có sự gộp nhóm thì vòng lặp V2i phải duyệt lại vị trí hiện tại một lần nữa. Sau mỗi vòng lặp V2, các nhóm có độ tương tự giống với
nhóm thứ i sẽ được gộp lại với nhau thành một nhóm, nhóm này sẽ chứa cả nhóm tại vị trí duyệt của vòng lặp V1.
- Bước tiếp theo, vòng lặp V1 sẽ duyệt nhóm khác gần nhất không thuộc nhóm mới tạo ra. Và tiếp tục duyệt vòng lặp V2 tính từ nhóm đứng sau vị trí duyệt của vòng lặp V1.
- Quá trình trên được thực hiện đến khi vòng lặp V1 duyệt hết các nhóm trong tập C.
Ví dụ mô tả về quá trình phân cụm như sau:
Giả thiết:
- Tập phần tử ban đầu X={a,b,c,c,b,a,d}, số phần tử n=7.
- Yêu cầu: gộp các phần tử giống nhau vào cùng một nhóm. Như vậy, thuộc tính nhóm ở đây chính là giá trị của phần tử. Thuộc tính của nhóm {a} là a, thuộc tính của nhóm {a,a} cũng là a.
- Ký hiệu thuộc tính của nhóm A là ATT. - Hàm tính độ tương tự: f(A,B) = { - Ngưỡng T=0. Tập các nhóm ban đầu là: C={(a),(b),(c), (c),(b),(a),(d)}, số nhóm m=7.
Tiến hành quá trình phân cụm. Gọi i là thứ tự duyệt của vòng lặp V1, j là thứ tự duyệt của vòng lặp V2. V11: V212 C={(a),(b),(c), (c),(b),(a),(d)} m=7 V213 C={(a),(b),(c), (c),(b),(a),(d)} m=7 V214 C={(a),(b),(c), (c),(b),(a),(d)} m=7 V215 C={(a),(b),(c), (c),(b),(a),(d)} m=7 V216 C={(a,a),(b),(c), (c),(b),(d)} m=6 V216 C={(a,a),(b),(c), (c),(b),(d)} m=6 V12: V223 C={(a,a),(b),(c), (c),(b),(d)} m=6 V224 C={(a,a),(b),(c), (c),(b),(d)} m=6 V225 C={(a,a),(b,b),(c), (c),(d)} m=5 V225 C={(a,a),(b,b),(c), (c),(d)} m=5
V13: V234 C={(a,a),(b,b),(c,c),(d)} m=4
V234 C={(a,a),(b,b),(c,c),(d)} m=4
V14: Không duyệt C={(a,a),(b,b),(c,c),(d)} m=4
Kết thúc quá trình phân cụm.
Kết quả của quá trình phân cụm là: tập các phần tử ban đầu đã được phân thành 4 nhóm, trong đó các phần tử thuộc cùng một nhóm là giống nhau:
C={(a,a),(b,b),(c,c),(d)}
Tiến hành kiểm thử quá trình phân cụm trên 02 lớp máy đích thu được sau quá trình phân lớp ở mục IV.2.2 cho kết quả như sau:
Hình 3.3(a): Kết quả phân cụm trên tập dữ liệu kiểm thử
Hình 3.3(b): Kết quả phân cụm trên tập dữ liệu kiểm thử
Thực hiện kiểm thử quá trình phân cụm với các tập dữ liệu khác nhau đều cho kết quả chính xác.
Tuy nhiên, đối với bài toán này, mục tiêu của phân cụm là để xác định số lượng phần tử trong cụm, tức là số lượng kết nối từ cùng một máy trạm, chứ
không cần thiết phải liệt kê danh sách phần tử, do đó có thể tối ưu thuật toán bằng cách:
- Bỏ qua bước sắp xếp lại vị trí các phần tử khi có sự gộp nhóm. - Sử dụng câu lệnh truy vấn trong cơ sở dữ liệu quan hệ để xác định
các nhóm và số lượng phần tử của từng nhóm. Đây là lợi thế khi sử dụng cơ sở dữ liệu quan hệ để lưu trữ các phần tử thay vì lưu trữ vào mảng hoặc các file text. Thời gian thực thi bằng câu lệnh truy vấn trên cơ sở dữ liệu nhanh hơn so với việc duyệt và sắp xếp thứ tự các phần tử của mảng hay của file text, đồng thời việc triển khai thuật toán cũng đơn giản hơn.
CHƯƠNG 4: THỰC NGHIỆM