Tải bản đầy đủ (.docx) (59 trang)

Luận văn Cao học CÔNG NGHỆ THÔNG TIN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (413.32 KB, 59 trang )

1

LỜI NÓI ĐẦU
Trong những năm gần đây, sự phát triển mạnh mẽ của công nghệ thông
tin đã làm cho khả năng thu thập và lưu trữ thông tin tăng nhanh. Bên cạnh
đó, việc tin học hóa một cách ồ ạt và nhanh chóng các hoạt động sản xuất,
kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta
một lượng dữ liệu lưu trữ khổng lồ. Thông thường các thông tin biểu đạt bằng
ngôn ngữ bao giờ cũng dễ dàng nhận biết được nhanh hơn so với nhiều loại
dữ liệu khác. Trong thực tế, dữ liệu thu thập được chủ yếu là dữ liệu số. Các
dữ liệu này hàm chứa một lượng thông tin hữu ích, tuy nhiên để hiểu các
thông tin đó ở dạng nguyên bản là điều không dễ dàng. Vì vậy, nhu cầu xử lí
dữ liệu để thu được tri thức phục vụ cuộc sống là rất quan trọng và được
nhiều nhà nghiên cứu quan tâm [3, 8, 9, 10]. Làm thế nào để chắt lọc được
thông tin một cách tự động, nhanh chóng? Điều này đòi hỏi chúng ta phải có
thuật toán xử lí và tận dụng sức mạnh tính toán của máy tính.
Trong các nghiên cứu trước đây về tính toán trên các từ [5], ngữ nghĩa của
các từ được biểu diễn bằng tập mờ. Tuy nhiên, việc dựa trên lí thuyết tập mờ
có nhiều hạn chế do cách thức xây dựng các hàm thuộc và việc xấp xỉ các giá
trị ngôn ngữ bởi các tập mờ còn mang tính chủ quan, phụ thuộc nhiều vào ý
kiến chuyên gia cho nên dễ mất thông tin. Mặt khác, bản thân các giá trị ngôn
ngữ đã hàm chứa một cấu trúc thứ tự nhưng khi ánh xạ gán nghĩa sang tập mờ
thì không còn bảo toàn cấu trúc đó nữa. Lý thuyết Đại số gia tử (ĐSGT) do
Nguyễn Cát Hồ và W.Wechler đề xuất năm 1990 [7] đã khắc phục được
những hạn chế trên. Trong đó mọi hạng từ là giá trị của một biến ngôn ngữ
đều được sinh ra từ hai hạng từ nguyên thủy bằng cách tác động các gia tử.
Ngữ nghĩa của các hạng từ được xác định trong quan hệ thứ tự với các hạng
từ khác. Điều này rất phù hợp với cách sử dụng ngôn ngữ của con người.


2



Chẳng hạn, khi chúng ta xét thuộc tính thu nhập với hai từ nguyên thủy là cao
và thấp, các gia tử là tương_đối và rất thì tập các từ được sinh ra với thứ tự
ngữ nghĩa một cách tự nhiên như sau: rất thấp ≤ thấp ≤ tương_đối thấp ≤
tương_đối cao ≤ cao ≤ rất cao.
Với những ưu điểm đó, chúng tôi chọn cách tiếp ĐSGT gia tử để rút ra
các câu tóm tắt dạng ngôn ngữ từ cơ sở dữ liệu (CSDL) số. Cụ thể là mỗi
miền trị của một thuộc tính trong CSDL sẽ tương ứng với một ĐSGT. Dựa
vào các hàm đo trong các đại số này, kết hợp với thuật toán khai phá dữ liệu
Apriori chúng tôi triển khai việc rút trích tóm tắt, sau đó kết xuất dạng
ngôn ngữ.
Mục đích của luận văn là dựa trên cơ sở của ĐSGT, mối quan hệ giữa
luật kết hợp và tóm tắt dữ liệu để xây dựng giải thuật rút tự động các câu tóm
tắt ngôn ngữ giải quyết bài toán tóm tắt dữ liệu tổng quát.
Luận văn có ba chương:
Chương 1. Các kiến thức cơ sở
Trong chương này, trước tiên tôi sẽ đi trình bày một số vấn đề của
ĐSGT: các khái niệm cơ bản, ánh xạ định lượng ngữ nghĩa, độ đo mờ, khoảng
tính mờ và khoảng tương tự. Tiếp theo là một số kiến thức tổng quan về khai
phá dữ liệu, luật kết hợp trong CSDL và ứng dụng. Cuối cùng là thuật toán
Apriori để khai phá luật kết hợp.
Chương 2. Xây dựng thuật toán sinh tóm tắt ngôn ngữ từ dữ liệu số
Nội dung được trình bày trong chương là một số dạng tóm tắt dữ liệu
theo Yager và bài toán tóm tắt dữ liệu tổng quát. Sự liên quan giữa luật kết
hợp với tóm tắt dữ liệu. Trọng tâm của chương là xây dựng thuật toán sinh
tóm tắt ngôn ngữ dựa trên ĐSGT. Thuật toán được minh họa bằng việc tính
toán các bước trên một bộ dữ liệu cụ thể.
Chương 3. Cài đặt và thử nghiệm



3

Trong chương này sẽ giới thiệu CSDL Vertebral Column về bệnh cột
sống để xây dựng ứng dụng và từng bước phân tích bài toán đặt ra. Chương
trình được cài đặt bằng ngôn ngữ lập trình C trong môi trường Microsoft
Visual C++. Cuối chương là phần trình bày giao diện của chương trình và kết
quả thực nghiệm.


4

