Chiến lược tỡm kiếm

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp xây dựng cây quyết định dựa trên tập phụ thuộc hàm xấp xỉ (Trang 35 - 49)

2.1.4.1. Chiến lược chung

Để tỡm tất cả cỏc PTH tối thiểu cú nghĩa, thuật toỏn được xõy dựng theo chiến lược tỡm kiếm trờn dàn dữ liệu theo từng mức, từ nhỏ tới lớn. Bắt đầu từ tập thuộc tớnh đơn và lặp lại cụng việc đối với tập thuộc tớnh lớn hơn theo từng mức trờn dàn chứa cỏc thuộc tớnh. Một mức L là một tập cỏc thuộc tớnh cú kớch thước , trong đú cỏc tập trong L rất cú khả năng tạo thành cỏc PTH.

Ban đầu mức L1= {{A} AR} (kớch thước 1: cú 1 thuộc tớnh), sau đú mức L2

sẽ được tớnh từ L1, và L3 được tớnh từ L2,… theo cỏc thụng tin thu nhận được trong quỏ trỡnh thực hiện [12,13].

Khi thuật toỏn xử lý tập X, nú kiểm tra tất cả cỏc PTH cú dạng X\{A}A, với AX. Điều này bảo đảm rằng chỉ cú cỏc PTH cú ý nghĩa được xem xột. Chiều tim kiếm từ nhỏ tới lớn của thuật toỏn bảo đảm rằng kết quả thu được chỉ gồm những PTH tối thiểu. Đồng thời nú cũng giỳp làm giảm khụng gian tỡm kiếm một cỏch hiệu quả.

Cũng như chiến lược tỡm kiếm từ nhỏ tới lớn, thỡ chiến lược tỡm kiếm theo mức cũng được ỏp dụng thành cụng trong rất nhiều cỏc ứng dụng khai phỏ dữ liệu. Cựng với việc làm giảm khụng gian tỡm kiếm hiệu quả, thuật toỏn tỡm kiếm theo mức cũn cú hệu quả làm giảm việc tớnh toỏn ở mỗi mức bằng cỏch sử dụng kết quả từ những mức trước.

2.1.4.2. Giảm bớt khụng gian tỡm kiếm

1- Thu nhỏ tập thuộc tớnh là ứng cử viờn vế phải Rhs (Rhs -Right_hand site) của PTH

TANE làm việc trờn dàn cho đến khi cỏc PTH tối thiểu đỳng đắn được tỡm thấy.

Để kiểm tra tớnh tối thiểu của một PTH cú dạng X\{A}A, chỳng ta cần kiểm tra xem Y\{A}A cú phải là PTH hay khụng, trong đú Y là tập con thực sự của X. Chỳng ta lưu thụng tin này vào trong tập C(Y)- tập cỏc ứng cử viờn vế phải của Y.

Tập C(X) với X là một tập thuộc tớnh, chỉ bao gồm cỏc thuộc tớnh A sao cho A khụng PTH vào bất kỳ một tập con thực sự nào của X.

Chi tiết hơn, tập cỏc thuộc tớnh ứng cử viờn Rhs của tập thuộc tớnh XR được tớnh như sau:

Để tỡm PTH tối thiểu, ta chỉ cần kiểm tra PTH cú dạng X\{A}A, trong đú AX và A C(X)\{B} với BX.

Vớ dụ: giả sử TANE đang xột tập X={A,B,C} và giả sử CA là một PTH. Do CA đỳng, nờn ta cú AC({A,C})= C(X)\{B}, do đú ta cú {B,C}A khụng tối thiểu.

Hạn chế khụng gian tỡm kiếm trong TANE dựa trờn yếu tố là nếu C(X)= thỡ C(Y)= với Y là tập bao hàm X (supersets Y of X).

Do đú khụng cú PTH nào ở dạng Y\{A}A cú thể là PTH tối thiểu, và khụng cần phải tớnh toỏn đối với tập Y. Việc tỡm kiếm rộng thực hiện việc này rất hiệu quả, như trờn hỡnh sau:

Hỡnh 2.2. Một tập đó được cắt tia chứa dàn cho {A,B,C,D}.

Do xúa B nờn chỉ cú cỏc thành viờn tụ đậm mới được tham gia trong thuật toỏn ở mức cao hơn

2- Thu nhỏ tập mịn hơn chứa tập cỏc thuộc tớnh là ứng cử viờn vế phải (Rhs+)

