Chương 2. MỐI QUAN HỆ GIỮA PHỤ THUỘC HÀM VÀ BẢNG QUYẾT ĐỊNH THEO HƯỚNG TIẾP CẬN TẬP THÔ
2.1. Xác định các phụ thuộc hàm từ bảng quyết định
2.1.1. Thuộc tính rút gọn và các thuật toán tìm chúng
Trong bảng quyết định thuộc tính dư thừa thực sự là thuộc tính không xuất hiện trong bất kỳ tập rút gọn nào và thuộc tính rút gọn là thuộc tính xuất hiện trong một tập rút gọn nào đó. Khi đó, bài toán tìm tập tất cả thuộc tính dư thừa thực sự tương đương với bài toán tìm tập tất cả các thuộc tính rút gọn. Để giải quyết bài toán này, phương pháp tiếp cận thông thường là tìm họ tất cả các tập rút gọn của bảng quyết định, sau đó tìm phép hợp giữa các tập rút gọn. Tuy nhiên, cách tiếp cận này không khả thi với các bảng dữ liệu kích thước lớn vì độ phức tạp thời gian của thuật toán tìm họ tất cả các tập rút gọn của bảng quyết định là hàm mũ đối với số thuộc tính điều kiện.
Rút gọn thuộc tính là một trong những bài toán ứng dụng điển hình nhất của lý thuyết tập thô. Trong lý thuyết tập thô, mục tiêu của rút gọn thuộc tính là tìm ra tập nhỏ nhất các thuộc tính cho phân tích dữ liệu mà vẫn giữ được hiệu năng (hoặc hầu hết hiệu năng) như tập toàn bộ các thuộc tính. Rút gọn thuộc tính vừa làm giảm khối lượng xử lý dữ liệu do chỉ phải thao tác trên một khối lượng dữ liệu nhỏ hơn, vừa làm cho kết quả thu được trở nên cô đọng và dễ hiểu hơn.
Theo Yiyu Yao và Yan Zhao, mô hình Pawlak và mô hình xác suất là hai mô hình rút gọn thuộc tính điển hình trong lý thuyết tập thô. Điển hình theo mô hình Pawlak là các phương pháp dựa trên miền dương, các phương pháp sử dụng ma trận phân biệt, các phương pháp sử dụng các phép toán đại số quan hệ. Các phương pháp rút gọn thuộc tính theo mô hình Pawlak thường được tiến hành theo hướng "từ trên xuống" (còn được gọi là phương pháp
loại bỏ (deletion method)), nghĩa là loại bỏ dần các thuộc tính không cần thiết. Điển hình theo mô hình xác suất là các phương pháp sử dụng entropy thông tin, các phương pháp sử dụng các độ đo mà điển hình là các độ đo trong tính toán hạt (granular computing), các phương pháp tích hợp lý thuyết tập thô với lý thuyết tập mờ. Các phương pháp rút gọn thuộc tính theo mô hình xác suất thường được tiến hành theo hướng "từ dưới lên" (còn được gọi là phương pháp bổ sung (addition method)), nghĩa là chọn các thuộc tính có độ liên quan cao tới mục tiêu xử lý dữ liệu để bổ sung vào tập thuộc tính rút gọn. Trong nhiều tình huống, tập rút gọn kết quả chỉ cần đảm bảo "hầu hết"
hiệu năng của tập toàn bộ các thuộc tính. Một số thuật toán theo hướng kết hợp dưới lên - trên xuống cũng đã được đề xuất (chẳng hạn, thuật toán bổ sung - loại bỏ).
Trong cơ sở dữ liệu quan hệ, Demetrovics J. và Thi V.D [7] đã chứng minh bổ đề quan trọng sau.
Bổ đề 2.1. [7] Giả sử K là một hệ Sperner trên R, khi đó
K K 1
K R K
K K
.
Trên quan hệ r, do Kar là hệ Sperner trên R nên ta có bổ đề sau Bổ đề 2.2. [1] Cho r là một quan hệ trên R và aR, khi đó
1
K ar K ar
K R K
K K
Cho bảng quyết định nhất quán T U C, d với U u u1, 2,...,um. Xét quan hệ ru u1, 2,...,um trên tập thuộc tính RC d , từ khái niệm tập rút gọn của bảng quyết định nhất quán và tập tối thiểu của một thuộc tính trên quan hệ ta có PRED C Kdr d , với PRED C là họ tất cả các tập rút gọn Pawlak của C trong T và Kdr là họ các tập tối thiểu của thuộc tính d
trên r. Do đó, nếu ký hiệu REAT C là tập tất cả các thuộc tính rút gọn của C thì
R PRED C R dr
REAT C R R d
K
Thuật toán 2.1. [1] Tìm tập tất cả các thuộc tính rút gọn.
Đầu vào: Bảng quyết định T U C, d với POSC d U ,
1, 2,..., n
C c c c , U u u1, 2,...,um
Đầu ra: REAT C là tập tất cả các thuộc tính rút gọn của C.
Phương pháp:
Xét quan hệ ru u1, 2,...,umtrên tập thuộc tính RC d .
Bước 1. Từ r ta tính hệ bằng nhau Er
ij:1
r E i jm
E với Eij aR u a: i uj a . Bước 2. Từ Er ta xây dựng tập M d
d A r:dA
M E BEr:dB A, B.
Bước 3. Xây dựng tập
K d
V R K
M
. Bước 4. Đặt REAT C V d .
Tập REAT C được xây dựng là tập tất cả các thuộc tính rút gọn của C.
Độ phức tạp Thuật toán 2.1
Với m là số đối tượng và n là thuộc tính điều kiện, độ phức tạp thời gian để tính hệ bằng nhau Er tại bước 1 là rr O m n 2 . Tại bước 2, hệ bằng nhau Er rr có tối đa m2 phần tử. Do đó độ phức tạp thời gian để tính tập M d là O m n 4 .
Bởi vậy, độ phức tạp thời gian của Thuật toán 2.1 là O m n 4 , độ phức tạp này là đa thức theo số hàng và số cột của T.
Ví dụ 2.1. Xét bảng quyết định T U C, d với: U u u u u u u1, , , , ,2 3 4 5 6,
, ,
C a b c trong đó: a (Đau đầu), b (Đau cơ), c (Thân nhiệt) và d (Cúm) cho ở Bảng 2.1.
U Đau đầu Đau cơ Thân nhiệt Cúm u 1 Có Không Bình thường Không
u2 Có Có Cao Có
u3 Có Có Rất cao Có
u4 Không Có Bình thường Không
u5 Không Không Cao Không
u6 Không Có Rất cao Có
Bảng 2.1. Bảng quyết định ở Ví dụ 2.1
Rõ ràng bảng quyết định T nhất quán vì POSa b c, , d U. Xét quan hệ ru u u u u u1, 2, 3, 4, 5, 6 trên tập thuộc tính Ra b c d, , , .
Thực hiện các bước của Thuật toán 2.1 ta có:
Bước 1: Từ r tính
ij:1
r E i jm
E với EijaR u a: i uj a .
Vậy ta có Er a b d, , , b c d, , , a b, , a d, , b d, , c d, , a , b , c
Bước 2: Từ Er ta xây dựng tập
d A r:dA
M E BEr:dB A, B. VậyM d a b, , c
Bước 3: Xây dựng tập , , ,
K d
V R K R a b c d
M
Bước 4: Đặt REAT C V d .
Vậy REAT C a b c, , .
Từ thuật toán 2.1 ta thu được các hệ quả sau:
Hệ quả 2.1. [1] Cho trước bảng quyết định nhất quán T U C, d và
thuộc tính a, tồn tại thuật toán xác định thuộc tính a là thuộc tính rút gọn hay không với thời gian đa thức theo số hàng và số cột của T.
Hệ quả 2.2. [1] Cho trước bảng quyết định nhất quán T U C, d và
thuộc tính a, tồn tại thuật toán xác định thuộc tính a là thuộc tính dư thừa thực sự hay không với thời gian đa thức theo số hàng và số cột của T.
Dưới đây là thuật toán tìm vùng dương của một tập thuộc tính điều kiện và tìm tập thuộc tính rút gọn từ một tập thuộc tính cho trước. Tập thuộc tính điều kiện R thỏa mãn POSR(D)=POSC(D) được gọi là siêu rút gọn (super- reduct). Rõ ràng, nếu một tập thuộc tính siêu rút gọn là tối thiểu thì nó sẽ là rút gọn. Hơn nữa, tập mọi thuộc tính điều kiện C là một siêu rút gọn. Một tập thuộc tính điều kiện R mà là tập con của một tập rút gọn thì được gọi là bộ phận rút gọn (partial reduct). Tập lõi là một tập bộ phận rút gọn.
Thuật toán 2.2. [2] Xác định vùng dương trong bảng quyết định Đầu vào: Bảng quyết định T ( ,U CD);
Tập thuộc tính BC.
Đầu ra: Tập các đối tượng - vùng dương POSB( )D . Phương pháp:
(1) Xác định các lớp tương đương X1B,X2B,...,XmB của U B/ (2) POSB( ) :D
(3) Với mọi j1, 2,...,m (for j1 to m do)
Nếu mọi đối tượng XBj bằng nhau trong D Thì POSB( ) :D POSB( )D XBj
Độ phức tạp Thuật toán 2.2
Thuật toán 2.2 có độ phức tạp là ( |O k U | log |U |)
Thuật toán 2.3. [2] Thuật toán tìm tập rút gọn trong bảng quyết định Đầu vào: Bảng quyết định T ( ,U CD) với n=|U|, k=|C|;
Một tập con các thuộc tính điều kiện R là một siêu rút gọn.
Đầu ra: Tập rút gọn 'R R. Phương pháp:
(1). Tính POSR(D) và đặt m:= | POSR(D)|
(2). Với mọi a R begin
Tính POSR-{a}(D) và đặt ma:= | POSR-{a}(D)|
Nếu ma m thì R:R\ a ;
end;
(3). 'R R.
Độ phức tạp Thuật toán 2.3
Thuật toán 2.3 có độ phức tạp là O k n( 2 log ).n
Ví dụ 2.2. Xét bảng quyết định về bệnh cúm: T U C, d với: Ca b c, ,
1, 2, 3, 4, 5, 6
U u u u u u u , trong đó: a (Đau đầu), b (Đau cơ), c (Thân nhiệt) và d (Cúm) cho ở Bảng 2.2.
U Đau đầu Đau cơ Thân nhiệt Cúm
u1 Có Không Bình thường Không
u2 Có Có Cao Có
u3 Có Có Rất cao Có
u4 Không Có Bình thường Không
u5 Không Không Cao Không
u6 Không Có Rất cao Có
Bảng 2.2. Bảng quyết định về bệnh cúm ở Ví dụ 2.2
Bảng này có hai tập rút gọn là: R1 = {Đau cơ, Thân nhiệt} (xem bảng 2.3) và R2 = {Đau đầu, Thân nhiệt} (xem bảng 2.4).
U Đau cơ Thân nhiệt Cảm cúm u1 Không Bình thường Không
u2 Có Cao Có
u3, u6 Có Rất cao Có
u4 Có Bình thường Không
u5 Không Cao Không
Bảng 2.3. Bảng rút gọn thứ nhất của hệ thống bệnh cúm R 1 U Đau đầu Thân nhiệt Cảm cúm
u1 Có Bình thường Không
u2 Có Cao Có
u3 Có Rất cao Có
u4 Không Bình thường Không
u5 Không Cao Không
u6 Không Rất cao Có
Bảng 2.4. Bảng rút gọn thứ hai của hệ thống bệnh cúm R2
Như vậy tập lõi là PCORE(C) = {Thân nhiệt} và Thân nhiệt là thuộc tính cần thiết duy nhất. Các thuộc tính Đau đầu, Đau cơ đều không cần thiết theo nghĩa từ bảng dữ liệu có thể loại bỏ một trong hai thuộc tính này mà vẫn chẩn đoán được bệnh. Tức là:
POS{Đau cơ, Thân nhiệt}({Cảm cúm}) = POSC({Cảm cúm}) POS{Đau đầu, Thân nhiệt}({Cảm cúm}) = POSC({Cảm cúm}).
Thuật toán 2.4.
Thuật toán từ trên xuống tìm tập rút gọn trong bảng quyết định (Tương ứng với thuật toán loại bớt trong [10])
Đầu vào: Bảng quyết định T ( ,U CD). Đầu ra: Tập rút gọn R.
Phương pháp:
(1) R:C TG; :C; (2) While TG do
begin
(2.1) a TG: tính (a)
(2.2) TG := TG \{a} với a là thuộc tính phù hợp nhất (2.3) if R \{a} là một siêu rút gọn then R:=R \{a}
end;
(3) Output R.
Thuật toán 2.4 là tương tự như Thuật toán 2.3 với hai thay đổi nhỏ.
Thứ nhất, tập siêu rút gọn đầu vào chính là tập thuộc tính điều kiện C. Thứ hai, việc loại bớt thuộc tính ở đây được định hướng theo độ phù hợp (a).
Thuật toán 2.5.
Thuật toán hướng kết hợp tìm tập rút gọn trong bảng quyết định (Tương ứng với thuật toán loại bớt-bổ sung trong [10]) Đầu vào: Bảng quyết định T ( ,U CD).
Đầu ra: Tập rút gọn R.
Phương pháp:
//Bước bổ sung
(1) R: ; TGA:C;
(2) While (R chưa là siêu rút gọn và TGA ) do begin
(2.1) a TGA: tính (a);
(2.2) TGA:TGA\ a với a là thuộc tính phù hợp nhất;
(2.3) R:R a ;
end;
//Bước loại bỏ (3) TGD:R;
(4) While (TGD ) do begin
(4.1) a TGD:tính (a);
(4.2) TGD:TGD\ a với a là thuộc tính phù hợp nhất;
(4.3) if R\ a là một siêu rút gọn then R:R\ a ;
end;
(5) Output R.
So với Thuật toán 2.4, Thuật toán 2.5 bổ sung thêm bước thực hiện tiến để tìm một tập siêu rút gọn sau đó tiến hành bước thực hiện lùi để tìm một tập rút gọn từ tập siêu rút gọn đã có.
Thuật toán 2.6.
Thuật toán từ dưới lên tìm tập rút gọn trong bảng quyết định (Tương ứng với thuật toán loại bớt trong [10])
Đầu vào: Bảng quyết định T ( ,U CD) Đầu ra: Tập rút gọn R.
Phương pháp:
(1) R: ; TGA:C;
(2) While (R chưa là rút gọn và TGA ) do begin
(2.1) aTGA: tính (a);
(2.2) Chọn a TGA là thuộc tính phù hợp nhất;
(2.3) if R a là bộ phận rút gọn then
Begin R:R a ;TGA:TGA a end
end;
(3) Output R [2]