CHƯƠNG 2. ỨNG DỤNG MẠNG PHỨC HỢP ĐỂ KHAI PHÁ DỮ LIỆU
2.3. Ứng dụng mô hình để khai phá dữ liệu khám nghiệm ung thƣ
2.3.2. Khai phá dữ liệu bằng mạng phức hợp
2.3.2.1. Xây dựng mạng phức hợp của dữ liệu
Để có thể xây dựng mạng phức hợp cho bộ dữ liệu này chúng ta cần phải thực hiện những bước cơ bản sau: Tính toán mức độ tương tự giữa các thuộc tính và tính toán mức độ tương tự giữa các cặp bản ghi.
Tính toán mức độ tương tự giữa các thuộc tính
Các thuật toán duyệt đồ thị đƣợc sử dụng để thăm tất cả các đỉnh. Các đỉnh có thể đƣợc thăm theo một thứ tự tùy ý, hoặc một thứ tự cụ thể có thể đƣợc
yêu cầu. Ví dụ, chúng ta có thể quan tâm đến việc xem xét các gene trong mạng điều hòa gene theo thứ tự tuân theo các bước điều hòa. Có nhiều khả năng khác nhau để đi qua các đỉnh của đồ thị, nhƣng khả năng quan trọng nhất là tìm kiếm đầu tiên theo chiều sâu (depth first search -DFS) và tìm kiếm đầu tiên theo chiều rộng (breadth first search -BFS).
Dữ liệu trường địa chỉ là một kiểu dữ liệu văn bản chỉ địa danh của các
vùng miền trên một bản đồ địa lý cụ thể. Để làm được điều này, trước hết cần sắp xếp tên các địa danh theo thứ tự alphabet, căn cứ vào ký tự đầu của địa danh
để gán ID lần lƣợt từ 1..n, n là số lƣợng địa danh. Sau đó, dựa trên bản đồ địa lý, lập bảng danh sách liền kề các tỉnh với nhau theo quy luật các tỉnh liền kề với nhau đƣợc nối với nhau, tỉnh này nối với tỉnh kia một lần duy nhất, không nối theo chiều ngƣợc lại. Ví dụ, liền kề với Hà Nội là các tỉnh Phú Thọ, Vĩnh Phúc, Thái Nguyên, Bắc Giang, Bắc Ninh, Hƣng Yên, Hà Nam, Hòa Bình. Từ dữ liệu,
sử dụng công cụ Cytoscape để mô hình hóa mạng lưới kết nối các tỉnh thành Việt Nam nhƣ Hình 2.11.
65
Hình 2.11. Mô hình mạng ƣới liên kết tỉnh thành Việt Nam
Hình 2.11 mô tả một đồ thị có 63 nút và 128 cạnh, trong đó mỗi nút đại diện cho một tỉnh/thành có ID đƣợc đánh số, mỗi cạnh biểu diễn hai tỉnh kề nhau.
Bước tiếp theo, luận án ứng dụng thuật toán Breadth-First-Search (BFS)
để duyệt một đồ thị gồm n đỉnh (tỉnh) theo chiều rộng, từ đó tính toán và đƣa ra
66
giá trị khoảng cách giữa các cặp tỉnh. Một ma trận đối xứng BFSnxn đƣợc tạo ra, trong đó BFS[i, j] biểu thị khoảng cách giữa tỉnh “i” và tỉnh “j” nhƣ Hình 2.11.
Cụ thể, ma trận khoảng cách BFS63x63 biểu diễn khoảng cách giữa các tỉnh/thành của Việt Nam đƣợc xây dựng bằng việc duyệt đồ thị theo chiều rộng để xác định
độ dài giữa các cặp đỉnh, cụ thể thuật toán đƣợc mô tả nhƣ sau:
1 function [BFS] ComputeBFS(G(V,E) // G là đồ thị với V là tập đỉnh
đƣợc đánh số, E là tập cạnh
2 Initialize BFSnxn to store distance values of province pairs
3 for (start1; start<|V|; start++;)
4 checkedList new Boolean(); // khởi tạo mảng để đánh
dấu các tỉnh đã duyệt
5 Set all nodes to “not visited”
6 queue new LinkedList() ; // tạo hàng đợi chứa các tỉnh
chờ duyệt
7 linkList new LinkedList();
8 checkedList[start] true; // đánh dấu nút start đã đƣợc
duyệt
9 pair new Pair(start ,1); //đối tƣợng biểu diễn cặp
(vertex, value)
10 queue. enqueue(pair); // thêm pair vào hàng đợi
11 while queue is not empty do
12 pair queue. dequeue(); // lấy dữ liệu trong hàng đợi
13 BFS [start, pair.vertex] pair.value; //lưu khoảng cách
tỉnh đang xét và tỉnh tương ứng
14 i linkList[pair.vertex];
15 while every edge (i,x) E do
16 if (x chưa được duyệt ) then
17 checkedList[x] true; // duyệt đỉnh x
18 p new Pair(x, pair.value + 1);
67
19 queue. enqueue(p); // thêm p vào hàng đợi
20 end if
21 end while
22 end while
23 end for
24 return BFS; // BFS là ma trận biểu diễn giá trị khoảng cách giữa các cặp tỉnh
25 End
Thuật toán 2.2. Duyệt đồ thị theo chiều rộng
Sau khi xây dựng ma trận khoảng cách tỉnh thành cần tiến hành mã hóa cặp thuộc tính bản ghi kiểu dữ liệu văn bản.
Trường Kết luận chứa các đoạn văn bản mô tả kết luận của bác sĩ về tình trạng bệnh của bệnh nhân. Sử dụng thuật toán BoW(Bag-of-Words) để số hóa
một cặp xâu ký tự s1, s2 (kiểu Text như trường Kết luận) dựa trên độ tương tự ngữ nghĩa của chúng. Bag of Words là một thuật toán hỗ trợ xử lý ngôn ngữ tự nhiên và mục đích của BoW là phân loại văn bản. Ý tưởng của BoW là phân tích
và nhóm theo “Bag of Words” (ngữ liệu). Với dữ liệu thử nghiệm mới, thuật toán tiến hành tìm xem có bao nhiêu lần xuất hiện của mỗi từ của dữ liệu thử nghiệm xuất hiện trong “túi”. Thuật toán đƣợc mô tả nhƣ sau:
1 function [vector_A, vector_B] BoW(s1, s2)
// Input: s1, s2, trong đó s1, s2 là các câu.
// Output: vector_A, vector_B là hai vector biểu diễn cho s1 và s2
2 Begin
3 A = getWords(s1);
4 B = getWords(s2);
5 C = union(A, B);//Tạo từ điển
6 vector_A = frequent(C, A);
68
7 vector_B = frequent(C, B);
8 return vector_A, vector_B;
9 End
Thuật toán 2.3. Thuật toán Bag-of-Words
Ví dụ: Cho hai xâu s1 = “Ung thƣ vảy xâm lấn độ II”, s2 = “Ung thƣ vảy xâm lấn”, BoW(s1, s2) trả về 2 giá trị: vector_s1 =[1,1,1,1,1,1,1], vector_s2
=[1,1,1,1,1,0,0].
Tính toán mức độ tương tự cặp bản ghi
Xây dựng mạng với nhiều kiểu dữ liệu có thể đƣợc mô hình hóa bằng cách sử dụng đồ thị. Quá trình này đƣợc gọi là phân tích liên kết. Các bản ghi dữ liệu đƣợc biểu diễn bằng các đỉnh và một cạnh tồn tại nếu hai bản ghi dữ liệu giống nhau hoặc liên quan theo một tiêu chí nào đó. Điều quan trọng cần lưu ý
là tiêu chí tương tự được sử dụng để xây dựng mô hình mạng của tập dữ liệu dựa trên quan hệ từng cặp, trong khi tiêu chí tương tự được sử dụng để xác định một cụm đề cập đến tất cả các phần tử trong cụm và cần đƣợc thỏa mãn bởi một cụm tổng thể chứ không chỉ các cặp phần tử của nó. Tiêu chí tương tự có thể
đƣợc xác định theo nhiều cách khác nhau, tùy thuộc vào các ứng dụng quan tâm
và mục tiêu mà phân nhóm hướng tới để đạt được. Trên thực tế, định nghĩa về
sự tương tự được sử dụng để suy luận mạng được xác định bởi bản chất của dữ liệu và dựa trên sự gắn kết mà chúng ta mong đợi trong các cụm kết quả. Cách tiếp cận suy luận mạng có thể đƣợc sử dụng để thực hiện phân nhóm dựa trên
khoảng cách. Trong phân nhóm dựa trên khoảng cách, các đỉnh của biểu đồ tương ứng với các bản ghi dữ liệu và các cạnh được thêm vào nếu các bản ghi
đủ gần dựa trên một giá trị số giới hạn (ngƣỡng). Ngoài ra, khoảng cách có thể đƣợc sử dụng để xác định các cạnh của một mạng hoàn chỉnh đại diện cho tập
dữ liệu.
Trong phần này, luận án đề xuất một thuật toán mới đƣợc thiết kế để tính toán mức độ tương tự giữa các cặp bản ghi của một quan hệ R. Thuật toán sử
69
dụng phép đo Euclide để tính toán khoảng cách giữa các cặp vector sau khi đã đƣợc mã hóa từ các cặp bản ghi dữ liệu. Euclide là phép đo phổ biến đƣợc lựa chọn trong các nghiên cứu về phân cụm. Thuật toán đƣợc mô tả nhƣ sau:
Đầu vào: Cho quan hệ R(A1, A2,…, An), trong đó dữ liệu của các trường
Ai (i = 1..n) đƣợc quy định thuộc một trong các kiểu dữ liệu sau: Nhãn, Địa chỉ, Văn bản, và kiểu số; cho hai bản ghi a,b ϵ R.
Đầu ra: Độ tương tự của một cặp bản ghi a, b
Bước 1. Mã hóa cặp bản ghi a, b về dạng vector x, y theo quy luật sau:
⃗ ⃗
- Nếu a.dongho ≡ b.dongho thì
1, . , . , 1, . . ,
( . , . )
1, . , . , BFS[ . , . ], .XY.z, BoW( . , . )
a tuoi a giotinh a XY z
x BoW a ketluan b ketluan
b tuoi b gioitinh a diachi b diachi
y b a ketluan b ketluan
- Ngƣợc lại, Nếu a.dongho≠b.dongho thì
1, . , . , 1, . . ,
( . , . )
0, . , . , BFS[ . , . ],
.XY.z, BoW( . , . )
a tuoi a giotinh a XY z
x BoW a ketluan b ketluan
b tuoi b gioitinh a diachi b diachi
y b a ketluan b ketluan
Bước 2. Sử dụng phép đo Euclide để xác định khoảng cách giữa các
cặp vector trong không gian n chiều, khoảng cách giữa hai điểm/đối tƣợng bất
kỳ trong không gian tương ứng với độ dài của đoạn thẳng nối hai điểm đó và đƣợc xác định bằng công thức Euclide:
1 1 2 2 22 2
( , ) ... n n
d x y y x y x y x
ở đây n là số chiều, yi và xi lần lƣợt là giá trị các thành phần của vector y và x. Nếu d(x,y) lớn, khoảng cách giữa hai điểm càng xa nhau, ngƣợc lại, hai điểm càng gần nếu d(x,y) tiến về 0, có nghĩa là hai bản ghi có nội dung giống nhau
70
100% nếu d(x,y)=0.
Bước 3. Chuẩn hóa giá trị đo mức độ tương tự các cặp vector về khoảng
[0; 1] theo công thức sau:
1
1 d
ở đây, α tiến dần về 0 biểu thị mức độ tương tự giảm trong khi α tiến về gần 1 biểu thị mức độ tương tự tăng, α =1 có nghĩa là hai vector đồng dạng 100%.
Thuật toán 2.4. Tính toán mức độ tương tự giữa các bản ghi
Ví dụ: Xét cặp bản ghi ID_a=121029319 và ID_b=1248 với
ID_a ={nguyen, 39, 2, 24, 77.9, Ung thư vảy xâm lấn độ II };
ID_b ={nguyen, 38, 1, 24, 77.9, Ung thư vảy xâm lấn }.
Khi đó kết quả đầu ra của thuật toán là α (ID_a; ID_b) = 0.33333.
Thuật toán tính toán mức độ tương đồng giữa cặp bản ghi đề xuất, được
sử dụng để xây dựng mạng từ một quan hệ.
Xây dựng mạng từ các cặp bản ghi
Để xây dựng mạng dữ liệu cho mục tiêu xác định module, luận án đã sử dụng thuật toán xác định các cặp bản ghi có độ tương tự nhỏ hơn ngưỡng α để tạo ra một cặp cạnh nối giữa 2 bản ghi, cụ thể nhƣ sau:
1 function [G(Start, End)] NetworkConstruction(R (A1, A2,…, An), α ϵ [0,1])
//Input: + R (A1, A2,…, An) là một tập liên kết;
// + α là ngưỡng được chọn cho mỗi cặp bản ghi theo mức độ tương đồng giữa chúng
//Output: danh sách kề biểu diện mạng
71
2 G ϵ new Relation(Start, End)
3 foreach a in R
4 foreach b in R
5 t = Similarity(a,b)
6 if(t≥α)
7 G= G + (a, b)
8 end for
9 end for
10 return G
11 End
Thuật toán 2.5. ựng mạng phức hợp