CHƯƠNG 1. CÁC KIẾN THỨC CƠ SỞ
Vấn đề sử dụng tập mờ để biểu diễn các giá trị ngôn ngữ đã đáp ứng
được nhu cầu thực tế của con người. Tuy nhiên, theo cách sử dụng tập mờ ta
thấy có nhiều nhược điểm gây nên việc dễ mất mát thông tin. Do đó, vấn đề
đặt ra là có một cấu trúc toán học mô phỏng chính xác hơn cấu trúc ngữ nghĩa
của một khái niệm mờ. Nguyễn Cát Hồ và W.Wechler đã đưa ra cấu trúc
ĐSGT vào năm 1990 [7]. Đây là một cấu trúc đại số cho miền giá trị của các
hạng từ mà ngữ nghĩa được xác định dựa trên thứ tự của nó trong miền hạng
từ. Ưu điểm nổi bật của ĐSGT là các tính toán, ánh xạ luôn luôn bảo toàn
quan hệ thứ tự ngữ nghĩa.
Dữ liệu con người thu thập được ở nhiều dạng và nó chứa những thông
tin có giá trị nhất định nào đó. Trong môi trường hiện nay, người ta ngày càng
cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc đưa ra quyết định dựa
trên một khối lượng dữ liệu khổng lồ đã có. Từ đó đã làm phát triển một kỹ
thuật mới đó là kỹ thuật phát hiện tri thức và khai phá dữ liệu. Và một trong
những hướng tiếp cận hiệu quả để khai phá dữ liệu là sử dụng luật kết hợp.
Trong chương này, tôi sẽ đi trình bày một số khái niệm cơ bản trong
ĐSGT, tổng quan về khai phá dữ liệu và thuật toán Apriori khai phá luật
kết hợp.

1.1. Đại số gia tử
1.1.1. Các khái niệm

cơ bản

Chúng ta xét miền ngôn ngữ của biến chân lý TRUTH gồm các từ sau:
Dom(TRUTH) = {true, false, very true, very false, more-or-less true, moreor-less

false,

possibly

true,

possibly

false,

approximately

true,

approximately false, little true, little false, very possibly true, very possibly


5

false,...}, trong đó true, false là các từ nguyên thủy, các từ nhấn very, moreor-less, possibly, approximately, little gọi là các gia tử.
Cho X là một biến ngôn ngữ và Dom(X) là tập chứa tất cả các hạng từ
trong tập giá trị của biến X. Tập X = Dom(X) có thể được coi như là một

cấu trúc đại số AX = (X, G, C, H, ≤ ). Trong đó:
-

(X, ≤ ) là cấu trúc dựa trên thứ tự, ≤ là quan hệ thứ tự ngữ nghĩa vốn

-

có giữa các hạng từ của biến X.
G = {c–, c+} là tập các phần tử sinh, c+ là hạng từ nguyên thủy dương,
c– là hạng từ nguyên thủy âm. Ta có c– ≤ c+. Ví dụ: chậm ≤ nhanh,

-

ít ≤ nhiều.
C = {0, W, 1} tập các hằng thỏa mãn 0 ≤ c– ≤ W ≤ c+ ≤ 1, hai phần tử
0 và 1 là hạng từ nhỏ nhất, lớn nhất trong cấu trúc (X, ≤ ), W là phần tử
trung bình. Ví dụ: 0 có nghĩa là cực kì chậm, W có nghĩa là trung bình,

-

1 có nghĩa là cực kì nhanh.
H = H– ∪ H+ là tập các gia tử của biến X. Các phần tử trong H+ là các
gia tử dương vì nó làm tăng ngữ nghĩa của các hạng từ. Các gia tử
trong tập H– là các gia tử âm vì nó làm giảm ngữ nghĩa của các
hạng từ.

Các gia tử trong tập H– và H+ cũng có thứ tự ngữ nghĩa. H– = {h-q, h-q+1, ...,
h-1} với thứ tự ngữ nghĩa h-q ≥ h-q+1 ≥ ... ≥ h-1 và H+ = {h1, h2, ..., hp} với
thứ tự ngữ nghĩa h1 ≤ h2 ≤ ... ≤ hp.
Giả sử rằng X\C = H(G), với H(G) là tập các hạng từ sinh ra từ các

phần tử sinh trong G sử dụng các gia tử trong H. Tương tự H(x) gồm các
hạng từ sinh ra từ x sử dụng các gia tử trong H.
Dạng biểu diễn chính tắc của mỗi hạng từ x ∈ Dom(X) là hm…h1c, độ
dài của hạng từ là |x| = m + 1. Kí hiệu Xk là tập các hạng từ độ dài k, X(k) là
tập các hạng từ có độ dài không quá k.
Về mối quan hệ giữa các gia tử [7] chúng ta có các khái niệm sau:


6

(1) Mỗi gia tử hoặc là dương, hoặc là âm đối với bất kì một gia tử nào
khác, kể cả chính nó.
(2) Nếu hai khái niệm u và v độc lập, nghĩa là u ∉ H(v) và v ∉ H(u) thì ∀x
∈ H(u) ta có x ∉ H(v). Ngoài ra nếu u và v là không sánh được thì bất kỳ x
∈ H(u) cũng không sánh được với bất kì y ∈ H(u).
(3) Nếu x ≠ hx thì x ∉ H(hx) và nếu h ≠ k và hx ≤ kx thì h’hx ≤ k’kx với
mọi gia tử h, k, h’, k’. Hơn nữa hx ≠ kx thì hx độc lập với kx.
(4) Nếu u ∉ H(v) và u ≤ v (u ≥ v) thì u ≤ hv (u ≥ hv), đối với mọi gia tử h.
Định nghĩa trên mới chỉ dựa vào các tính chất ngữ nghĩa và di truyền
ngữ nghĩa của ngôn ngữ nhưng đã tạo ra cấu trúc đủ giàu để xây dựng các
quan hệ đối sánh trong mô hình CSDL mờ.
Định nghĩa 1.1. Với mỗi x ∈ X, độ dài của x được kí hiệu |x| và xác định
như sau:
(1) Nếu x = c+ hoặc x = c– thì |x| = 1.
(2) Nếu x = hx thì |x| = 1 + |x|, với mọi h ∈ H.
1.1.2.

Ánh xạ định lượng ngữ nghĩa
Định lượng trong ĐSGT là quá trình ánh xạ từ miền hạng từ vào miền