Ứng cử viờn vế phải Rhs đủ để bảo đảm cỏc PTH phỏt hiện được là tối thiểu. TANE cũn cú thể sử dụng tập mịn hơn cỏc ứng cử viờn Rhs+ là C+(X) nhằm giỳp thu gọn hơn nữa khụng gian tỡm kiếm PTH tối thiểu một cỏch hiệu quả.

C+(X)= {AR BX: X\{A,B}{B} khụng đỳng}

Chỳ ý rằng A và B cú thể bằng nhau. Bổ đề sau đõy sẽ chỉ ra cỏch sử dụng Rhs+ để kiểm tra tớnh tối thiểu của PTH giống như đó làm với Rhs.

Bổ đề 3:

Cho AX và X\{A}A là một PTH đỳng,

PTH X\{A}A là tối thiểu với BX ta cú AC+(X\{B})

Bổ đề 4:

Cho BX và X\{B}B là một PTH đỳng, Nếu XA đỳng thỡ X\{B}A đỳng.

Bổ đề này cho phộp chỳng ta loại thờm được những thuộc tớnh trong tập những ứng cử viờn Rhs : C+(X). Giả sử cú X\{B}B là một PTH, theo bổ đề ta cú những PTH cú X trong vế trỏi khụng phải là PTH tối thiểu, do chỳng ta cú thể loại B khỏi vế trỏi mà vẫn khụng làm thay đổi tớnh đỳng đắn của PTH. Do đú, cú thể loại khỏi C(X) những tập sau đõy một cỏch an toàn

= R\X nếu  BX: X\{B}B đỳng  nếu trỏi lại

Vớ dụ [13]:

Giả sử TANE đang kiểm tra tập thuộc tớnh X={A,B,C} và {C}B là một PTH đỳng. Do A = , nờn X\{A}A khụng phải là tối thiểu.

Hơn thế nữa, sỉa sử X cú một tập con thực sự Y mà Y\BB đỳng với một thuộc tớnh B nào đú (BY). Ta cũng cú thể loại khỏi C(X) tất cả cỏc thuộc tớnh A mà AX\Y. Tập cỏc thuộc tớnh cú thể loại đi được tớnh như sau:

= { AX :  BX\{A} sao cho X\{A,B} B đỳng} Vớ dụ:

Giả sử TANE đang kiểm tra tập thuộc tớnh X={A,B,C,D} và cú {C}B là một PTH đỳng. Do vậy, A = , nờn X\{A}A khụng phải là tối thiểu.

Bổ đề 5:

C+(X) = {AR: BX: X\{A,B}B khụng đỳng} = ((R\ )\ \

3-Hạn chế khụng gian tỡm kiếm theo khúa

Một tập thuộc tớnh là một siờu khúa nếu như khụng cú 2 bộ nào bằng nhau trờn tập thuộc tớnh đú, chẳng hạn như phõn hoạch B chỉ bao gồm cỏc lớp tương đương mà từng lớp này chỉ cú duy nhất 1 bộ. Tập X là một khúa

nếu như nú là một siờu khúa và khụng cú một tập con thực sự nào của nú là siờu khúa. Khi 1 khúa được tỡm ra trong quỏ trỡnh tỡm kiếm cỏc PTH, thỡ cú thể ỏp dụng cỏch để hạn chế khụng gian tỡm kiếm nữa.

Bổ đề 6 [13]:

Cho BX và X\{B}B là một PTH đỳng. Nếu X là một siờu khúa, thỡ ta cú X\{B} là một siờu khúa.

2.1.4.3. Tớnh toỏn với cỏc phõn hoạch

Để làm giảm thời gian và khụng gian chi việc tớnh toỏn trờn cỏc phõn hoạch người ta ỏp dụng thờm hai phương phỏp sau, thứ nhất là thay vỡ tớnh toỏn trờn cỏc phõn hoạch, ta tớnh trờn phõn hoạch rỳt gọn, thứ hai, là phương phỏp tớnh toỏn lỗi e một cỏch nhanh chúng.

Người ta đưa ra khỏi niệm siờu khúa xấp xỉ để cú thể thực hiện cỏc cụng việc trờn một cỏch dễ dàng hơn.

Ta định nghĩa e(X) là số bộ nhỏ nhất cần loại khỏi r để X trở hành một siờu khúa. Nếu e(X) là đủ nhỏ, thỡ ta núi X là một siờu khúa xấp xỉ. Lỗi e(X) cú thể dễ dàng tớnh được từ cỏc phõn hoạch theo cụng thức:

1-Phương phỏp Phõn hoạch rỳt gọn [13]

Một phõn hoạch rỳt gọn (Stripped partitions) là một phõn hoạch trong đú đó loại bỏ cỏc lớp tương đương cú kớch thước bằng 1. Một phõn hoạch rỳt gọn của một phõn hoạch  được kớ hiệu là *. Chẳng hạn ta cú, *D= {{1,4,7}}. Việc loại bỏ cỏc lớp tương đương cú kớch thước bằng 1 là rất dễ hiểu, bởi vỡ lớp tương đương cú kớch thước bằng 1 khụng làm ảnh hưởng đến tớnh đỳng đắn của bất kỳ một PTH nào.

Một phõn hoạch rỳt gọn cũng chứa đầy đủ thụng tin như một phõn hoạch bỡnh thường. Vớ dụ giỏ trị e(X) dễ dàng tỡm được từ phõn hoạch rỳt gọn theo cụng thức:

e(X)= (*X-*X) / r (1)

Trong đú, *Xlà tổng kớch thước của cỏc lớp tương đương trong *X. Đồng thời, mối quan hệ làm mịn giữa cỏc phõn hoạch khụng vị thay đổi và bổ đề 1 vẫn đỳng đối với phõn hoạch rỳt gọn.

Bổ đề 2 khụng đỳng đối với phõn hoạch rỳt gọn, bởi vỡ *X khụng thể bằng *XA, hơn thế nữa, *  *XA. Tuy nhiờn, do e(X)= e(Y)  X=Y, ta cú bổ đề sau thay thế cho bổ đề 2:

Bổ đề 7:

Một PTH XA đỳng e(X) = e(X{A})

2-Phương phỏp tớnh Lỗi e

Ta cú cụng thức sau đõy về ràng buuộc của e(XA), đú là: e(X) - e(X{A}) e(XA)  e(X) (2)

nếu e(X) - e(X{A}) >  hoặc e(X) <  thỡ thuật toỏn khụng cần phải tớnh e(XA) để kiểm tra PTH XA thỏa món hay khụng.

3-Tớnh cỏc phõn hoạch

Trong mỗi bước lặp, TANE khụng tớnh cỏc phõn hoạch từ đầu bằng cỏch tớnh trực tiếp từ dữ liệu đầu vào, mà dựa trờn cỏc phõn hoạch đó tớnh

được từ bước lặp trước bằng sản phẩm của hai phõn hoạch ’ và ’’ đó được tớnh trước đõy. Sản phẩm của 2 phõn hoạch ’ và ’’ , được lớ hiệu là ’. ’’, chớnh là phõn hoạch  mịn nhất, mịn hơn cả hai phõn hoạch ’ và ’’. Ta cú bổ đề sau:

Bổ đề 8

Với X,Y R ta cú ’. ’’ = XY. (X. Y = XY)

Đầu tiờn, cỏc phõn hoạch A sẽ được tớnh trực tiếp từ CSDL, với mọi thuộc tớnh AR. Sau đú, cỏc phõn hoạch X với kớch thước của X là X2 sẽ được tớnh bằng một sản phẩm của cỏc phõn hoạch đối với 2 tập con của X mà cú kớch thước là X-1.

Sau khi cú phõn hoạch X, lỗi e(X) sẽ được tớnh, để kiểm tra tớnh thỏa món theo bổ đề 7. Phõn hoạch đầy đủ chỉ cần thiết cho việc tớnh cỏc phõn hoạch cho mức tiếp theo.

Kể từ lần lặp tiếp theo, thuật toỏn chỉ thực hiện trờn định danh của cỏc bộ, do đú, thu được cỏc lợi ớch như, dễ thực hiện, vỡ khụng phải quan tõm đến cỏc loại dữ liệu khỏc nhau, khi tớnh toỏn cho PTH xấp xỉ, cỏc bộ bị thiếu giỏ trị vẫn cú thể tớnh bỡnh thường.

2.1.4.4. Thủ tục chớnh của thuật toỏn TANE cải tiến

Thuật toỏn TANE cải tiến để xỏc định cỏc PTH xấp xỉ [13]:

Input: Quan hệ r trờn lược đồ R

Output: Cỏc PTH tối thiểu, khụng tầm thường đỳng trờn r

C(X) {A X | X \ {A}A khụng đỳng}

= R\ {AX: X\{A}A đỳng}= R\ (ký hiệu phủ định) C+(X)= {AR: BX: X\{A,B}B khụng đỳng}

1. L :0    2. + 

3. L :1  A A R  /xột 1 thuộc tớnh A của R 4. :=1 5. while L 6. COMPUTE_DEPENDENCIES(L) 7. PRUNE (L) 8. L+1 := GENERATE_NEXT_LEVEL(L) 9. :=+1

ở đõy, việc tớnh GENERATE_NEXT_LEVEL(L) là: L +1={X: X=+1, Y: YX, Y= chỳng ta cú YL} Thủ tục tớnh cỏc PTH:

Chương trỡnh con này sẽ tỡm kiếm tất cả cỏc PTH tối thiểu mà cú vế trỏi nằm trong L-1. Procedure COMPUTE_DEPENDENCIES(L) 1 for each XL do 2 C (X) :+  AXC ( X \ {A}) 3 for each XL do 4 for each AX C (X) do 5 if (X\ { }e AA) then 6 output X \ { }A A 7 remove A from C (X) 8 If X \ {A}A thỏa món then

9 remove all B in R \ X from C (X)

Theo bổ đề 3 [Cho AX và X\{A}A là một PTH, PTH X\{A}A là tối thiểu  BX, chỳng ta cú: AC+(X\{B})]: cỏc bước 2,4,5 bảo đảm chỉ cú những PTH tối thiểu cú dạng X\{A}A được đưa ra, trong đú X L và

A X. Việc kiểm tra tớnh đỳng của PTH trong dũng 5 dựa theo bổ đề số 7: PTH XA đỳng  e(X)=e(X{A}).

COMPUTE_DEPENDENCIES(L) cũng tớnh cỏc tập C+(X) với XL. Bổ đề sau chỉ ra rằng điều này là hoàn toàn đỳng.

Bổ đề:

Cho YL-1, cho C+(Y) đó được tớnh là đỳng, sau khi thực hiện thủ tục COMPUTE_DEPENDENCIES(L), C+(X) là được tớnh đỳng đối với XL

Dũng 8 triển khai thực hiện sự khỏc biệt giữa C+(X) và C(X). Nếu dũng này bị chuyển đi, thuật toỏn vẫn thực hiện chớnh xỏc nhưng việc hạn chế khụng gian tỡm kiếm sẽ kộm hiệu quả.

Thủ tục Tỉa cỏc thuộc tớnh trờn dàn:

Chương trỡnh con này sẽ hạn chế khụng gian tỡm kiếm bằng cỏch loại khỏi L những tập như đó xem xột trong phần trước (section 3, từ chiến lược chung đến tớnh toỏn cỏc phõn hoạch).

Procedure PRUNE L 1 for each XL do 2 if C X   do 3 delete X from L 4 if X is a (super)key do 5 for each A C X \ X   do

6 If ABXC+(X{A}\{B}) then

7 output XA

8 delete X from L

Chương trỡnh con này đó ỏp dụng 2 quy tắc hạn chế khụng gian tỡm kiếm được mụ tả trong phần trước:

2-Thứ hai, X bị loại bỏ nếu X là một khúa.

Trong trường hợp 1, nếu C+(X)=, thỡ cỏc dũng 4-8 trong thủ tục

COMPUTE_DEPENDENCIES , và cỏc dũng 5-7 trong thủ tục PRUNE sẽ khụng làm gỡ cả. sau khi C+(Y)=, cung đối với YX, việc xúa X sẽ khụng cú hiệu quả trờn output của thuật toỏn.

Cũn về trường hợp 2, tỉa theo khúa, tớnh đỳng của việc tỉa là dựa trờn mệnh đề sau:

Cho X-siờu khúa và AX. PTH X\{A} A là đỳng và cực tiểu

X\{A}là 1 khúa và, đối với BX, A C+(X\{B})

Một PTH X A là output cua dũng 7 của thủ tục PRUNE  x là 1 khúa, A C+(X\{X}) và A C+(X{A}\{B}), đối với BX.

Mệnh đề trờn đó chắc chắn chỉ ra rằng 1 PTH đỳng và tối tiểu. Nú cũng cho biết nếu 1 PTH tối tiểu X\{A}A khụng phải là output trong thủ tục COMPUTE_DEPENDENCIES bởi vỡ việc tỉa đú, nú là output trong thủ tụcPRUNE. Do vậy, việc tỉa là hoàn toàn chớnh xỏc.

Chương trỡnh con sinh mức kế tiếp GENERATE _NEXT_LEVEL (L) sẽ thực hiện sinh ra mức mới từ mức hiện tại.

Chương trỡnh GENERATE _NEXT_LEVEL (L)

Chương trỡnh con sinh mức kế tiếp sẽ thực hiện sinh mức L+1 từ mức L. Mức L+1 chỉ bao gồm cỏc tập thuộc tớnh cú kớch thước +1 mà cỏc tập con kớch thước  của chỳng đều thuộc mức L.Cỏc phương phỏp tỉa bảo đảm rằng khụng cú PTH nog bị mất.

Procedure GENERATE _NEXT_LEVEL (L)

1. L+1:=

2. For each K PREFIX_BLOCKS(L) do 3. For each {Y,Z} K, YZ do

4. X:= YZ

5. If for all AX, X\{A} L then 6. L+1:= L+1 {X}

7. RETURN L+1

Trong đú thủ tục PREFIX_BLOCKS(L) thực hiện phõn chia L thành cỏc tập con rời nhau như sau. Giả sử một tập X  L đó được sắp xếp cỏc thuộc tớnh theo thứ tự. Hai tập X,Y  Lthuộc về cựng một prefix block nếu chỳng cú cựng một tiền tố chiều dài -1, tức là chỉ khỏc nhau đỳng vị trớ cuối cựng khi đó sắp xếp. Mỗi prefix block tạo thành cỏc khối liờn tiếp nhau theo thứ tự từ điển trong L. Cỏc prefix block dễ dàng được tớnh từ thứ tự từ điển của L.

2.1.4.5. Thuật toỏn TANE và việc phõn hoạch

TANE dường như khụng liờn quan gỡ đến việc phõn hoạch, nhưng thực sự, trong dũng 5 của COMPUTE_DEPENDENCIES đũi hỏi phải biết e(X) và e(X\{A}), và việc kiểm tra siờu khúa trong dũng 4 của hàm PRUNE cũng dựa trờn e(X). Trong TANE, giỏ trị e được tớnh từ cỏc phõn hoạch rỳt gọn theo cụng thức:

e(X)=( *x-*x) / r

trong đú *xlà tổng kớch thước của cỏc lớp tương đương trong *x , cũn * là phõn hoạch rỳt gọn của phõn hoạch .

Cỏc phõn hoạch được tớnh như sau [13]:

Ban đầu, cỏc phõn hoạch trờn 1 thuộc tớnh được tớnh trực tiếp từ quan hệ r. Một phõn hoạch {A} được tớnh từ cột r[A] như sau. Đầu tiờn, cỏc giỏ trị của cỏc cột được thay thế bằng cỏc số nguyờn 1,2,3,… nờn quan hệ tương đương khụng bị thay đổi, nghĩa là cỏc giỏ trị giống nhau được thay bằng cựng một số nguyờn và cỏc giỏ trị khỏc nhau với những số nguyờn khỏc nhau. Điều này cú thể thực hiện trong thời gian tuyến tớnh bằng cỏch sử dụng cấu trỳc dữ liệu cõy hoặc bảng băm để ỏnh xạ cỏc giỏ trị gốc thành cỏc số nguyờn. Sau đú,

giỏ trị t[A] đú sẽ là định danh cho lớp tương đương [ t]{A} của {A}, và do đú {A} dễ dàng được xõy dựng. Cuối cựng cỏc lớp tương đương cú kớch thước bằng 1 sẽ được giản ước đi và tạo thành phõn hoach rỳt gọn *{A}.

Cỏc phõn hoạch trờn tập thuộc tớnh X lớn hơn được tớnh toỏn khi X được đưa vào mức tương ứng, taị dũng 6 của GENERATE_NEXT_LEVEL. Tập X cú dạng YZ, và phõn hoạch x được tớnh giống như sản phẩm y.z. Sản phẩm đú dược tớnh toỏn với thủ tục sau với độ phức tạp tuyến tớnh.

Procedure STRIPPED_PRODUCT Input: phõn hoach rỳt gọn *’= {c’1,c’2,…, c’*’} và *’’={c’’1,c’’2,…, c’’*’’} Output: phõn hoạch rỳt gọn *=(’. ’’)* 1. *:=  2. For i:=1 to *’ do

3. For each tc’i do T[t]:=i 4. S[i] :=  5. For i:=1 to *’’ do 6. For each tc’’i do 7. if T[t] NULL then S[T[t]]:=S[T[t]]{t} 8. for each tc’’i do 9. if  S[T[t]] 2 then *:=*{ S[T[t]]} 10. S[T[t]]:= 11. For i:=1 to *’ do

12. for each tc’i do T[t]:= NULL 13. Return *

Thủ tục này bảo đảm rằng T được khởi tạo là NULL, và trước khi ra khỏi chương trỡnh lại gỏn NULL trở lại để dựng về sau.

Thuật toỏn TANE được gọi là thuật toỏn cải tiến (để tớnh tất cả cỏc PTH

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp xây dựng cây quyết định dựa trên tập phụ thuộc hàm xấp xỉ (Trang 35 - 49)

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

(97 trang)