tham chiếu tương ứng của biến ngôn ngữ. Tuy nhiên trong phương pháp đại
số đối với ngữ nghĩa của các hạng từ mờ, các ánh xạ định lượng sẽ được
định nghĩa một cách hệ thống, lợi dụng khái niệm mờ của các hạng từ.
Chúng ta xem xét một ĐSGT tự do AX = (X, G, C, H, ≤ ), tức là mọi
gia tử h tác động lên một hạng từ x ∈ H(G) luôn luôn tạo ra một ngữ nghĩa
mới (tức là hx ≠ x). Từ đây, ta có dạng biểu diễn chính tắc cho mỗi hạng từ
là duy nhất.


7

Một ánh xạ xác định ngữ nghĩa định lượng của các hạng từ trong miền
hạng từ X của một biến ngôn ngữ X là υ : X  [0, 1], thỏa mãn hai
điều kiện:
-

υ là ánh xạ 1-1 và trù mật trong đoạn [0, 1], với [0, 1] là miền

-

tham chiếu thông thường của X.
υ duy trì thứ tự trong X.

Ánh xạ υ được gọi là ánh xạ định lượng ngữ nghĩa (semantically
quantifying mapping – SQM). Giá trị υ(x) thể hiện ngữ nghĩa định lượng
bằng số của hạng từ x. Ánh xạ này phụ thuộc mạnh mẽ vào ngữ nghĩa của
các hạng từ mờ.
1.1.3.

Độ đo tính mờ

Độ đo tính mờ của x, ký hiệu là fm(x), là đường kính của tập H(x), với

H(x) là tập các phần tử của X được sinh ra từ x bởi các gia tử.
Định nghĩa 1.2. [6] Hàm fm: X → [0,1] được gọi là hàm độ đo tính mờ trên
X nếu thỏa mãn các điều kiện sau:
(fm1) fm là độ đo tính mờ đầy đủ trên X, tức là

∑ fm(h u) = fm (u )

− q ≤ i ≤ p ,i ≠ 0

i

với

mọi u ∈ X.
(fm2) Nếu x là khái niệm rõ, tức là H(x) = {x} thì fm(x) = 0. Đặc biệt,
fm(0) = fm(W) = fm(1) = 0.
fm(hx) fm(hy )
=
fm
(
x
)
fm( y ) , nghĩa là tỉ lệ
(fm3) Với mọi x, y ∈ X và h ∈ H ta có
này không phụ thuộc vào x,y và được gọi là độ đo tính mờ của gia tử h, kí
hiệu là µ(h).
Định nghĩa 1.3. [6] Hàm dấu Sgn : X → {−1, 0, 1} là một ánh xạ được
định nghĩa một cách đệ quy như sau, với ∀ h, h’∈ H, c ∈ {c–, c+}



8

1) Sgn(c−) = −1, Sgn(c+) = +1;
2) Sgn(h'hx) = −Sgn(hx) nếu h' âm đối với h và h'hx ≠ hx;
3) Sgn(h'hx) = Sgn(hx) nếu h' dương đối với h và h'hx ≠ hx;
4) Sgn(h'hx) = 0 nếu h'hx = hx.
Mệnh đề 1.1. [5] Với ∀x ∈ X, ta có: ∀h ∈ H, nếu Sgn(hx) = +1 thì hx > x,
nếu Sgn(hx) = -1 thì hx < x và nếu Sgn(hx) = 0 thì hx = x.
Các tính chất của độ đo tính mờ trong ĐSGT:
Dựa trên cấu trúc của ĐSGT, trong đó quan hệ giữa các phần tử là
quan hệ thứ tự ngữ nghĩa, mô hình toán học của tính mờ và độ đo tính mờ
của các khái niệm mờ đã được định nghĩa trong các công trình của Nguyễn
Cát Hồ và cộng sự, ở đây tôi chỉ trình bày một số mệnh đề và bổ đề liên
quan đến hàm fm và hàm υ.
Mệnh đề 1.2. [6]
(1) fm(hx) = µ(h) fm(x), với ∀x ∈ X
(2) fm(c−) + fm(c+) = 1
(3)
(4)

∑ fm(h c) = fm(c)
i

− q ≤ i ≤ p ,i ≠ 0

∑ fm(h x) = fm ( x)

− q ≤ i ≤ p ,i ≠ 0


i

−1

(5)

∑ µ (h ) = α

i=− q

i

, trong đó c ∈ {c–, c+}

, với ∀x ∈ X

p



∑ µ (h ) = β
i =1

i

, với α, β > 0 và α + β = 1

Định nghĩa 1.4. [6] Cho fm là hàm độ đo tính mờ trên X và ĐSGT tuyến
tính đầy đủ AX = (X, G, C, H, ≤ ) . Hàm định lượng ngữ nghĩa υ trong AX

kết hợp với fm được định nghĩa đệ quy như sau:
(1) υ(W) = θ = fm(c−), υ(c−) = θ − αfm(c−) = βfm(c−), υ(c+) = θ
+αfm(c+), 0 < θ < 1;


9

 j

f (h j x) = f ( x) + Sgn(h j x) ∑ fm (hi x) − ω ( h j x ) fm ( h j x ) 
 i =1

(2) Nếu 1≤ j ≤ p thì
 −1

f (h j x) = f ( x) + Sgn(h j x) ∑ fm (hi x) − ω ( h j x ) fm ( h j x ) 
 i= j

Nếu -q ≤ j ≤ -1 thì

trong đó

ω (h j x) =

[

]

1
1 + Sgn(h j x) Sgn( hq h j x )( β − α ) ∈ {α , β }.

2

Khoảng tính mờ

1.1.4.

Khoảng tính mờ của hạng từ x, kí hiệu ℑ(x). Ánh xạ ℑ được xây dựng
bằng cách gán mỗi phần tử x ∈ X với một đoạn con của đoạn [0,1], đoạn
con này có độ dài bằng độ đo tính mờ của phần tử x.
Giả sử AX = (X, G, C, H, ≤ ) là ĐSGT tuyến tính đầy đủ và hàm độ đo
tính mờ fm: X → [0,1]. Ta gọi Intv([0,1]) là họ tất cả các đoạn con của đoạn
[0,1]. Việc gán ngữ nghĩa mờ được xác định như sau: ℑ : X → Intv([0,1])
thỏa:
(1)

Với x ∈ {c−, c+} thì ℑ(c−), ℑ(c+) là các đoạn con của đoạn [0,1] có |

ℑ(c−)| = fm(c−), |ℑ(c+)| = fm(c+) và ℑ(c−) ≤ ℑ(c+).
(2)

Nếu x ∈ X và x có độ dài n, ký hiệu |x| = n, khi đó |ℑ(x)| = fm(x) và
nếu x < y thì ℑ(x) ≤ ℑ(y). Hơn nữa nếu h−qx < … < h−1x < h1x < h2x
<…< hpx thì ℑ(x) được chia thành (p + q) đoạn con của đoạn [0,1], |

ℑ(hix)| = fm(hix), i∈ [− q^p] và ℑ(hix) ≤ ℑ(hjx), nếu hix < hjx với
i, j ∈ [− q^p].
Họ {ℑ(x) : x ∈ X } được gọi là một tựa phân hoạch (semi-partition)
của đoạn [0,1] nếu với x,y ∈ X, x ≠ y thì đoạn con ℑ(x) và ℑ(y) có chung



10

với nhau nhiều nhất một điểm và 

x∈ X

ℑ(x) = [0,1]. Để thuận tiện về sau,

chúng ta ký hiệu Xk = {x ∈ X : |x| = k}.
Bổ đề 1.1. [6] Cho fm là hàm độ đo tính mờ trên AX và ℑ được gán ngữ
nghĩa mờ theo fm. Khi đó:
{ℑ(c−), ℑ(c+)} là một tựa phân hoạch của đoạn [0,1] và với mọi x ∈ X,

i)

họ {ℑ(hix) : i ∈ [−q^p]} là một tựa phân hoạch của ℑ(x).
Họ {ℑ(x) : x ∈ Xn} là một tựa phân hoạch của đoạn [0,1] và nếu x < y và

ii)

|x| = |y| = n thì ℑ(x) < ℑ(y).
Với y =σx, σ là chuỗi gia tử bất kỳ thì ℑ(y) ⊂ ℑ(x). Nếu x, y ∈ X, x < y,

iii)

H(x) ∩ H(y) = Ø thì ℑ(x) ≤ ℑ(y).
Tính chất của khoảng tính mờ:
-

Các giá trị trong ℑ(x) được coi là tương tự với nhau và tương thích với


-

ngữ nghĩa định lượng của x ở mức độ |x|.
Tập {ℑ(hjx), j=-q^p} là một phân hoạch của ℑ(x). Do đó, tập ℑk =
{ℑ(x): x ∈ Xk} là một phân hoạch của [0,1] và, với k ≥ 2 sẽ mịn hơn

ℑk’ = {ℑ(x): x ∈ Xk’}, với k’ < k.
1.1.5. Khoảng tương tự
Định nghĩa 1.5. [5] Cho fm là hàm độ đo mờ trên X và k > 0, một tập hữu
hạn các hạng từ X(k) = {x ∈ X: |x| ≤ k}. Khoảng tương tự mức k, chứa x, với
x ∈ X(k) kí hiệu Sm(x) là tập các khoảng {ℑ(x) : x ∈ X(k)} của miền tham
chiếu [0,1] thỏa mãn các điều kiện sau:
-

(S1) Chúng tạo thành một phân hoạch của [0,1].
(S2) Các giá trị trong Sm(x) được coi là tương tự với υ(x) trong đó υ là
ánh xạ định lượng ngữ nghĩa được xác định bởi fm. Nói cách khác,
chúng tương tự với ngữ nghĩa của x ở mức độ k.


11

Các khoảng tương tự mức k được xây dựng bằng cách phân hoạch tập
các khoảng mờ {ℑ(x) : x ∈ Xk’} thỏa mãn các điều kiện sau:
1) Các khoảng tương tự rời nhau và mỗi khoảng tương tự là hợp của
các khoảng mờ kề nhau.
2) Mỗi khoảng tương tự là hợp của ít nhất 2 khoảng mờ mức k’, mà
điểm đầu mút của chúng là giá trị υ(x). Ngoại trừ hai khoảng tương tự
Sm(0), Sm(1) chỉ chứa ít nhất một khoảng mờ, một điểm đầu mút của

nó là 0 hoặc 1.
Nếu |H–| ≥ 2 và |H+| ≥ 2 thì các khoảng tương tự mức k sẽ được xây
dựng từ các khoảng mờ mức k’ ≥ k + 1. Trong các trường hợp khác, khoảng
tương tự mức k được xây dựng từ khoảng mờ mức k’ ≥ k + 2.
1.2.

Khai phá dữ liệu
Dữ liệu số nhìn vào tưởng như không mang ý nghĩa gì nhưng nó ẩn chứa

nhiều thông tin hữu ích cần thiết cho công tác quản lí và đưa ra quyết định.
Tuy nhiên, theo thống kê thì chỉ có một lượng nhỏ của những dữ liệu này
(khoảng từ 5% đến 10%) là luôn được phân tích, số còn lại họ không biết sẽ
phải làm gì hoặc có thể làm gì với chúng nhưng họ vẫn tiếp tục thu thập rất
tốn kém với ý nghĩ lo sợ rằng sẽ có cái gì đó quan trọng đã bị bỏ qua sau này
có lúc cần đến nó. Mặt khác, trong môi trường cạnh tranh, người ta ngày càng
cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc ra quyết định và ngày
càng có nhiều câu hỏi mang tính chất định tính cần phải trả lời dựa trên một
khối lượng dữ liệu khổng lồ đã có. Từ thực tế đó đã làm phát triển một
khuynh hướng kỹ thuật mới đó là kỹ thuật phát hiện tri thức và khai phá
dữ liệu.
1.2.1. Khái niệm


12

Khai phá dữ liệu được dùng để mô tả quá trình phát hiện tri thức trong
CSDL. Quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho
việc dự báo trong kinh doanh, các hoạt động sản xuất, ... Khai phá dữ liệu
làm giảm chi phí về thời gian so với phương pháp truyền thống trước kia
(ví dụ như phương pháp thống kê).

Sau đây là một số định nghĩa mang tính mô tả của nhiều tác giả về
khai phá dữ liệu [11]:
Định nghĩa của Ferruzza: “Khai phá dữ liệu là tập hợp các phương
pháp được dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các
mối quan hệ và các mẫu chưa biết bên trong dữ liệu.”
Định nghĩa Parsaye: “Khai phá dữ liệu là quá trình trợ giúp quyết
định, trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ
trong CSDL lớn.”
Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm
thường nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có
thể hiểu được.”
1.2.2. Quá trình phát hiện tri thức trong CSDL
Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngành, nhiều
lĩnh vực: thống kê, trí tuệ nhân tạo, CSDL, thuật toán, tính toán song song
và tốc độ cao, thu thập tri thức cho các hệ chuyên gia, quan sát dữ liệu, …
Khai phá dữ liệu có nhiều ứng dụng trong thực tế, ví dụ như:
-

Bảo hiểm, tài chính và thị trường chứng khoán
Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định
Điều trị y học và chăm sóc y tế
Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lí

-

sự cố
Phân lớp và tóm tắt văn bản
Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu sinh vật học, ...



13

-

Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống
giám sát lỗi, sự cố, chất lượng dịch vụ, ...

Hình thành và
định nghĩa bài toán

Thu thập và
tiền xử lí dữ liệu

Khai phá dữ liệu
rút ra các tri thức

Phân tích và kiểm định
kết quả

Sử dụng các tri thức
phát hiện được

Hình 1.1. Quy trình phát hiện tri thức
Quy trình phát hiện tri thức thường tuân theo các bước sau:
Bước thứ nhất: Hình thành và định nghĩa bài toán. Đây là bước tìm
hiểu lĩnh vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ
cần phải hoàn thành. Bước này sẽ quyết định cho việc rút ra được các tri
thức hữu ích và cho phép chọn các phương pháp khai phá dữ liệu thích hợp
với mục đích ứng dụng và bản chất của dữ liệu.



14

Bước thứ hai: Thu thập và tiền xử lí dữ liệu. Trong bước này dữ liệu
được thu thập ở dạng thô (nguồn dữ liệu thu thập có thể là từ các kho dữ
liệu hay nguồn thông tin internet). Trong giai đoạn này dữ liệu cũng được
tiền xử lí để biến đổi dữ liệu và cải thiện chất lượng dữ liệu cho phù hợp
với phương pháp khai phá dữ liệu được lựa chọn trong bước trên. Bước này
thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri
thức. Các giải thuật tiền xử lí dữ liệu bao gồm:
-

Xử lí dữ liệu bị mất/thiếu: Các dạng dữ liệu bị thiếu sẽ được thay thế

-

bởi các giá trị thích hợp.
Khử sự trùng lắp: Các đối tượng dữ liệu trùng lắp sẽ bị loại bỏ đi. Kĩ
thuật này không được sử dụng cho các tác vụ có quan tâm đến phân

-

bố dữ liệu.
Giảm nhiễu: Nhiễu và các đối tượng tách rời khỏi phân bố chung sẽ

-

bị loại đi khỏi dữ liệu.
Chuẩn hóa: Miền giá trị của dữ liệu sẽ được chuẩn hóa.
Rời rạc hóa: Các dạng dữ liệu số sẽ được biến đổi ra các giá trị


-

rời rạc.
Rút trích và xây dựng đặc trưng mới từ các thuộc tính đã có.
Giảm chiều: Các thuộc tính chứa ít thông tin sẽ được loại bỏ bớt.
Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức. Đây là bước quan

trọng nhất trong tiến trình khám phá tri thức. Kết quả của bước này là trích
ra được các mẫu và/hoặc các mô hình ẩn dưới các dữ liệu. Giai đoạn này
bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của khai
phá dữ liệu, dùng phương pháp khai phá nào? Thông thường, các bài toán
khai phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất
chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các
suy diễn dựa trên dữ liệu hiện có. Tuỳ theo bài toán xác định được mà ta
lựa chọn các phương pháp khai phá dữ liệu cho phù hợp.
Bước thứ tư: Phân tích và kiểm định kết quả. Là hiểu các tri thức đã
tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán. Trong bước này, kết


15

quả tìm được sẽ được biến đổi sang dạng phù hợp với lĩnh vực ứng dụng và
dễ hiểu hơn cho người dùng.
Bước thứ năm: Sử dụng các tri thức phát hiện được. Là hiểu tri thức
đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán. Các bước trên có
thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình
trên tất cả các lần thực hiện. Các kết quả của quá trình phát hiện tri thức có
thể được đưa và ứng dụng trong các lĩnh vực khác nhau. Do các kết quả có
thể là các dự đoán hoặc các mô tả nên chúng có thể được đưa vào các hệ

thống hỗ trợ ra quyết định nhằm tự động hoá quá trình này.
Tóm lại, phát hiện tri thức là một quá trình kết xuất ra tri thức từ kho
dữ liệu mà trong đó khai phá dữ liệu là công đoạn quan trọng nhất.
1.2.3. Luật kết hợp và khả năng ứng dụng
Một trong những hướng tiếp cận hiệu quả để khai phá dữ liệu là sử
dụng luật kết hợp, đây là dạng luật biểu diễn tri thức ở dạng khá đơn giản.
Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần
dữ liệu trong CSDL. Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật
kết hợp.
1.2.3.1. Luật kết hợp trong CSDL
Luật kết hợp là dạng luật khá đơn giản nhưng lại mang khá nhiều ý
nghĩa. Thông tin mà dạng luật này đem lại là rất đáng kể và hỗ trợ không
nhỏ trong quá trình ra quyết định. Tìm kiếm được các luật kết hợp mang
nhiều thông tin từ CSDL là một trong những hướng tiếp cận chính của
lĩnh vực khai thác dữ liệu.
Gọi I = {I1, I2, ..., Im} là tập m thuộc tính riêng biệt, mỗi thuộc tính
gọi là một mục. Gọi D là một CSDL, trong đó mỗi bản ghi T là một giao
dịch và chứa các tập mục, T ⊆ I.
Định nghĩa 1.6. Một luật kết hợp là một quan hệ có dạng X  Y, trong đó
X, Y ⊂ I là các tập mục gọi là itemsets, và X ∩ Y = φ . Ở đây, X được gọi


16

là tiền đề, Y là mệnh đề kết quả. Hai thông số quan trọng của luật kết hợp
là độ hỗ trợ (Supp) và độ tin cậy (Conf).
Định nghĩa 1.7. Độ hỗ trợ của một tập mục X trong CSDL D là tỉ số
giữa các giao tác T ⊂ D chứa tập X và tổng số giao tác trong D (hay là
phần trăm của các giao tác trong D có chứa tập mục X) kí hiệu
là Supp(X).


Supp ( X ) =

{T ∈ D : T ⊃ X }
D

Định nghĩa 1.8. Độ hỗ trợ của luật kết hợp X  Y là tỉ số của những giao
tác có chứa X ∪ Y và số giao tác trong CSDL D, kí hiệu:
Supp(X  Y)
Supp ( X → Y ) =

{T ∈ D : T ⊇ X ∪ Y }
D

Định nghĩa 1.9. Độ tin cậy của một luật r = X  Y là tỉ số (phần trăm)
của số giao tác trong D chứa X ∪ Y với số giao tác trong D có chứa tập
mục X. Kí hiệu độ tin cậy của một luật là Conf(r), với 0 ≤ conf(r) ≤ 1.
Việc khai thác các luật kết hợp từ CSDL chính là việc tìm tất cả các
luật có độ hỗ trợ và độ tin cậy lớn hơn ngưỡng của độ hỗ trợ và độ tin
cậy do người sử dụng xác định trước. Các ngưỡng của độ hỗ trợ và độ
tin cậy được kí hiệu là Minsupp và Minconf.
Việc khai thác các luật kết hợp được phân tích thành hai vấn đề
sau đây:
-

Tìm tất cả các tập mục thường xuyên xảy ra mà có độ hỗ trợ lớn

-

hơn hoặc bằng Minsupp.

Tạo ra các luật mong muốn sử dụng các tập mục lớn mà có độ tin
cậy lớn hơn hoặc bằng Minconf.

1.2.3.2. Luật kết hợp mờ


17

Với luật kết hợp mờ, như đã nói trong phần mở đầu, với mỗi mục
có thể chia ra các miền mờ (như “trẻ”, “trung niên”, ...), thực chất là ta
chia một mục ban đầu thành các mục con và giá trị của mỗi hàng tại mục
đó sẽ nằm trong [0, 1] chứ không chỉ là 0 hoặc 1. Khi đó, độ hỗ trợ của
một miền mờ si thuộc mục xi được định nghĩa là:

( )

FS Asixi =

( )

xi
1 n
µ
d jxi

j =1
si
n

(1)


còn độ hỗ trợ của các miền mờ s1, s2, ..., sk của các mục x1, x2, ..., xk
tương ứng sẽ là:

FS ( Asx11 , Asx22 ,..., Askxk ) =

[

1 n
µ sx11 ( d xj1 )  µ sx22 ( d jx 2 )  ...  µ skxk ( d jxk )

j =1
n

]

(2)

ở đó:
-

xi là mục thứ i
si là miền mờ thuộc mục thứ i
n là số hàng trong CSDL

µ sixi ( d jxi )

là độ thuộc của giá trị tại cột thứ i, hàng j vào tập mờ si.

1.2.3.3. Tính ứng dụng

Luật kết hợp có ứng dụng trong nhiều lĩnh vực khác nhau của đời
sống như: khoa học, hoạt động kinh doanh, tiếp thị, thương mại, phân
tích thị trường chứng khoán, tài chính và đầu tư, ... Ứng dụng luật kết
hợp phải chỉ rõ các đặc điểm về: nguồn gốc, điều kiện áp dụng, phạm vi
ứng dụng, mục đích ứng dụng. Những đặc điểm này được thể hiện bằng
mô hình sau:

Yêu cầu sử dụng Tham chiếu tập luật R

Lựa chọn luật

Ứng dụng


18

Hình 1.2. Mô hình ứng dụng luật
Trong đó:
-

Yêu cầu sử dụng là phạm vi tính ứng dụng của tập luật ví dụ như về
khoa học, kinh doanh, tiếp thị, thương mại, phân tích thị trường
chứng khoán, ...

-

Tham chiếu đến tập luật R, ở giai đoạn này các tập luật được tham
chiếu tại đây là các tập luật được sinh ra từ CSDL chứa tác nhân yêu
cầu sử dụng.


-

Lựa chọn luật, ở bước này chúng ta tiến hành lọc các luật hữu ích nhất
phục vụ cho phạm vi sử dụng.

-

Ứng dụng, đây là kết quả mong đợi nhất từ khi bắt đầu khai thác cho
đến khi thi hành luật.
Mô hình ứng dụng luật đã làm sáng tỏ tính ứng dụng của việc khai
thác luật kết hợp trong CSDL.
Thực tế, ứng dụng của khai thác luật kết hợp trong CSDL giao dịch
là một phạm trù của DataMining nên ứng dụng của nó rất rộng lớn, nhất
là trong sự phát triển của xã hội hiện nay.
Tóm lại, tính ứng dụng của khai thác luật kết hợp trong CSDL giao
dịch là việc ứng dụng các tập luật tìm thấy trong đó nhằm vào những
mục đích cụ thể và đạt được kết quả tốt.

1.3. Thuật toán Apriori
1.3.1. Ý tưởng

khai phá luật kết hợp

Apriori là một thuật giải do Rakesh Agrawal và cộng sự [9] đề xuất
lần đầu vào năm 1993. Thuật toán tìm giao dịch t có độ hỗ trợ và độ tin cậy
thỏa mãn lớn hơn một giá trị ngưỡng nào đó.
Ý tưởng chính của thuật toán Apriori:


19


Tạo ra các tập mục phổ biến có 1 phần tử, rồi tiếp đến là 2 phần tử,

-

3 phần tử, ... cho đến khi chúng ta tạo ra tập mục phổ biến của mọi
kích thước.
Mỗi tập mục được tạo ra phải được tính toán độ hỗ trợ.
Tập mục phổ biến k phần tử được tạo ra từ tập phổ biến k – 1 phần

-

tử. Bằng cách, nối từng đôi một tập mục phổ biến k – 1 phần tử đã
có để tạo ra tập ứng viên k phần tử. Sau đó, những tập ứng viên nào
có chứa một tập con không phải là phổ biến sẽ bị loại bỏ.
Thuật toán Apriori

1.3.2.

Dữ liệu vào: I, D, Minsupp, Minconf
Dữ liệu ra: Tất cả những luật kết hợp thỏa Minsupp và Minconf
Thuật toán sử dụng tính chất tập con của một tập phổ biến là phổ biến
-

Duyệt qua dữ liệu nhiều lần.
Lần duyệt đầu tiên – tính độ hỗ trợ cho mỗi mục và xác định tập

-

mục nào phổ biến.

Lần duyệt thứ k

+ Sinh ứng cử viên Ck có k-mục từ các tập mục phổ biến k-1 mục ở
bước trước
+ Xác định tập mục phổ biến Lk từ tập ứng cử Ck. Lặp lại quá trình
cho đến khi không tìm được các tập mục phổ biến mới.
+ Quá trình này gồm 2 bước như sau:
Bước 1: Bước kết nối


Để tìm tập mục phổ biến k-mục Lk chúng ta xuất phát từ các tập
mục phổ biến Lk-1, sinh tập ứng cử k-mục Ck bằng cách kết nối



các phần tử Lk-1.
Nối các phần tử trong Lk-1 được thực hiện như sau: các phần tử
trong Lk-1 được kết nối với nhau nếu chúng có chung (k-2) mục
đầu tiên giống nhau tức là:
(l1[1]=l2[1])^(l1[2]=l2[2])^...^(l1[k-2]=l2[k-2])^(l1[k-1]

20



Điều kiện (l1[k-1]ứng cử. Tập kết quả nhận được có dạng: l1[1]l1[2]l1[3]...l1[k2]l1[k-1]l2[k-1].
for (moi l1 ∈ Lk-1) do
for (moi l2 ∈ Lk-1) do

if (l1[1]=l2[1]) (l1[2]=l2[2])
&(l1[k-2]=l2[k-2]) (l1[k-1]c = l 1 x l2

Bước 2: Bước tỉa
Để rút gọn kích thước của Ck sử dụng tính chất bất kì tập con (k1)-mục nào không phổ biến thì không thể là tập con của tập k-mục
phổ biến. Do đó, nếu bất kì tập k-mục nào mà có tập (k-1) mục không
phổ biến thì sẽ bị loại bỏ khỏi Ck. Việc kiểm tra này có thể thực hiện
nhanh bằng cách duy trì một cây băm cho tất cả các tập mục phổ biến.
L1 = {1-mục}
For (k=2; Lk-1≠ φ ;k++) do begin
Ck = apriorigen(Lk-1); //Tạo tập ứng cử viên k hạng mục
For (moigiaotact ∈ D) do begin //Duyệt CSDL để tính
Support
Ct = subset(Ck,t) //Lấy ra tập con của t là ứng viên
For (moi ung cu c ∈ Ct) do
c.count++;
end
end
Lk = {c ∈ Ck | c.count ≥ Minsupp}
End
Y

Lk = k Lk
Hàm Apriori_gen nhận Lk-1 và trả về tập ứng viên kích thước k.
Gồm 2 bước: Kết nối và tỉa
Procedure apriori_gen (Lk-1; Minsupp){
for (mỗi l1 ∈ Lk-1) do
for (mỗi l2 ∈ Lk-1) do{



21

if (l1[1]=l2[1])^(l1[2]=l2[2])^…^(l1[k-2]=l2[k-2])^(l1[k-1]
c = l1 x l2 //Bước kết Lk-1 với chính nó
if (has_inrequent_subset(c, Lk-1) then
xóa c; //Loại bỏ các ứng viên không có lợi
else thêm c vào Ck
}
return Ck
}
function has_inrequent_subset(c: ứng cử k-mục, Lk-1)
for (mỗi tập con (k-1)-mục s của c) do
if s ∉ Lk-1 then
return TRUE
return FALSE
* Hạn chế của thuật toán Apriori:
-

Số lượng lớn tập phổ biến được tạo ra làm gia tăng sự phức tạp

-

không gian.
Quá nhiều lần duyệt CSDL được yêu cầu vì số lượng lớn tập phổ biến

-

được tạo.

Khi số lần duyệt CSDL nhiều làm gia tăng sự phức tạp thời gian khi

CSDL gia tăng.
1.3.3. Ví dụ minh họa cho thuật toán Apriori
Xét CSDL giao dịch bán hàng gồm 5 giao dịch như sau:
Bảng 1.1. CSDL sử dụng minh họa thuật toán Apriori
Giao dịch
1
2
3
4
5

Danh sách các mục
Bia, Tã giấy, Bột trẻ em, Bánh mì, Cây dù
Tã giấy, Bột trẻ em
Bia, Tã giấy, Sữa
Tã giấy, Bia, Chất tẩy rửa
Bia, Sữa, Cô-ca Cô-la

Minsupp = 40% (2/5), Minconf= 70%


22

Thuật toán Apriori tìm các luật kết hợp trong giao dịch bán hàng trên
như sau:
Bước 1:
C1
Tập mục

Bia
Tã giấy
Bột trẻ em
Bánh mì
Cây dù
Sữa
Chất tẩy rửa
Cô-ca Cô-la

L1

Supp
4/5
4/5
Tập
2/5mục
Bia 1/5
Tã giấy
1/5
Bột 2/5
trẻ em
Sữa1/5
1/5

Supp
4/5
4/5
2/5
2/5


Bước 2 và Bước 3:
C2
Tập mục
Bia, Tã giấy
Bia, Bột trẻ em
Bia, Sữa
Tã giấy, Bột trẻ em
Tã giấy, Sữa
Bột trẻ em, Sữa

Supp
3/5
0
2/5
2/5
0
0

L2
Tập mục
Bia, Tã giấy
Bia, Sữa
Tã giấy, Bột trẻ em

Supp
3/5
2/5
2/5

Bước 4:

C3
Tập mục
Bia, Tã giấy, Sữa

Supp
1/5


23

Bia, Tã giấy, Bột trẻ em
Tã giấy, Sữa, Bột trẻ em
Bia, Sữa, Bột trẻ em

1/5
0
0

L3 = Empty (Stop)
Bước 5:
Tập mục
Bia, Tã giấy
Tã giấy, Bia
Bia, Sữa
Sữa, Bia
Tã giấy, Bột trẻ em
Bột trẻ em, Tã giấy

Supp(A,B)
60%

60%
40%
40%
40%
40%

Supp(A)
80%
80%
80%
40%
80%
40%

Conf
75.00%
75.00%
50.00%
100.00%
50.00%
100.00%

Kết quả ta có các luật kết hợp sau: (với Minsupp = 40%, Minconf = 70%)
R1: Bia  Tã giấy (Supp =60%, Conf = 75%)
R2: Tã giấy  Bia (Supp =60%, Conf = 75%)
R3: Sữa  Bia (Supp =40%, Conf = 100%)
R4: Bột trẻ em  Tã giấy (Supp =40%, Conf = 100%)
Từ kết quả các luật được sinh ra bởi giao dịch bán hàng trên, ta thấy
rằng có luật có thể tin được (hợp lý) như Bột trẻ em  Tã giấy, có luật cần
phải phân tích thêm như Sữa  Bia và có luật có vẻ khó tin như Tã giấy 

Bia. Ví dụ này sinh ra các luật có thể không thực tế vì dữ liệu dùng để phân
tích rất nhỏ.
1.4. Kết luận chương


24

Trong chương này, tôi đã trình bày khái niệm ĐSGT, mối quan hệ giữa
các gia tử và một số vấn đề liên quan như: ánh xạ định lượng ngữ nghĩa, độ
đo tính mờ, khoảng tính mờ và khoảng tương tự. Qua đó thấy được ĐSGT là
một cấu trúc toán học mô phỏng chính xác hơn cấu trúc ngôn ngữ của một
khái niệm mờ so với lý thuyết tập mờ.
Cũng trong chương, tôi giới thiệu sơ lược một số kiến thức tổng quan về
khai phá dữ liệu, định nghĩa về luật kết hợp và khả năng ứng dụng của nó.
Cuối cùng là trình bày ý tưởng và nắm được các bước của thuật toán Apriori
khai phá luật kết hợp để làm tiền đề cho các chương sau.

CHƯƠNG 2. XÂY DỰNG THUẬT TOÁN
SINH TÓM TẮT NGÔN NGỮ TỪ DỮ LIỆU SỐ
Sau khi tìm hiểu các thuật toán khai phá luật kết hợp mờ trong các
nghiên cứu trước đây và thấy được sự bao trùm của bài toán tóm tắt dữ liệu
với bài toán khai phá luật kết hợp, từ đó xây dựng một thuật toán sinh tóm tắt


25

ngôn ngữ tổng quát. Với sự kết hợp của hai ý tưởng: Một là, trang bị cho mỗi
miền thuộc tính một cấu trúc ĐSGT để biểu diễn và xử lí được các thông tin
mờ. Hai là, tận dụng ý tưởng và thay đổi cách dùng tham số của thuật toán
Apriori để tìm được các tóm tắt thay vì chỉ tìm các luật kết hợp.

Trong chương này sẽ đi trình bày lại ngắn gọn bài toán tóm tắt dữ liệu,
một số dạng tóm tắt dữ liệu theo Yager và ứng dụng ĐSGT trong tóm tắt dữ
liệu bằng ngôn ngữ để đi xây dựng thuật toán sinh tóm tắt ngôn ngữ cho bộ
dữ liệu số.
2.1. Bài toán tóm tắt dữ liệu
Ở đây, tôi sẽ trình bày ngắn gọn cách tiếp cận cơ bản của Yager về tóm
tắt các bộ dữ liệu (CSDL) bằng ngôn ngữ. Theo Yager vào năm 1982 [10] bài
toán tóm tắt dữ liệu bằng ngôn ngữ (linguistic database summarization) được
phát biểu như sau:
V là tập các thuộc tính cần quan tâm.
Y = {y1, ..., yn} là một tập các bản ghi có các thuộc tính trong V.
D = {V(y1), ..., V(yn)} là tập dữ liệu.

-

Một tóm tắt dữ liệu bằng ngôn ngữ của tập dữ liệu trên gồm có:
Một tóm tắt S.
Một định lượng thỏa đáng Q.
Độ đúng đắn T.

-

Ví dụ 2.1. Một tóm tắt dữ liệu bằng ngôn ngữ chẳng hạn như: “Nhiều công
nhân là cực kì trẻ.” (T = 0.75)
-

Tóm tắt S là cực kì trẻ.
Định lượng Q là nhiều.

Về cơ bản, với một bộ dữ liệu D, chúng ta có thể giả định bất kì tóm tắt

thích hợp S nào và bất kì định lượng thỏa đáng Q nào, và giả định độ đúng
đắn sẽ biểu thị sự chính xác của phát biểu mà các mục dữ liệu Q thỏa mãn các
tóm tắt S.


×