

Luận văn tốt nghiệp Tiếp cận lý thuyết tập thô do Z.Pawlak

1

Mục lục

Danh mục các thuật ngữ 2

Danh sách bảng

4

Phần mở đầu

6

Chương 1. Các khái niệm cơ bản

10

1.1. Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2. Hệ thống thông tin và tập thô . . . . . . . . . . . . . . . . . . . . . . 11

1.2.1. Hệ thống thông tin . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.2. Quan hệ không phân biệt được

. . . . . . . . . . . . . . . . . 12

1.2.3. Các tập xấp xỉ

. . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2.4. Các tính chất của xấp xỉ . . . . . . . . . . . . . . . . . . . . . 15

Bảng các ký hiệu 3

1.2.5. Độ chính xác của xấp xỉ . . . . . . . . . . . . . . . . . . . . . 16

1.3. Bảng quyết định . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.3.1. Rút gọn và lõi . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3.2. Ma trận và hàm phân biệt được . . . . . . . . . . . . . . . . . 18

1.3.3. Luật quyết định . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.4. Phụ thuộc xấp xỉ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2

1.4.1. Hàm thành viên thô . . . . . . . . . . . . . . . . . . . . . . . 24

1.4.2. Phụ thuộc hàm xấp xỉ . . . . . . . . . . . . . . . . . . . . . . 25

1.4.3. Rút gọn xấp xỉ . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Chương 2. Một số thuật toán tìm tập rút gọn 31

2.1. Mở đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.2. Thuật toán sử dụng các phép toán đại số . . . . . . . . . . . . . . . . 32

2.2.2. Đặc trưng của tập rút gọn . . . . . . . . . . . . . . . . . . . . 36

2.2.3. Các thuật toán . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.3. Thuật toán dựa vào số cặp phân biệt được . . . . . . . . . . . . . . . 43

2.3.1. Một số ký hiệu . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2.3.2. Cơ sở toán học . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.3.3. Thuật toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.4. Thuật toán tìm rút gọn xấp xỉ . . . . . . . . . . . . . . . . . . . . . . 52

2.4.1. Đặt vấn đề

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.4.2. Sai số của rút gọn xấp xỉ . . . . . . . . . . . . . . . . . . . . . 52

2.4.3. Các thuật toán tìm rút gọn xấp xỉ

. . . . . . . . . . . . . . . 54

2.2.1. Tập lõi trong bảng quyết định . . . . . . . . . . . . . . . . . . 32

Chương 3. Khám phá phụ thuộc đa trị 58

3.1. Mở đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.2. Khảo sát phụ thuộc bằng Ma trận phụ thuộc . . . . . . . . . . . . . . 60

3.2.1. Phụ thuộc và phụ thuộc xấp xỉ . . . . . . . . . . . . . . . . . 60

3.2.2. Đặc trưng phụ thuộc bằng ma trận phụ thuộc . . . . . . . . . 63

3

3.3. Thuật toán kiểm định và tìm kiếm phụ thuộc . . . . . . . . . . . . . 69

3.3.1. Thuật toán tính độ dầy đặc của dãy ma trận . . . . . . . . . . 69

3.3.2. Thuật toán kiểm định phụ thuộc xấp xỉ . . . . . . . . . . . . 73

3.3.3. Thuật toán tìm kiếm phụ thuộc tối tiểu vế phải . . . . . . . . 75

3.4. Mở rộng phụ thuộc hàm và phụ thuộc đa trị . . . . . . . . . . . . . . 77

3.4.1. Quan hệ tương tự . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.4.3. Đặc trưng β−phụ thuộc bằng ma trận phụ thuộc . . . . . . . 84

3.4.4. Thuật toán kiểm định β−phụ thuộc đa trị

. . . . . . . . . . . 88

3.5. Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Phần Kết luận

92

Tài liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

3.4.2. Phụ thuộc mở rộng và các tính chất . . . . . . . . . . . . . . . 81

4

Chương

DANH MỤC CÁC THUẬT NGỮ

Hệ thống thông tin ()

Tập thô (Rough Set)

Quan hệ không phân biệt được

Tập xấp xỉ dưới

Tập xấp xỉ trên

Bảng quyết định

Rút gọn

Lõi

Ma trận phân biệt được

Hàm phân biệt được

Luật quyết định

Phụ thuộc hàm

Phụ thuộc đa trị

Phụ thuộc xấp xỉ

5

Chương

BẢNG CÁC KÝ HIỆU

u(a): Giá trị của đối tượng u tại thuộc tính a.

IND(B): Quan hệ B−không phân biệt được.

IND(B|V ): Quan hệ B−không phân biệt được cảm sinh trên tập V .

[u]B: Lớp tương đương chứa u của quan hệ IND(B).

U/B: Tập hợp thương của quan hệ IND(B).

V /B: Tập hợp thương của quan hệ IND(B|V ).

BV : B−xấp xỉ dưới của V .

A = (U, A): Hệ thống thông tin.

BV : B−xấp xỉ trên của V .

T = (U, C ∪ D): Bảng quyết định.

POSB(D) : B−miền khẳng định của D.

Lower[B]/[D]: B−xấp xỉ dưới tương ứng với D của U .

Upper[B]/[D]: B−xấp xỉ trên tương ứng với D của U .

Boundary[B]/[D]: B−biên tương ứng với D của U .

k(R, D): Độ phụ thuộc của tập thuộc tính quyết định D vào tập con các thuộc

6

tính điều kiện R.

m(cj, R): Khả năng đóng góp của thuộc tính cj vào R.

B (cj): Số cặp đối tượng của V bằng nhau trên tập thuộc tính B nhưng khác

ωV

nhau tại thuộc tính cj.

B (D): Số cặp đối tượng của V bằng nhau trên tập thuộc tính B nhưng khác

ωV

nhau trên tập thuộc tính D.

ωV (cj): Số cặp đối tượng của V khác nhau tại thuộc tính cj.

ωB(cj): Số cặp đối tượng của U bằng nhau trên tập thuộc tính B nhưng khác

nhau tại thuộc tính cj.

ωB(D): Số cặp đối tượng của U bằng nhau trên tập thuộc tính B nhưng khác

nhau trên tập thuộc tính D.

: Y không phụ thuộc hàm vào X trên U .

X 6→ Y

X →/→ Y : Y không phụ thuộc đa trị vào X trên U .

X→V Y : Y phụ thuộc hàm vào X đúng trên tập con V ⊆ U .

X→→V Y : Y phụ thuộc đa trị vào X đúng trên tập con V ⊆ U .

X

α,β −→ Y : Y là (α, β)− phụ thuộc hàm vào X trên U .

X

α,β →→ Y : Y là (α, β)− phụ thuộc đa trị vào X trên U .

ωV (D): Số cặp đối tượng của V khác nhau trên tập thuộc tính D.

7

Danh sách bảng

1.2 Các triệu chứng của bệnh nhân. . . . . . . . . . . . . . . . . . . . . . 14

1.3 Bảng quyết định về bệnh cúm.

. . . . . . . . . . . . . . . . . . . . . 18

. . . . . . . . . 19

1.4 Bảng rút gọn thứ nhất của hệ thống bệnh cúm (R1).

. . . . . . . . . . 19

1.5 Bảng rút gọn thứ hai của hệ thống bệnh cúm (R2).

1.6 Dữ liệu bảng quyết định. . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.7 Ma trận phân biệt được M.

. . . . . . . . . . . . . . . . . . . . . . . 21

1.8 Bảng chọn ứng cử viên vào ngạch giảng dạy.

. . . . . . . . . . . . . . 24

1.9 Bảng dữ liệu.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.1 Bảng thông tin về các xe hơi.

. . . . . . . . . . . . . . . . . . . . . . 35

1.1 Bảng dữ liệu các đồ chơi. . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2 Bảng dữ liệu các đồ chơi. . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.3 Bảng chọn lựa giáo viên. . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.4 Bảng dữ liệu cho ví dụ rút gọn xấp xỉ. . . . . . . . . . . . . . . . . . 54

3.1 Bảng dữ liệu sinh viên. . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.2 Dữ liệu của hệ thống. . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.3 Bảng dữ liệu về các lập trình viên . . . . . . . . . . . . . . . . . . . . 80

8

3.4 Quan hệ tương tự trên Ib . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.5 Quan hệ tương tự trên Ic . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.6 Dữ liệu của hệ thống. . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

. . . . . . . . . . . . . . . . 83 3.7 Các quan hệ tương tự trên IX, IY và IZ.

3.8 Bảng dữ liệu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

. . . . . . . . . . . . . . . . . . 86 3.9 Các quan hệ tương tự trên IY và IZ.

9

Chương

PHẦN MỞ ĐẦU

Lý thuyết tập thô do Zdzisaw Pawlak [24] đề xuất vào những năm đầu thập

niên tám mươi của thế kỷ hai mươi đã được áp dụng ngày càng rộng rãi trong nhiều

lĩnh vực của khoa học máy tính. Lý thuyết tập thô được phát triển trên một nền

tảng toán học vững chắc và cung cấp những công cụ hữu ích để giải quyết các bài

toán phân lớp dữ liệu, phát hiện luật v.v... đặc biệt thích hợp đối với những bài

toán chứa dữ liệu mơ hồ không chắc chắn.

Mười lăm năm trở lại đây đã đánh dấu sự phát triển mạnh mẽ của lĩnh vực

khai phá dữ liệu và phát hiện tri thức trong cơ sở dữ liệu. Trong xu thế đó, nhiều

nhóm khoa học trên thế giới đã nghiên cứu, phát triển lý thuyết tập thô vào lĩnh vực

nghiên cứu và ứng dụng nổi bật này. Về phương diện nghiên cứu phát triển ứng dụng

lý thuyết tập thô vào các lĩnh vực như ngân hàng, tài chính, sinh học (biểu thị gen),

... có thể kể đến các công trình nghiên cứu [7, 8, 9, 10, 11, 12, 13, 18, 19, 20, 23, 27].

Về phương diện nghiên cứu phát triển mô hình và giải pháp theo tiếp cận tập thô

có thể kể đến các công trình [14, 26] quan tâm đến các bài toán tính toán lõi và rút

gọn, hoặc các công trình [15, 16, 17, 25, 31, 32] nghiên cứu tìm kiếm các ràng buộc

trong dữ liệu.

Lý thuyết tập thô cho phép trình diễn một mô hình hình thức về tri thức từ

bảng dữ liệu đơn thuần. Mô hình này được xác định như họ các mối quan hệ "không

10

phân biệt được", nhờ đó tri thức được định nghĩa một cách rõ ràng dưới dạng toán

học và có thể được phân tích và xử lý bằng những công cụ mạnh mẽ và hiệu quả

của toán học.

Trong lý thuyết tập thô, mô hình biểu diễn dữ liệu được trình bày thông qua hệ

thông tin hay bảng quyết định và ý tưởng chính trong việc phân tích dữ liệu xuất

phát từ khái niệm "không phân biệt được". Với cách tiếp cận như vậy, lý thuyết tập

thô cho phép phát hiện tri thức từ những bảng dữ liệu lớn với dữ liệu đa dạng, phức

Tri thức được biểu diễn dưới dạng các mẫu mô tả mối quan hệ bị che dấu trong

dữ liệu. Trong lý thuyết tập thô, chất lượng của thông tin được đo thông qua các

khái niệm xấp xỉ trên và xấp xỉ dưới. Nhằm thu hẹp nhiều nhất kích thước dữ liệu

đến miền thông tin chính xác, ý tưởng rút gọn được sử dụng để cho phép loại bỏ

những thông tin dư thừa, không cần thiết mà vẫn giữ được các tính chất xấp xỉ

cơ bản của hệ thống. Nếu tìm được những quy luật chung nhất biểu diễn dữ liệu,

người ta có thể tính toán độ mạnh của các thuộc tính hoặc độ phụ thuộc giữa chúng

trong hệ thông tin. Vì vâỵ vấn đề phát hiện luật theo tiếp cận tập thô được đặt ra

là hoàn toàn tự nhiên.

Mục tiêu của đề tài luận án là nghiên cứu khía cạnh đại số và logic của bài

toán phát hiện luật theo tiếp cận tập thô. Đây là một hướng nghiên cứu rất rộng,

bao gồm nhiều vấn đề đang được các nhà khoa học nghiên cứu xem xét. Luận án

tạp, chưa tinh lọc nhằm phát hiện ra những quy luật tiềm ẩn từ khối dữ liệu này.

chỉ tập trung vào hai vấn đề, một là tìm các tập rút gọn của bảng quyết định, hai

là vấn đề phát hiện các mối ràng buộc có trong dữ liệu. Cả hai vấn đề này đều được

phân tích và xem xét dựa vào các công cụ của lý thuyết tập thô mà nền tảng là

quan hệ "không phân biệt được".

Với mục tiêu đó, nội dung luận án được trình bày trong ba chương. Chương

Một trình bày một cách tổng quan về các khái niệm cơ bản trong lý thuyết tập thô

như là hệ thống thông tin, quan hệ không phân biệt được, xấp xỉ dưới, xấp xỉ trên,

bảng quyết định, rút gọn, lõi, ma trận phân biệt được. Các khái niệm liên quan tới

11

xấp xỉ cũng được giới thiệu sơ bộ trong chương này như hàm thành viên thô, phụ

thuộc hàm xấp xỉ, rút gọn xấp xỉ.

Chương Hai trình bày các thuật toán tìm tập rút gọn của bảng quyết định.

Các thuật toán này được chia làm hai nhóm. Nhóm thứ nhất bao gồm hai thuật

toán (Thuật toán 2.2 và Thuật toán 2.3) dựa vào khái niệm độ phụ thuộc của tập

thuộc tính quyết định vào tập con các thuộc tính điều kiện; và với khái niệm mới

này, chúng tôi đã đưa ra đánh giá về khả năng đóng góp của một thuộc tính khi

tham gia đóng vai trò thành viên của tập rút gọn. Nhóm thứ hai chỉ bao gồm một

phân biệt được, tuy nhiên ở đây, các phần tử của ma trận (là các tập hợp) không

hề được tính toán. Thay vào đó, chúng tôi phân tích các đối tượng có giá trị quyết

định khác nhau có mối tương quan như thế nào đối với các giá trị trên tập thuộc

tính điều kiện. Trên cơ sở đó, chúng tôi đã đưa ra tiêu chuẩn của tập rút gọn dựa

vào số cặp đối tượng phân biệt được bởi một tập các thuộc tính. Cả ba thuật toán

được xây dựng trong chương này đều là các thuật toán heuristic và có độ phức tạp

tính toán theo thời gian là đa thức, do đó có thể áp dụng được trên bảng dữ liệu

với kích thước lớn.

Nội dung của Chương Ba tập trung vào vấn đề thứ hai liên quan tới khái niệm

phụ thuộc trong lý thuyết cơ sở dữ liệu quan hệ. Cụ thể là, trong chương này chúng

tôi khảo sát các phụ thuộc hàm và phụ thuộc đa trị tiềm ẩn trong bảng dữ liệu có

thuật toán (Thuật toán 2.4) tìm tập rút gọn dựa theo ý tưởng xây dựng ma trận

sẵn. Để kiểm chứng phụ thuộc đa trị đúng trên tập các đối tượng, chúng tôi đã mô

tả đặc trưng của phụ thuộc đa trị bằng một họ các ma trận phụ thuộc. Do dữ liệu

trong thực tế thường rất lớn và có thể bị nhiễu, nên các phụ thuộc đúng tiềm ẩn

trong dữ liệu có thể khó phát hiện. Vì vậy chúng tôi đã nghiên cứu các phụ thuộc đa

trị đúng trên hầu hết các đối tượng trong bảng, gọi là phụ thuộc xấp xỉ, đồng thời

ma trận phụ thuộc. Phần cuối của Chương Ba, chúng tôi xây dựng các phụ thuộc

đưa ra đánh giá về sai số của phụ thuộc dựa vào khái niệm độ dầy đặc của họ các

hàm và phụ thuộc đa trị mở rộng bằng cách thay quan hệ bằng nhau trên các giá

12

trị thuộc tính bởi quan hệ tương tự. Một điều khá thú vị là các phụ thuộc mở rộng

này cũng được đặc trưng bởi họ các ma trận phụ thuộc tương ứng.

Chương Chương 1.

CÁC KHÁI NIỆM CƠ BẢN

1.1. Giới thiệu

Ngay từ khi xuất hiện, lý thuyết tập thô do Zdzisaw Pawlak [24] khởi xướng

vào những năm đầu thập niên tám mươi của thế kỷ hai mươi đã ngay lập tức thu

hút sự quan tâm của nhiều nhà nghiên cứu và thực nghiệm trên toàn thế giới. Khả

năng ứng dụng trong nhiều lĩnh vực khác nhau cho thấy vai trò quan trọng của lý

thuyết này trong việc nghiên cứu và ứng dụng công nghệ thông tin trong thời đại

mới.

Lý thuyết tập thô có thể được xem xét theo hai phương diện là mô hình và thực

hành. Theo phương diện mô hình, lý thuyết tập thô cho một cách tiếp cận mới cho

tính mơ hồ. Các khái niệm mơ hồ được đặc trưng bởi một "miền biên" chứa tất cả

các phần tử mà không thể gộp vào miền các đối tượng quan sát hoặc phần bù của

miền này. Lý thuyết tập thô được nghiên cứu và phát triển nhằm hiểu tốt hơn ý

tưởng của tính mơ hồ. Nó cũng xét đến một vài ý tưởng của Gottfried Leibniz (tính

(các logic đa trị) và Thomas Bayes (suy luận quy nạp). Về phương diện thực hành,

không phân biệt được), George Boole (các phương pháp suy luận), Jan Lukasiewicz

lý thuyết tập thô là ý tưởng nền tảng cho trí tuệ nhân tạo và khoa học nhận thức,

đặc biệt cho học máy, phát hiện tri thức, phân tích quyết định, suy luận quy nạp

14

và nhận dạng mẫu. Nó là rất quan trọng cho các nghiên cứu về hệ trợ giúp quyết

định và khai phá dữ liệu. Thực tế tiếp cận lý thuyết tập thô là một cách tiếp cận

mới cho việc phân tích dữ liệu.

Bản chất toán học chặt chẽ làm cho các nội dung cơ sở của lý thuyết tập thô có

thể được nắm bắt và ứng dụng một cách dễ dàng. Các hệ thống phần mềm sử dụng

lý thuyết tập thô (điển hình như ROSETTA) đã được cài đặt và nhiều ứng dụng

quan trọng trong đời sống của phương pháp luận này đã được xây dựng, chẳng hạn

Bản chất toán học chặt chẽ làm cho lý thuyết này không mâu thuẫn mà còn

bổ sung cho các phương pháp đã có và dĩ nhiên cũng có thể được sử dụng đồng thời

với các cách tiếp cận khác.

Mục đích chính của sự phân tích tập thô là đưa ra các tập xấp xỉ để biểu diễn

các đối tượng không thể được phân lớp một cách chắc chắn bằng cách dùng tri thức

có sẵn. Theo cách tiếp cận của lý thuyết tập thô, mọi tập thô được liên kết với hai

tập "rõ" là xấp xỉ dưới và xấp xỉ trên của nó. Xấp xỉ dưới bao gồm các đối tượng

chắc chắn thuộc, còn xấp xỉ trên chứa tất cả các đối tượng có khả năng thuộc về

tập đó. Các tập xấp xỉ là cơ sở để đưa ra các kết luận từ dữ liệu.

1.2. Hệ thống thông tin và tập thô

1.2.1. Hệ thống thông tin

trong y học, dược học, kỹ thuật, ngân hàng, nhận dạng mẫu, biểu thị gien v.v...

Hệ thống thông tin là một cặp A = (U , A), với U là tập hữu hạn, khác rỗng,

được gọi là tập vũ trụ các đối tượng và A là tập hữu hạn khác rỗng các thuộc tính.

Với mỗi u ∈ U và a ∈ A, ta ký hiệu u(a) là giá trị của đối tượng u tại thuộc tính a.

Nếu gọi Ia là tập tất cả các gía trị của thuộc tính a, thì u(a) ∈ Ia với mọi u ∈ U .

Bây giờ, nếu B = {b1, b2, · · · , bk} ⊆ A là một tập con các thuộc tính thì ta sẽ ký

hiệu bộ các giá trị u(bi) bởi u(B). Như vậy, nếu u và v là hai đối tượng, thì ta sẽ

15

1.2.2. Quan hệ không phân biệt được

viết u(B) = v(B) nếu u(bi) = v(bi), với mọi i = 1, · · · , k.

Cho hệ thống thông tin A = (U, A). Với mỗi tập con các thuộc tính B ⊆ A,

tồn tại một quan hệ hai ngôi trên U , ký hiệu IND(B), xác định bởi:

IND(B) = {(u, v) ∈ U × U | u(B) = v(B)}.

IND(B) được gọi là quan hệ B−không phân biệt được. Dễ kiểm chứng được rằng

hệ tương đương trên V , cảm sinh bởi IND(B), tức là:

IND(B|V ) = {(u, v) ∈ V × V | u(B) = v(B)}.

Nếu (u, v) ∈ IND(B) thì hai đối tượng u và v không phân biệt được bởi các

thuộc tính trong B. Lớp tương đương chứa phần tử u được ký hiệu [u]B. Khi đó

quan hệ IND(B) được xác định hoàn toàn bởi các lớp tương đương [u]B, u ∈ U . Tập

hợp thương của quan hệ IND(B) được ký hiệu [IND(B)] hay đơn giản là U/B, tức

là [IND(B)] = U/B = {[u]B | u ∈ U } và tập hợp thương của quan hệ IND(B|V ) là

[IND(B|V )] hay V /B.

Ví dụ 1.1. Xét tập 10 đồ chơi với các thuộc tính: Màu sắc, Kích thước, Hình dáng

được cho trong Bảng 1.1. Lúc đó

đây là một quan hệ tương đương trên U . Với V ⊆ U , ta ký hiệu IND(B|V ) là quan

U /{Màu sắc} = {{u1, u2, u6, u10}, {u3, u5, u9}, {u4, u7, u8}}

U /{Kích thước} = {{u1, u5, u8, u9}, {u3, u4, u10}, {u2, u6, u7}}

U /{Hình dáng} = {{u1, u2, u6, u10}, {u3, u4, u9}, {u5, u7, u8}}

U /{Màu sắc, Hình dáng} = {{u1, u2, u6, u10}, {u3, u9}, {u4}, {u5}, {u7, u8}}

Như vậy các đồ chơi u1, u2 không phân biệt được về màu sắc và hình dáng,

nhưng phân biệt được về kích thước. Tương tự, các đồ chơi u3, u4 không phân biệt

nhau về kích thước và hình dáng, nhưng phân biệt được về màu sắc, v.v...

16

U Màu sắc Kích thước Hình dáng

To Tròn Xanh u1

Nhỏ Tròn Xanh u2

Vừa Vuông Vàng u3

Vừa Vuông Đỏ u4

To Tam giác Vàng u5

Nhỏ Tròn Xanh u6

Nhỏ Tam giác Đỏ u7

To

Vuông

Vàng

u9

Vừa

Tròn

Xanh

u10

Bảng 1.1: Bảng dữ liệu các đồ chơi.

1.2.3. Các tập xấp xỉ

Cho hệ thống thông tin A = (U, A), B ⊆ A và V ⊆ U . Với các tri thức được

cho bởi tập thuộc tính B, liệu chúng ta có thể biểu diễn tập đối tượng V bằng các

tri thức có sẵn này hay không? Hay nói cách khác, với một tập thuộc tính B cho

trước, chúng ta có các lớp tương đương của quan hệ IND(B), thế thì một tập đối

tượng V có thể diễn đạt thông qua các lớp tương đương này như thế nào? Trong lý

To Tam giác Đỏ u8

thuyết tập thô, để biểu diễn V bằng tri thức có sẵn B người ta xấp xỉ chúng bởi

hợp của một số hữu hạn các lớp tương đương của IND(B). Có hai cách xấp xỉ: Cách

thứ nhất là cho tương ứng bởi "miền trong" và cách thứ hai có thể xấp xỉ bởi "bao

đóng" của V . Hai giá trị xấp xỉ này được gọi tương ứng là B−xấp xỉ dưới và B−xấp

xỉ trên của V , ký hiệu lần lượt là BV và BV , cụ thể các tập xấp xỉ này được xác

định như sau

BV = {u ∈ U | [u]B ⊆ V },

BV = {u ∈ U | [u]B ∩ V 6= ∅}.

17

Với các xấp xỉ trên, ta gọi B−miền biên của V là tập BNB(V ) = BV \ BV

và B−miền ngòai của V là tập U \ BV . Dễ thấy B−miền biên của V là tập chứa

các đối tượng không chắc chắn thuộc hay không thuộc V , còn B−miền ngòai của V

chứa các đối tượng chắc chắn không thuộc V . Với ký hiệu tập thương của quan hệ

tương đương IND(B) trên U là U/B, các xấp xỉ trên và dưới của V có thể viết lại:

BV = ∪{W ∈ U/B | W ⊆ V },

Bây giờ nếu B, D ⊆ A, ta sẽ gọi B−miền khẳng định của D là tập được xác

định như sau

BV = ∪{W ∈ U/B | W ∩ V 6= ∅}.

(BV ).

POSB(D) =

V ∈U/D

Rõ ràng POSB(D) là tập tất cả đối tượng u sao cho với mọi v ∈ U mà u(B) =

v(B) ta đều có u(D) = v(D). Nói cách khác, POSB(D) = {u ∈ U | [u]B ⊆ [u]D}.

Ví dụ 1.2. Xét hệ thống thông tin biểu diễn các triệu chứng cúm của các bệnh

nhân cho ở Bảng 1.2.

U Đau đầu Thân nhiệt Cảm cúm

Bình thường

Không

u1

Cao

u2

[

Có Rất cao Có u3

Không Bình thường Không u4

Không Cao Không u5

Không Rất cao Có u6

Không Cao Có u7

Không Rất cao Không u8

Bảng 1.2: Các triệu chứng của bệnh nhân.

18

Các lớp không phân biệt được bởi B = {Đau đầu, Thân nhiệt } là: {u1}, {u2}, {u3},

{u4}, {u5, u7}, {u6, u8}. Đặt V = {u | u(Cảm cúm) = Có} = {u2, u3, u6, u7}. Lúc

đó,

BV = {u2, u3} và BV = {u2, u3, u6, u7, u5, u8}. Như vậy, B−miền biên của V

là tập hợp BNB(V ) = {u5, u6, u7, u8}. Nếu đặt D = {Cảm cúm} thì

U/D = {V1 = {u1, u4, u5, u8} ; V2 = {u2, u3, u6, u7}},

[

BV1 = {u1, u4} ; BV2 = {u2, u3},

V ∈U/D

1.2.4. Các tính chất của xấp xỉ

Định lý 1.1. [24] Cho V ⊆ U và B ⊆ A. Khi đó:

a) BV ⊆ V ⊆ BV.

b) B∅ = B∅ = ∅, BU = BU = U.

c) B(V ∪ W ) = BV ∪ BW.

d) B(V ∪ W ) ⊇ BV ∪ BW.

e) V ⊆ W ⇒ BV ⊆ BW và BV ⊆ BW.

(BV ) = {u1, u2, u3, u4}. POSB(D) =

f) B(V ∩ W ) = BV ∩ BW.

g) B(V ∩ W ) ⊆ BV ∩ BW.

h) B(U \ V ) = U \ BV.

i) B(U \ V ) = U \ BV.

j) B(BV ) = B(BV ) = BV.

k) B(BV ) = B(B(V ) = BV.

19

Với các khái niệm của tập xấp xỉ đối với phân hoạch IND(B), các tập thô được

chia thành bốn lớp cơ bản:

1) Tập V là B−xác định thô nếu BV 6= ∅ và BV 6= U.

2) Tập V là B−không xác định trong nếu BV = ∅ và BV 6= U.

3) Tập V là B−không xác định ngòai nếu BV 6= ∅ và BV = U.

1.2.5. Độ chính xác của xấp xỉ

Với mỗi B ⊆ A và V ⊆ U , đại lượng đo lường sự chính xác của xấp xỉ tập V

đối với phân hoạch trên B là giá trị

αB(V ) =

Card(BV ) Card(BV )

Rõ ràng 0 ≤ αB(V ) ≤ 1. Nếu αB(V ) = 1, ta nói V là chính xác đối với B, còn

nếu αB(V ) < 1, V được gọi là thô đối với B.

1.3. Bảng quyết định

4) Tập V là B− không xác định hoàn tòan nếu BV = ∅ và BV = U.

Một lớp đặc biệt của các hệ thống thông tin có vai trò quan trọng trong nhiều

ứng dụng là bảng quyết định. Bảng quyết định là một hệ thống thông tin T với tập

thuộc tính A được chia thành hai tập khác rỗng rời nhau C và D, lần lượt được gọi

là tập thuộc tính điều kiện và tập thuộc tính quyết định. Tức là T = (U, C ∪ D) với

C ∩ D = ∅. Trong trường hợp không sợ bị nhầm lẫn, người ta ký hiệu T = (C, D).

Bảng quyết định là mô hình thường gặp trong thực tế, khi mà giá trị dữ liệu tại

các thuộc tính điều kiện có thể cung cấp cho ta thông tin về giá trị của thuộc tính

quyết định. Bảng quyết định được gọi là nhất quán nếu D phụ thuộc hàm vào C,

20

tức là với mọi u, v ∈ U , u(C) = v(C) kéo theo u(D) = v(D). Ngược lại thì gọi là

không nhất quán hay mâu thuẫn.

Dễ thấy bảng quyết định là nhất quán khi và chỉ khi POSC(D) = U . Trong

trường hợp bảng không nhất quán thì POSC(D) chính là tập hợp con cực đại của

1.3.1. Rút gọn và lõi

U sao cho phụ thuộc hàm C → D đúng.

Thuộc tính lõi, thuộc tính rút gọn và thuộc tính không cần thiết. Thuộc tính lõi là

thuộc tính cốt yếu, không thể thiếu trong việc phân hoạch chính xác tập dữ liệu.

Thuộc tính không cần thiết là những thuộc tính dư thừa; nghĩa là có thể loại bỏ

một thuộc tính như vậy (không phải tất cả!) mà không ảnh hưởng đến việc phân

lớp dữ liệu. Thuộc tính của tập rút gọn nằm giữa hai tập thuộc tính trên, với một

tổ hợp thuộc tính nào đó, nó là thuộc tính dư thừa và với một tổ hợp các thuộc tính

khác nó có thể là cốt yếu.

Chúng ta sẽ đưa ra các định nghĩa chính xác trong phần tiếp theo.

Cho T = (U, C ∪D) là một bảng quyết định, thuộc tính c ∈ C được gọi là không cần thiết trong bảng quyết định T nếu POSC(D) = POS(C\{c})(D). Nói cách khác,

c ∈ C là không cần thiết khi và chỉ khi trên POSC(D) phụ thuộc hàm C \ {c} → D

Trong bảng quyết định, các thuộc tính điều kiện được phân thành ba nhóm:

nghiệm đúng; ngược lại, c được gọi là cần thiết.

Bảng quyết định T được gọi là độc lập nếu mọi thuộc tính c ∈ C đều cần thiết.

Tập tất cả các thuộc tính cần thiết trong T được gọi là lõi và được ký hiệu Core(C).

Lúc đó, một thuộc tính cần thiết còn được gọi là thuộc tính lõi.

Tập các thuộc tính R ⊆ C được gọi là một rút gọn của tập thuộc tính điều kiện C nếu T0 = (U, R ∪ D) là độc lập và POSR(D) = POSC(D). Nói cách khác, R

là tập rút gọn nếu nó là tập tối tiểu thỏa mãn POSR(D) = POSC(D). Rõ ràng là

có thể có nhiều tập rút gọn của C. Ta ký hiệu Red(C) là tập tất cả các rút gọn của

21

C trong T. Một thuộc tính là cần thiết khi và chỉ khi nó thuộc vào mọi tập rút gọn

\

của C. Điều đó được thể hiện trong mệnh đề sau.

R∈ Red(C)

Mệnh đề 1.2. [11, 26, 28] Core(C) = R.

Ví dụ 1.3. Xét bảng quyết định về bệnh cúm cho ở Bảng 1.3. Bảng này có hai

tập rút gọn là R1 ={Đau cơ, Thân nhiệt} và R2= {Đau đầu, Thân nhiệt}. Như vậy

tập lõi là Core= {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 là, từ bảng dữ liệu, có

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}).

U Đau đầu Đau cơ Thân nhiệt Cảm cúm

Bình thường

Không

u1

Cao

u2

Rất cao

u3

Không

Bình thường

Không

u4

Không

Không

Cao

Không

u5

Không

Rất cao

u6

thể loại bỏ một trong hai thuộc tính này mà vẫn chẩn đoán đúng bệnh. Tức là

1.3.2. Ma trận và hàm phân biệt được

Bảng 1.3: Bảng quyết định về bệnh cúm.

Xét bảng quyết đinh T = (U, C ∪ D) với U = {u1, u2, · · · , un}. Ma trận phân biệt được của T, ký hiệu M (T) = (mij)n×n, là một ma trận đối xứng mà mỗi phần

22

U Đau cơ Thân nhiệt Cảm cúm

Cao

u2

Rất cao

u3, u6 Có

Không Cao

Không

u5

Bảng 1.4: Bảng rút gọn thứ nhất của hệ thống bệnh cúm (R1).

U Đau đầu Thân nhiệt

Cảm cúm

Bình thường Không

u1 Có

Cao

u2 Có

Rất cao

u3 Có

Bình thường Không

u4 Không

Cao

Không

u5 Không

Rất cao

u6 Không

Bình thường Không u1, u4 Có

Bảng 1.5: Bảng rút gọn thứ hai của hệ thống bệnh cúm (R2).

23

d U c1 c2 c3 c4

0 2 1 1 1 u1

0 2 1 0 1 u2

2 0 2 0 1 u3

2 2 0 1 1 u4

1 0 2 0 2 u5

1 1 2 0 2 u6

1 2 1 1 2 u7

tử của nó là một tập hợp các thuộc tính được xác định như sau [24, 26, 27, 28]

nếu ui(D) = uj(D),

Bảng 1.6: Dữ liệu bảng quyết định.

mij =

  ∅

{c ∈ C | ui(c) 6= uj(c)} nếu ui(D) 6= uj(D).

Như vậy, mij là tập hợp gồm tất cả thuộc tính điều kiện có thể xếp các đối tượng

ui và uj vào các lớp tương đương khác nhau đối với quan hệ không phân biệt được

trên mỗi thuộc tính của tập thuộc tính này. Hay nói cách khác hai đối tượng ui và

uj mà ui(D) 6= uj(D) có thể phân biệt với nhau bởi một thuộc tính bất kỳ trong tập

mij. Nếu mij = ∅ thì ui và uj bằng nhau trên tập thuộc tính D hoặc, trong trường

hợp bảng quyết định đã cho là không nhất quán, hai đối tượng ui và uj có cùng giá



trị trên tập thuộc tính điều kiện nhưng khác nhau trên tập thuộc tính quyết định.

Ví dụ 1.4. Cho bảng quyết định như trong Bảng 1.6 với tập thuộc tính điều kiện

C = {c1, c2, c3, c4} và tập thuộc tính quyết định D = {d}. Ta có ma trận phân biệt

được tương ứng cho trong Bảng 1.7. Chú ý rằng, đây là ma trận đối xứng nên chúng

ta chỉ trình bày ma trận tam giác dưới.

Do bảng quyết định trong ví dụ này là nhất quán, nên m12 = ∅ trong Bảng 1.7

cho thấy hai đối tượng u1 và u2 có cùng giá trị quyết định (u1(d) = u2(d) = 1) hay

24

U u4 u5 u6 u7 u1 u2 u3

∅ u1

∅ ∅ u2

∅ {c2, c3, c4} {c2, c3} u3

∅ {c2} {c2, c4} u4 {c3, c4}

∅ ∅ {c1, c2, c3, c4} {c1, c2, c3} u5 {c1, c2, c3, c4}

∅ ∅ ∅ {c1, c2, c3, c4} {c1, c2, c3} u6 {c1, c2, c3, c4}

Bảng 1.7: Ma trận phân biệt được M.

nói cách khác u1 và u2 cùng thuộc một lớp tương đương của phân hoạch IND(D).

Trong khi đó m32 = {c2, c3}, điều này nói lên rằng hai đối tượng u2 và u3 có

giá trị quyết định khác nhau và chúng có thể phân biệt với nhau bởi các thuộc

tính c2 hoặc c3 nhưng không phân biệt được bởi các thuộc tính c1, c4. Thật vậy,

u2(d) = 1 6= 2 = u3(d) và u2(c2) = 0 6= 2 = u3(c2), u2(c3) = 2 6= 0 = u3(c3),

u2(c1) = u3(c1) = 1, u2(c4) = u3(c4) = 0.

Để tìm tập rút gọn dựa vào ma trận phân biệt được, người ta đưa vào khái

niệm hàm phân biệt được fT [18, 27] được xác định như sau

∅ ∅ ∅ u7 {c1, c2, c3, c4} {c1, c2} {c3, c4} {c3, c4}

fT(ui) =

mij , với mỗi ui ∈ U ,

j6=i

^ _

trong đó, mỗi thuộc tính cho tương ứng một biến logic cùng tên và

(1) W mij là biểu thức tuyển của tất cả các biến c ∈ mij, nếu mij 6= ∅.

(2) W mij = true nếu mij = ∅ và ui(D) = uj(D).

(3) W mij = f alse nếu mij = ∅ và ui(D) 6= uj(D).

Như vậy fT(ui) chứa những bộ thuộc tính có thể phân biệt ui với các đối tượng khác trong T. Do đó, V fT(ui) sẽ xác định tất cả các rút gọn của bảng quyết định.

Trong ví dụ trên ta có

^

_

25

j6=1

W m12 = T rue;

W m13 = c2 ∨ c3 ∨ c4;

W m14 = c2;

W m15 = c1 ∨ c2 ∨ c3 ∨ c4;

W m16 = c1 ∨ c2 ∨ c3 ∨ c4;

W m17 = T rue. Vì vậy,

fT(u1) = m1j, trong đó

T rue

c2

(c1 ∨ c2 ∨ c3 ∨ c4)

(c1 ∨ c2 ∨ c3 ∨ c4)

fT(u1) = T rue

(c2 ∨ c3 ∨ c4) ^ ^

c2

(c1 ∨ c2 ∨ c3 ∨ c4)

= (c2 ∨ c3 ∨ c4)

= c2.

Tính toán tương tự ta có

fT(u2) = c2

^ ^ ^ ^ ^

fT(u3) = c3

W(c3 ∧ c4),

fT(u4) = (c2 ∧ c3) W(c2 ∧ c4),

fT(u5) = c3

W(c2 ∧ c4),

fT(u6) = c3

W(c1 ∧ c4) W(c2 ∧ c4),

_

W(c1 ∧ c4) W(c2 ∧ c4),

i

fT(u7) = (c1 ∧ c3) W(c1 ∧ c4) W(c2 ∧ c3) W(c2 ∧ c4), ^ fT(ui) = (c2 ∧ c3) (c2 ∧ c4).

Từ đây chúng ta nhận được hai tập rút gọn của bảng quyết định trên là R1 =

{c2, c3}; R2 = {c2, c4} và tập lõi là Core = {c2}.

1.3.3. Luật quyết định

26

Một công cụ cũng thường được sử dụng để nghiên cứu bảng quyết định là luật

quyết định. Cụ thể, cho T = (U, C ∪ D) là một bảng quyết định, với mỗi u ∈ U ,

chúng ta cho tương ứng một hàm du : C ∪ D → V xác định bởi du(a) = u(a), với mỗi a ∈ C ∪ D. Hàm du được gọi là một luật quyết định (trong T) và u được xem

như là nhãn của luật quyết định đó [20].

Nếu du là một luật quyết định thì thu hẹp của du trên C, ký hiệu du|C, và thu

luật du.

Rõ ràng, bảng quyết định T là nhất quán khi và chỉ khi, với mọi cặp đối tượng

u 6= v, du|C = dv|C kéo theo du|D = dv|D.

Ví dụ 1.5. Xét bảng quyết định chọn các ứng cử viên vào ngạch giảng viên của

một trường đại học dựa vào các thông tin của họ với các thuộc tính điều kiện: c1

(Trình độ chuyên môn), c2 (Yêu thích nghề giảng viên), c3 (Khả năng giảng dạy) và

thuộc tính quyết định d được cho trong Bảng 1.8.

Các luật quyết định có thể có:

du1: Trình độ chuyên môn Tốt, Yêu nghề Có, Khả năng giảng dạy Có thể thì

có được quyết định Chấp nhận

du2: Trình độ chuyên môn Trung bình, Yêu nghề Có, Khả năng giảng dạy

hẹp của du trên D, ký hiệu du|D, được gọi tương ứng là điều kiện và quyết định của

Bình thường thì có được quyết định Có thể Chấp nhận

· · ·

du9: Trình độ chuyên môn Tốt, Yêu nghề Không, Khả năng giảng dạy Không

thể thì có được quyết định Có thể Từ chối

Dễ thấy bảng quyết định trên là không nhất quán vì có hai đối tượng u1 và u4

có du1|C = du4|C nhưng du1|D 6= du4|D.

Từ định nghĩa ta thấy ngay rằng một bảng quyết định có thể được đặc trưng

27

d U c3 c2 c1

Có thể Chấp nhận Có u1 Tốt

Bình thường Có thể chấp nhận u2 Trung bình Có

Không Bình thường Từ chối u3 Kém

Có Có thể Có thể chấp nhận u4 Tốt

Có thể từ chối u5 Trung bình Không Không thể

Có Bình thường Chấp nhận u6 Xuất sắc

Có Không thể Có thể từ chối u7 Xuất sắc

Không Không thể

Có thể từ chối

u9 Tốt

Bảng 1.8: Bảng chọn ứng cử viên vào ngạch giảng dạy.

hoàn toàn bởi hệ các luật quyết định của nó. Tuy vậy, các bảng quyết định trong

thực tế thường lưu trữ một khối lượng lớn các đối tượng, và do đó hệ luật quyết

định tương ứng cũng sẽ rất lớn. Vấn đề đặt ra là làm thế nào có thể đặc trưng được

bảng quyết định bằng một hệ con các luật quyết định. Việc rút gọn dữ liệu, tức

là tìm tập rút gọn của tập thuộc tính điều kịên chính là một trong những cách để

giải quyết vấn đề này. Các đối tượng trong cùng một lớp tương đương của quan hệ

IND(R), với R là một rút gọn của tập thuộc tính điều kiện C sẽ có cùng quyết định

như nhau. Vì vậy, chúng ta chỉ sử dụng các luật du, tương ứng với các đối tượng u thoả mãn [u]R ∈ IND(R), là đủ để quan sát bảng quyết định T.

1.4. Phụ thuộc xấp xỉ

1.4.1. Hàm thành viên thô

Không Không thể Từ chối u8 Kém

Cho hệ thống thông tin A = (U, A), tập con các thuộc tính B ⊆ A và tập con

các đối tượng V ⊆ U . Với mỗi đối tượng u ∈ U , người ta cần xác định mức độ giao

28

nhau giữa lớp tương đương chứa u trong phân hoạch IND(B) với V . Giá trị này

V (u) và được định

được gọi là giá trị của hàm thành viên thô của V tại u, ký hiệu µB

nghĩa như sau

; ∀u ∈ U. µB V (u) = µB V : U → [0, 1], Card([u]B ∩ V ) Card([u]B)

Hàm thành viên thô có thể được giải thích như là xác suất có điều kiện của đối

tượng u thuộc vào tập V khi các thông tin của đối tượng u liên quan đến tập thuộc

Một cách hình thức, người ta có thể mở rộng các khái niệm xấp xỉ trên và xấp

xỉ dưới tương ứng với một độ chính xác α ∈ (0.5, 1] bằng cách sử dụng hàm thành

viên thô:

BαV = {u ∈ U | µB

V (u) ≥ α},

BαV = {u ∈ U | µB

V (u) > 1 − α}.

Rõ ràng các khái niệm xấp xỉ trên và xấp xỉ dưới nguyên thủy là trường hợp

đặc biệt của định nghĩa này ứng với giá trị α = 1.

1.4.2. Phụ thuộc hàm xấp xỉ

Dữ liệu trong thực tế thường rất lớn và đa dạng, vì vậy, để nắm bắt được các

tính B đã biết. Hàm này cũng phản ảnh độ chắc chắn của quan hệ u ∈ V.

quy luật biến đổi trong dữ liệu, chúng ta thường phải phân tích một cách tường

tận quan hệ giữa các dữ liệu với nhau. Một trong những quan hệ đóng vai trò quan

trọng cho bài toán khai phá dữ liệu là sự phụ thuộc giữa các thuộc tính của dữ liệu.

Trong phần này chúng ta sẽ đề cập đến sự phụ thuộc này một cách tổng quát.

Cho X và Y là các tập con của tập thuộc tính của A. Ta nói rằng độ phụ thuộc

của Y vào X là k và ký hiệu X →k Y , nếu:

k = γ(X, Y ) := Card(POSX(Y )) Card(U )

29

X

Hay

V ∈ U/Y

k = Card(X(V )) Card(U )

Khi k < 1, ta nói rằng Y phụ thuộc một phần vào X (với độ phụ thuộc k). Khi

k = 1, Y được gọi là phụ thuộc hoàn toàn vào X, và ký hiệu đơn giản X → Y . Rõ

ràng, Y phụ thuộc hoàn toàn vào X nếu phụ thuộc hàm X xác định Y đúng trên

bảng dữ liệu đã cho, tức là, với mọi cặp đối tượng u, v ∈ U, u(X) = v(X) suy ra

u(Y ) = v(Y ). Vì vậy trong trường hợp k < 1, chúng ta cũng nói rằng tồn tại phụ

Ví dụ 1.6. Xét hệ thống thông tin với tập thuộc tính A = {a, b, c} và U gồm chín

đối tượng cho bởi Bảng 1.9.

U

a b

c

1

1

1

u1

1

2

2

u2

2

1

1

u3

2

2

2

u4

3

3

3

u5

3

1

3

u6

1

3

3

u7

3

3

2

u8

thuộc hàm xấp xỉ X xác định Y trên U với sai số (cid:15) = 1 − k.

3 2 2 u9

Bảng 1.9: Bảng dữ liệu.

Đặt X = {a, b}; Y = {c}; Z = {b}. Ta có:

U/X = {{u1}, {u2}, {u3}, {u4}, {u5}, {u6}, {u7}, {u8}, {u9}}

U/Y = {V1, V2, V3}; V1 = {u1, u3}; V2 = {u2, u4, u9}; V3 = {u5, u6, u7, u8};

U/Z = {W1, W2, W3}; W1 = {u1, u3, u6}; W2 = {u2, u4, u9}; W3 = {u5, u7, u8}.

30

Vì XV1 = V1, XV2 = V2, XV3 = V3, nên γ(X, Y ) = 1, và do đó, Y phụ thuộc

hòan tòan vào X.

Tính toán tương tự, ta được ZV1 = ∅; ZV2 = {u2, u4, u9} và ZV3 = {u5, u7, u8}.

Từ đó suy ra γ(Z, Y ) = = hay Y phụ thuộc vào Z với độ phụ thuộc là . 6 9 2 3 2 3

Định lý sau cho ta mối quan hệ giữa tính chất của phụ thuộc với các tập xấp

xỉ

a) X → Y .

b) U/(X ∪ Y ) = U/X.

c) POSX(Y ) = U .

d) XV = V, với mọi V ∈ U/Y .

Chứng minh.

(a ⇒ b) Với mỗi V ∈ U/(X ∪ Y ), tồn tại W ∈ U/X sao cho V ⊆ W . Ta sẽ

chứng minh W = V . Thật vậy, giả sử tồn tại u ∈ W và u 6∈ V . Lấy v ∈ V ⇒ v ∈

W ⇒ u(X) = v(X). Vì X → Y nên u(Y ) = v(Y ) suy ra u(X ∪ Y ) = v(X ∪ Y ) :

vô lý vì u 6∈ V . Vậy V = W ∈ U/X. Vì điều này đúng với mọi V ∈ U/(X ∪ Y ) nên

Định lý 1.3. [24] Những mệnh đề sau là tương đương

U/(X ∪ Y ) = U/X.

(b ⇒ c) Rõ ràng POSX(Y ) ⊆ U . Vì vậy chỉ cần chứng minh U ⊆ POSX(Y ).

Với mỗi u ∈ U , đặt V = [u]Y ⊇ [u]X∪Y = [u]X suy ra [u]X ⊆ XV ⊆ POSX(Y ) hay

u ∈ POSX(Y ).

[

(c ⇒ d) Ta có XV ⊆ V . Bây giờ ta chứng minh V ⊆ XV với mọi V ∈ U/Y .

W ∈ U/Y

XW do đó tồn tại W ∈ Thật vậy, với mọi u ∈ V ⊆ U ⇒ u ∈ POSX(Y ) =

U/Y sao cho u ∈ XW . Rõ ràng V = [u]Y = W , vậy u ∈ XV. Suy ra V ⊆ XV.

31

(d ⇒ a) Với mọi cặp đối tượng u, v ∈ V ∈ U/X, đặt W1 = [u]Y và W2 = [v]Y .

Khi đó, XW1 = W1 và XW2 = W2. Vì u ∈ XW1 = W1 nên [u]X ⊆ W1, tương tự

[v]X ⊆ W2. Suy ra W1 = W2 hay u(Y ) = v(Y ). Vậy X → Y .

Bằng kỹ thuật chứng minh tương tự, chúng ta cũng dễ dàng kiểm chứng định

lý sau

Định lý 1.4. [24] Cho X, X 0, Y, Y 0, Z và Z 0 là các tập con các thuộc tính. Khi đó:

b) Nếu X → Y và Y 0 ⊆ Y thì X → Y 0.

c) Nếu X → Y và Y → Z thì X → Z.

d) Nếu X → Z và Y → Z thì X ∪ Y → Z.

e) Nếu X → Y ∪ Z và X → Y thì X → Z.

f) Nếu X → Y và Y ∪ Z → Z 0 thì X ∪ Z → Z 0.

g) Nếu X → Y và Z → Z 0 thì X ∪ Z → Y ∪ Z 0.

1.4.3. Rút gọn xấp xỉ

Cơ sở dữ liệu thường chứa một số thuộc tính dư thừa, là những thuộc tính

a) Nếu X → Y và X 0 ⊇ X thì X 0 → Y.

không cần thiết đối với sự khai phá luật. Sự có mặt của các thuộc tính dư thừa làm

cho độ phức tạp tính toán của bài toán khai phá luật rất lớn và số lượng luật được

phát hiện sẽ bị hạn chế.

Việc loại bỏ các thuộc tính dư thừa cũng tương đương với việc chọn những

thuộc tính nào để lại là phù hợp nhất. Đây là một trong những vấn đề quan trọng

trong học máy và nhận dạng mẫu. Nhiều chuyên gia đã giải quyết bài toán này với

những công cụ khác nhau, gần đây có một số nhà nghiên cứu đã dựa vào lý thuyết

32

tập thô để chọn lọc các thuộc tính, chẳng hạn như sử dụng bảng phân phối tổng

quát, rời rạc hóa dữ liệu dựa vào tập thô và lập luận xấp xỉ v.v...

Tuy nhiên dữ liệu trong thực tế thường rất lớn và đa dạng. Các dữ liệu này có

thể không chắc chắn, không đầy đủ và biến động. Vì vậy, một rút gọn đúng nghĩa

có thể tồn tại nhưng không chắc tìm được, hoặc chúng ta phải tốn rất nhiều công

sức để tìm ra được nó mà đôi khi kết quả đem lại không thực sự hữu ích. Thay vào

đó, người ta tìm một rút gọn "chấp nhận được" là một rút gọn xấp xỉ, đúng với

"phần lớn" dữ liệu có được. Với bài toán này, công sức tìm kiếm có thể sẽ giảm đi

Như phần trước đã trình bày, một rút gọn của bảng quyết định không thể thiếu

các thuộc tính lõi. Vì vậy, để tìm các rút gọn xấp xỉ người ta thường xuất phát từ

tập lõi và bổ sung dần các thuộc tính cho đến khi đạt được yêu cầu đánh giá một

rút gọn xấp xỉ. Vấn đề còn lại là chọn thuộc tính nào đây để đưa vào tập rút gọn.

Điều này dẫn đến việc cần có sự đánh giá các thuộc tính theo yêu cầu nào đó để

chọn các thuộc tính có "chất lượng" đưa vào tập rút gọn, khái niệm ý nghĩa của

thuộc tính xuất phát từ đó.

Mỗi thuộc tính được gán tương ứng với một giá trị thực trong khỏang đóng

[0,1] biểu diễn mức độ quan trọng của thuộc tính trong bảng thông tin. Trong phần

trước, chúng ta đã được biết đến độ phụ thuộc của tập thuộc tính Y vào tập thuộc

tính X là γ(X, Y ). Ở đây chúng ta cũng sẽ xét bảng quyết đinh T = (U, C ∪ D) với

nhiều, đặc biệt là khi sử dụng các thuật toán heuristic.

C là tập thuộc tính điều kiện và D là tập thuộc tính quyết định. Khi đó chúng ta

sẽ xem xét giá trị của γ(C, D) sẽ thay đổi như thế nào khi chúng ta loại bỏ một

thuộc tính trong C, nghĩa là hai hệ số γ(C, D) và γ(C \ {a}, D) sẽ khác nhau như

thế nào? Sự khác nhau đó được dùng trong biểu diễn ý nghĩa của thuộc tính a, ký

= 1 −

.

hiệu σ(C,D)(a) và được định nghĩa cụ thể như sau

σ(C,D)(a) = γ(C, D) − γ(C \ {a}, D) γ(C, D) γ(C \ {a}, D) γ(C, D)

Hệ số σ(C,D)(a) có thể được hiểu như là độ sai lệch giữa các phân hoạch IND(C)

33

và IND(C \ {a}). Hệ số ý nghĩa này có thể mở rộng đối với tập các thuộc tính

= 1 − , σ(C,D)(B) = γ(C, D) − γ(C \ B, D) γ(C, D) γ(C \ B, D) γ(C, D)

ở đây B là một tập con của C. Trong trường hợp C và D đã xác định rõ, chúng ta

ký hiệu các giá trị trên đơn giản là σ(a) và σ(B).

Nếu B là một rút gọn của C thì σ(C \ B) = 1 − = 0 điều này có nghĩa γ(B, D) γ(C, D) là các thuộc tính C \ B không có ý nghĩa, hay nói cách khác, các thuộc tính này có

Một tập con B của C được gọi là một rút gọn xấp xỉ của C với sai số (cid:15)(B) nếu:

(cid:15)(B) =

= 1 −

.

γ(C, D) − γ(B, D) γ(C, D)

γ(B, D) γ(C, D)

Vì (cid:15)(B) = 1 − σ(B) nên khái niệm rút gọn xấp xỉ (tương ứng miền khẳng định)

là sự tổng quát hóa của khái niệm rút gọn. Thật vậy, một tập con cực tiểu B thỏa

mãn (cid:15)(B) = 0 chính là rút gọn theo nghĩa nguyên thủy.

thể không được xét đến trong khi xây dựng các luật.

Chương Chương 2.

MỘT SỐ THUẬT TOÁN

TÌM TẬP RÚT GỌN

2.1. Mở đầu

Như đã được trình bày, phát hiện luật theo tiếp cận của lý thuyết tập thô là

một trong những phương pháp đang được nhiều nhà khoa học nghiên cứu và sử

dụng trong quá trình khai phá tri thức từ dữ liệu. Do dữ liệu thực tế thường đa

dạng, không đầy đủ, thiếu chính xác mà lại dư thừa nên việc chọn lọc thuộc tính

được đặt ra nhằm loại bỏ các thuộc tính dư thừa mà vẫn giữ được đầy đủ ý nghĩa

của tập dữ liệu đang xét. Mục tiêu của việc chọn lọc thuộc tính là tìm ra các thuộc

tính cốt yếu và cần thiết trong cơ sở dữ liệu. Dựa vào đó, việc sinh luật và phân lớp

có thể đạt hiệu quả cao nhất mà chỉ dựa vào một tập con các thuộc tính đã được

lựa chọn.

Có nhiều thuật toán tìm tập rút gọn đã được đề nghị, chẳng hạn như thuật

toán dựa vào khái niệm ma trận phân biệt được, thuật toán rời rạc hoá và lập luận

logic, thuật toán dựa vào bảng phân bố tổng quát và tập thô v.v... Tuy nhiên, số

lượng các tập rút gọn có thể là 2k − 1, với k là số các thuộc tính. Ngoài ra, trong

35

thực tế thường không đòi hỏi tìm tất cả các tập rút gọn mà chỉ cần tìm được một

tập rút gọn "tốt nhất" là đủ. Vì vậy, các thuật toán heuristic là rất đáng được quan

tâm, các thuật toán này nhằm làm giảm khối lượng tính toán, nhờ đó có thể áp

dụng đối với các bài toán có khối lượng dữ liệu lớn. Không ngoài mục đích đó, trong

chương này chúng tôi cũng đề nghị một số thuật toán heuristic tìm tập rút gọn của

bảng quyết định. Các thuật toán này đều có độ phức tạp tính toán theo thời gian

là O(k2n log n), với k là số thuộc tính và n là số các đối tượng trong hệ thống. Hai

thuật toán đầu dựa vào mô hình tập thô mới được đề nghị bởi các tác giả Xiaohua

phân biêt được do A. Skowron và C. Rauser đề xướng [26].

2.2. Thuật toán sử dụng các phép toán đại số

2.2.1. Tập lõi trong bảng quyết định

Cho bảng quyết định T = (U, C ∪ D). Khi đó trên U có quan hệ tương

đương IND(D). Giả sử các lớp tương đương ứng với quan hệ này là U/D =

{W1, W2, · · · , Wk} và các tập B−xấp xỉ dưới, B−xấp xỉ trên của của các tập Wi

tương ứng là BWi và BWi. Dựa trên các khái niệm xấp xỉ này, các tác giả Xiao-

hua Hu, Jianchao Han và T.Y. Lin [14] đã đưa ra các khái niệm B−xấp xỉ dưới và

Hu, Jianchao Han và T.Y.Lin [14], thuật toán còn lại dựa vào ý nghĩa của ma trận

B−xấp xỉ trên tương ứng với tập quyết định D của tập đối tượng U . Từ đó đưa ra

các khái niệm tương đương về tập lõi và rút gọn dựa vào các phép toán đại số quan

hệ. Chúng ta sẽ lần lượt tiếp cận các khái niệm này thông qua các định nghĩa một

cách chính xác như sau

Định nghĩa 2.1. Cho bảng quyết định T = (U, C∪D) và U/D = {W1, W2, · · · , Wk}.

Giả sử B ⊆ C, B−xấp xỉ dưới tương ứng với D của U, ký hiệu Lower[B]/[D], là tập

k [

xác định bởi

j=1

(2.1) BWj. Lower[B]/[D] :=

36

Định nghĩa 2.2. Với các giả thiết như trong Định nghĩa 2.1, B−xấp xỉ trên tương

k [

ứng với D của U, ký hiệu Upper[B]/[D], là tập xác định bởi

j=1

(2.2) BWj. Upper[B]/[D] :=

Thực ra khái niệm Lower[B]/[D] chính là B−miền khẳng định của D còn Upper[B]/[D]

lúc nào cũng bằng chính tập U . Điều này được suy ra từ định nghĩa của bảng quyết

định nhất quán và các tính chất của quan hệ tương đương, cụ thể chúng ta có mệnh

Mệnh đề 2.1. Cho T = (U, C ∪ D) là một bảng quyết định. Khi đó:

a) B0 ⊆ B ⊆ C ⇒ ∀ Vi ∈ U/B, ∃V 0

j ∈ U/B0 : Vi ⊆ V 0 j .

b) Upper[B]/[D] = U với mọi tập B ⊆ C.

c) T nhất quán ⇔ Lower[C]/[D] = U .

Chứng minh. Xét B, B0 ⊆ C. Khi đó,

a) B0 ⊆ B ⇒ ∀u, v ∈ U, u(B) = v(B) thì u(B0) = v(B0) do đó [u]B ⊆ [u]B0.

k [

k [

BWj =

{u ∈ U | [u]B ∩ Wj 6= ∅} = U vì với mọi đối tượng

b) Upper[B]/[D] =

j=1

j=1

u ∈ U đều thuộc một lớp tương đương Wj nào đó.

đề sau

c) Rõ ràng T nhất quán khi và chỉ khi POSC(D) = U . Hơn nữa, từ định nghĩa của Lower ta có Lower[C]/[D] = POSC(D). Do đó T nhất quán khi và chỉ khi (cid:3) Lower[C]/[D] = POSC(D) = U.

Từ các định nghĩa xấp xỉ trên bảng quyết định các tác giả trong [14] đã đưa

ra định nghĩa mới về tập lõi dựa vào các phép toán của đại số quan hệ, đó là phép

đếm và phép chiếu.

37

Định nghĩa 2.3. Với các xấp xỉ được định nghĩa trong (2.1) và (2.2), ta gọi B−biên

của U là tập

(2.3) Boundary[B]/[D] := Upper[B]/[D] \ Lower[B]/[D] = U \ Lower[B]/[D] .

Định nghĩa 2.4. Cho T = (C, D) là một bảng quyết định nhất quán. Thuộc tính

Y

Y

cj ∈ C được gọi là thuộc tính lõi (hay không cần thiết) nếu

Định nghĩa này mang lại một ý nghĩa thực tiễn rất lớn, cho phép xác định các

thuộc tính lõi chỉ với những thao tác đơn giản mà không cần tìm tất cả các tập rút

gọn, thậm chí chưa biết đến một tập rút gọn nào cả. Hơn nữa, định nghĩa này hoàn

toàn tương đương với định nghĩa theo lý thuyết tập thô truyền thống đã được trình

bày trong Mục 1.3.1.

Thật vậy, nếu cj là thuộc tính cần thiết thì POSC(D) % POSC\{cj }(D) suy ra ∃u ∈ POSC(D) mà u 6∈ POSC\{cj }(D). Do đó [u]C ⊆ [u]D mà [u]C\{cj } * [u]D hay nói cách khác, ∃v ∈ [u]C\{cj } sao cho v 6∈ [u]D tức là v(C \ {cj}) = u(C \ {cj}) và v(D) 6= u(D). Vậy Card(Q(C \ {cj})) < Card(Q(C \ {cj} ∪ D)). Ngược lại, giả sử

(2.4) thoả mãn. Lúc đó, tồn tại V ∈ U/(C \ {cj}) và V 6∈ U/(C \ {cj} ∪ D). Tức là V * Lower[C\{cj }]/[D] trong khi V ⊆ U = Lower[C]/[D] vì T là nhất quán. Vậy cj là thuộc tính cần thiết.

Card( (2.4) (C \ {cj})) < Card( (C \ {cj} ∪ D)).

Từ định nghĩa này, cũng trong [14], các tác giả đã đề nghị thuật toán sau tìm

lõi của bảng quyết định

Thuật toán 2.1. Tìm lõi.

Input: T = (C, D).

Output: Tập lõi Core.

Method:

1. Core := ∅;

38

2. For cj ∈ C do

3. If Card(Q(C \ {cj})) < Card(Q(C \ {cj} ∪ D)) then

4. Core := Core ∪{cj};

Độ phức tạp tính toán của thuật toán này là O(kn log n), trong đó k = Card(C)

và n = Card(U ).

Ví dụ 2.1. Ta xét bảng quyết định trong [14] được cho bởi Bảng 2.1, lưu thông tin về

8 chiếc xe hơi nhận được thông qua các thuộc tính điều kiện C = {c1 = W eight, c2 =

U

c1

c2

c3

c4 d

low

2

compact

4

high

u1

low

4

sub

6

low

u2

compact

4

high

u3 medium 4

high

2

compact

6

low

u4

high

4

compact

4

low

u5

low

4

compact

4

high

u6

high

4

sub

6

low

u7

low

2

sub

6

low

u8

Door, c3 = Size, c4 = Cylinder} và thuộc tính quyết định D = {d = M ileage}.

Bảng 2.1: Bảng thông tin về các xe hơi.

Trong bảng này ta có:

Card(Q({c1, c2, c3})) = 8 = Card(Q({c1, c2, c3, d})).

Như vậy, c4= Cylinder không phải là thuộc tính lõi. Tương tự c2 = Door, c3= Size

cũng không phải là thuộc tính lõi vì

Card(Q({c1, c2, c4})) = 8 = Card(Q({c1, c2, c4, d})),

Card(Q(c1, c3, c4)) = 6 = Card(Q(c1, c3, c4, d)).

39

Trong khi đó

Card(Q({c2, c3, c4})) = 5 < Card(Q({c2, c3, c4, d})) = 6.

2.2.2. Đặc trưng của tập rút gọn

Vậy bảng chỉ có một thuộc tính lõi là c1= Weight.

Cũng trong nổ lực xây dựng thuật toán cải tiến tìm tập rút gọn dựa vào đại số

Định nghĩa 2.5. [14]

a) Cho R là một tập con các thuộc tính điều kiện: R ⊆ C. Độ phụ thuộc giữa

R và tập thuộc tính quyết định D trong bảng quyết định T = (U, C ∪ D), ký

hiệu K(R, D), là giá trị được định nghĩa bởi

K(R, D) =

.

(2.5)

Card(Q(R ∪ D)) Card(Q(C ∪ D))

b) Tập con R ⊆ C được gọi là một rút gọn của tập thuộc tính điều kiện tương

ứng với tập thuộc tính quyết định D nếu

K(R, D) = K(C, D)

(2.6)

quan hệ, trong [14] các tác giả đã đưa ra một định nghĩa rút gọn mới.

K(R, D) > K(R0, D), ∀R0 ⊂ R. (2.7)

Rất tiếc, không như định nghĩa về lõi (Định nghĩa 2.4), định nghĩa này không

tương đương với định nghĩa của tập rút gọn trong lý thuyết tập thô truyền thống

ngay cả khi bảng là nhất quán. Vì vậy thuật toán rút gọn mà các tác giả đã đề nghị

trong [14] là không chuẩn xác. Chúng ta có thể dễ dàng nhận thấy điều này qua ví

dụ sau.

40

Ví dụ 2.2. Ta vẫn xét bảng quyết định cho ở Ví dụ 2.1. Trong bảng này có hai rút

gọn là R1 ={Weight, Size} và R2 = {Weight, Cylinder} nhưng

= 6= K(C, D) = 1. K(R1, D) = Card(Q(R1 ∪ D)) Card(Q(C ∪ D)) 5 8

Cũng vậy ta có

= 6= K(C, D) = 1. K(R2, D) = Card(Q(R2 ∪ D)) Card(Q(C ∪ D)) 5 8

Như chúng ta đã biết, bài toán tìm tập rút gọn của một tập thuộc tính điều

bảng. Hay nói cách khác, ta tìm cách loại bỏ (tối đa) các thuộc tính thừa mà phần

còn lại cũng chứa đầy đủ thông tin của bảng. Đối với một bảng quyết định có thể

có nhiều tập rút gọn khác nhau. Việc tìm tất cả các tập rút gọn từ bảng quyết định

là bài toán NP-khó, hơn nữa, trong nhiều ứng dụng thực tế, thường không cần phải

tìm tất cả các tập rút gọn, mà chỉ cần một tập rút gọn tốt nhất. Một câu hỏi khá

tự nhiên là dựa vào tiêu chuẩn nào để đánh giá một tập rút gọn là tốt? Và như vậy,

nói chung, việc chọn các thuộc tính trong tập rút gọn còn phụ thuộc vào tiêu chuẩn

tối ưu đặt ra.

Ở đây chúng tôi sẽ đưa ra một định nghĩa tương đương của tập rút gọn dựa

trên các phép toán đại số quan hệ. Trên cơ sở đó, chúng tôi đề nghị một số thuật

toán tìm rút gọn hợp lý và do đó khả thi hơn các thuật toán được đề nghị trong

[14].

kiện chính là việc chọn lựa các đặc trưng thiết yếu và đủ để biểu diễn dữ liệu trong

Định nghĩa 2.6. Cho R là một tập con của tập thuộc tính điều kiện C. Độ phụ

thuộc của tập thuộc tính quyết định D vào R, ký hiệu k(R, D), là giá trị

k(R, D) = . (2.8) Card(Q(R)) Card(Q(R ∪ D))

Độ phụ thuộc này phản ánh khả năng phân hoạch trên R ∪ D bằng cách chỉ

dựa vào tập thuộc tính R. Tính hợp lý của định nghĩa này được thể hiện qua mệnh

đề dưới đây mà việc chứng minh nó là không có gì khó khăn.

41

Mệnh đề 2.2. Với mọi tập R ⊆ C, ta có

a) k(R, D) ≤ 1.

b) k(R, D) = 1 ⇔ phụ thuộc hàm R → D đúng trên U.

c) T nhất quán ⇔ k(C, D) = 1.

d) Nếu k(R, D) = 1, thì k(R0, D) = 1 với mọi R ⊆ R0 ⊆ C.

chọn làm đặc trưng cho tập thuộc tính điều kiện. Vì vậy ta đi đến định nghĩa về tập

rút gọn như sau.

Định nghĩa 2.7. Tập con các thuộc tính điều kiện R ⊆ C được gọi là một tập rút

gọn của tập thuộc tính điều kiện C đối với D nếu

k(R, D) = k(C, D)

(2.9)

k(R0, D) < k(C, D), ∀ R0 ⊂ R.

(2.10)

Trong trường hợp T là bảng nhất quán ta có thể chứng minh được định nghĩa

này là hoàn toàn tương đương với định nghĩa trong lý thuyết tập thô truyền thống

(trang 17). Thật vậy, giả sử U/R = {V1, V2, · · · , Vp} và U/D = {W1, W2, · · · , Wq},

Khi phân hoạch trên R trùng với phân hoạch trên R ∪ D thì tập R có thể được

Y

Y

ta có:

k(R, D) = k(C, D) = 1 ⇔ Card( (R)) = Card( (R ∪ D))

⇔ U/R = U/(R ∪ D)

q [

⇔ ∀ Vi ∈ U/R, ∃Wj ∈ U/D sao cho Vi ⊆ Wj

i=1

RWj = U = Lower[C]/[D] ⇔ Lower[R]/[D] =

⇔ POSR(D) = POSC(D).

2.2.3. Các thuật toán

42

Giả sử T là bảng nhất quán, trong mục này ta sẽ tìm cách xây dựng các thuật

toán tìm rút gọn của bảng sử dụng Định nghĩa 2.7. Nếu R là một tập rút gọn thì R

chứa mọi thuộc tính lõi. Nhận xét này gợi ý cho chúng ta xây dựng hai cách tiếp cận

khác nhau đến tập rút gọn. Thuật toán thứ nhất theo kiểu xấp xỉ ngoài, tức là xuất

phát từ R := C chúng ta tìm cách loại bỏ tối đa các thuộc tính cj ∈ R \ Core trong

khi mà k(R \ {cj}, D) vẫn còn bằng 1. Thuật toán thứ hai theo kiểu xấp xỉ trong,

bằng cách khởi tạo R := Core và bổ sung thêm tối thiểu các thuộc tính cj ∈ C \ R

Thuật toán thứ nhất thích hợp đối với những bài toán mà các thuộc tính có

thể được sắp xếp theo một tiêu chuẩn ưu tiên nào đó. Trong trường hợp như vậy,

các thuộc tính được xem xét để loại bỏ là các thuộc tính có độ ưu tiên thấp. Cụ

thể, thuật toán được trình bày như sau

Thuật toán 2.2. Tìm tập rút gọn theo xấp xỉ ngoài.

Input: T = (C, D).

Output: Tập rút gọn R.

Method:

1. Tìm Core theo Thuật toán 2.1;

2. Sắp xếp tập C \ Core theo thứ tự ưu tiên tăng dần;

cho đến khi nhận được k(R, D) = 1.

3. Đặt R := C;

4. For cj ∈ C \ Core do

5. If k(R \ {cj}, D) = 1 then

6. R := R \ {cj};

Như vậy, xuất phát từ R = C, thuật toán thực hiện tối đa k vòng lặp để thực

hiện loại bỏ R := R \ {cj}. Trong mỗi vòng lặp này, chúng ta phải kiểm tra điều

43

kiện k(R \ {cj}, D) = 1. Điều đó đòi hỏi sắp xếp lại các đối tượng trong U theo thứ

tự tăng/giảm giá trị của các thuộc tính trong R \ {cj} và D. Vậy, độ phức tạp tính

toán của thuật toán này sẽ là O(kn log n), với n = Card(U ) và k = Card(C).

Ví dụ 2.3. Xét bảng quyết định cho trong Bảng 2.1 lưu thông tin về các xe hơi,

giả sử các thuộc tính được sắp theo thứ tự chỉ số thuộc tính tương ứng ta có:

Core = {c1}.

Xuất phát R := C; Card(Q(R)) = 8.

Card(Q(R \ {c2})) = 8 = Card(Q(R \ {c2} ∪ D)).

Do đó, k(R \ {c2}, D) = 1.

Như vậy có thể loại c2 khỏi R. Lúc này R = {c1, c3, c4}.

Xét c3 ta có:

Card(Q(R \ {c3})) = 5 = Card(Q(R \ {c3} ∪ D)),

do đó k(R \ {c3}, D) = 1,

và c3 cũng được loại ra khỏi R. Bây giờ R = {c1, c4}.

Xét c4 ta có:

Card(Q(R \ {c4})) = 3.

trong khi Card(Q(R \ {c4} ∪ D)) = 4,

Xét c2 ∈ C \ Core, ta có:

< 1. do đó k(R \ {c3}, D) = 3 4

Vậy R = {c1, c4} là một tập rút gọn.

Thực ra bảng có hai rút gọn (trong thuật toán sau chúng ta sẽ thấy), nhưng

do chúng ta sắp thứ tự ưu tiên tăng dần theo chỉ số thuộc tính nên thuộc tính c4

có độ ưu tiên xét đưa vào tập rút gọn cao hơn.

Thuật toán thứ hai xuất phát từ R := Core. Vấn đề là ta cần bổ sung thêm

44

các thuộc tính nào để R thực sự là tập rút gọn? Chúng ta sẽ thảo luận về điều đó

ngay dưới đây.

Cho V ⊆ U , với mỗi tập con B ⊆ C, quan hệ tương đương cảm sinh của

IND(B) lên V là IND(B|V ) và các lớp tương đương của IND(B|V ) là V /B =

m }. Tương tự, quan hệ tương đương cảm sinh bởi IND(D) lên V là

2 , · · · , V B

1 , V B

{V B

1 , V D

2 , · · · , V D

k }.

IND(D|V ) và các lớp tương đương của quan hệ này là V /D = {V D

Lúc này ta cũng có các khái niệm B−xấp xỉ dưới và B−biên của V , ký hiệu lần

k [

(2.11)

Lower[BV ]/[DV ] :=

j ], Lower[BV ]/[V D

j=1

(2.12)

Boundary[BV ]/[DV ] := V \ Lower[BV ]/[DV ],

trong đó,

m [

| V B

Lower[BV ]/[V D

{V B i

i ⊆ V D

j }.

j ] :=

i=1

Từ các định nghĩa trên ta có thể dễ dàng kiểm chứng được khẳng định sau

Mệnh đề 2.3. Giả sử T là nhất quán. Lúc đó,

a) R là tập rút gọn khi và chỉ khi nó là tập con tối tiểu của C thoả mãn

Boundary[R]/[D] = ∅.

lượt là Lower[BV ]/[DV ] và Boundary[BV ]/[DV ], xác định như sau

b) Nếu R1 ⊆ R2 ⊆ C, thì bằng cách đặt V = Boundary[R1]/[D] ta có:

2 ]/[DV ] .

Boundary[R2]/[D] = Boundary[RV

Bây giờ giả sử R ⊆ C và cj ∈ C \ R. Đặt V = Boundary[R]/[D] và ký hiệu QV (B) là chiếu của V lên tập thuộc tính B. Ta gọi khả năng đóng góp của cj vào

R là tỷ số sau

. (2.13) m(cj, R) := Card(QV ({cj})) Card(QV ({cj} ∪ D))

45

Dễ thấy m(cj, R) ∈ (0, 1]. Tỷ số này thể hiện khả năng phân lớp V theo thuộc

tính D mà chỉ dựa vào thuộc tính cj. Nếu hệ số này càng lớn thì (R ∪ {cj})−xấp

xỉ dưới của V càng lớn và, do đó, (R ∪ {cj})−biên của V càng bé. Mà theo Mệnh

đề 2.3 ta có

Boundary[R∪{cj }]/[D] = Boundary[(R∪{cj })V ]/[DV ],

nên R ∪ {cj}−biên của U càng bé. Trên cơ sở phân tích đó, ta sẽ ưu tiên bổ sung

vào R các thuộc tính có khả năng đóng góp vào R mạnh nhất. Việc bổ sung như

vậy sẽ lặp lại cho đến khi R là một tập rút gọn thực sự. Tóm lại, ta có thuật toán

Thuật toán 2.3. Tìm tập rút gọn theo xấp xỉ trong.

Input: T = (C, D).

Output: Tập rút gọn R.

Method:

1. Tìm Core theo Thuật toán 2.1;

2. R := Core;

3. Chọn cr ∈ C \ R sao cho

m(cr, R) = max{m(cj, R) | cj ∈ C \ R};

sau

4. R := R ∪ {cr};

5. Nếu Boundary[R]/[D] = ∅ thì dừng. Ngược lại, quay về 3.

Như vậy, xuất phát từ R = Core, thuật toán thực hiện tối đa k vòng lặp để

bổ sung R = R ∪ {cr}. Trong mỗi vòng lặp này, chúng ta phải tính lại tất cả các

m(cj, R) chúng ta cần sắp xếp các đối tượng trong V = Boundary[R]/[D] theo thứ tự

m(cj, R) và chọn ra thuộc tính có khả năng đóng góp cao nhất. Nhưng để tính được

tăng/giảm giá trị của các thuộc tính trong cj và D. Tóm lại, độ phức tạp tính toán

của giải thuật này sẽ là O(k2n log n), với n = Card(U ) và k = Card(C). Thực ra thì

46

cứ sau mỗi vòng lặp, tập các đối tượng làm việc là V sẽ giảm đi nhiều so với tập U

ban đầu.

Sử dụng thuật toán này để tìm rút gọn tương ứng trong bảng ở Ví dụ 2.1 ta

lần lượt nhận được:

R := Core = {c1} = {W eight},

V = Boundary[{c1}]/[{d}] = {t1, t2, t6, t8},

= 1,

m({c3}, R) =

= 1.

m({c4}, R) =

, m({c2}, R) =

Như vậy, ta có thể bổ sung c3 hoặc c4 vào R. Trong cả hai trường hợp ta đều

có Boundary[R∪{cr}]/[D] = ∅ và thuật toán dừng.

Cuối cùng ta có hai tập rút gọn là R = {c1, c3} hay R = {c1, c4}.

2.3. Thuật toán dựa vào số cặp phân biệt được

2.3.1. Một số ký hiệu

Như trong Chương 1. đã trình bày, việc tìm tập rút gọn của bảng quyết định có

2 4 2 2 2 2

thể dựa vào ma trận phân biệt được của bảng quyết định đó. Tuy vậy, thuật toán

này thường đòi hỏi một độ phức tạp rất lớn cả về thời gian lẫn không gian lưu trữ.

Để khắc phục nhược điểm đó, ở đây chúng tôi đề nghị một thuật toán cũng dựa vào

ý nghĩa của ma trận phân biệt được nhưng không cần phải lưu trữ ma trận. Thay

vào đó, chúng ta phải xác định số cặp đối tượng phân biệt được đối với từng thuộc

mục này.

tính điều kiện. Trước hết chúng ta hãy làm quen một số ký hiệu được sử dụng trong

Xét bảng quyết định T = (U, C ∪ D), với C là tập thuộc tính điều kiện và D là

47

tập thuộc tính quyết định.

B (cj) là số cặp đối tượng của V

Cho B ⊆ C, V ⊆ U và cj ∈ C \ B. Ký hiệu ωV

bằng nhau trên B nhưng khác nhau tại thuộc tính cj, tức là:

B (cj) = Card({(u, v) | u, v ∈ V ; u(B) = v(B) và u(cj) 6= v(cj)}).

ωV

B (D):

Ta cũng có định nghĩa tương tự cho ωV

B (D) = Card({(u, v) | u, v ∈ V ; u(B) = v(B) và u(D) 6= v(D)}).

ωV

khi V = U , ta lại viết là ωB(cj) và ωB(D). Cuối cùng, nếu V = U và B = ∅ ta chỉ

ký hiệu một cách đơn giản bởi ω(cj) và ω(D). Tóm lại,

ωV (cj) = Card({(u, v) | u, v ∈ V ; u(cj) 6= v(cj)}),

ωV (D) = Card({(u, v) | u, v ∈ V ; u(D) 6= v(D)}),

ωB(cj) = Card({(u, v) | u, v ∈ U ; u(B) = v(B) và u(cj) 6= v(cj)}),

ωB(D) = Card({(u, v) | u, v ∈ U ; u(B) = v(B) và u(D) 6= v(D)}),

ω(cj) = Card({(u, v) | u, v ∈ U ; u(cj) 6= v(cj)}),

ω(D) = Card({(u, v) | u, v ∈ U ; u(D) 6= v(D)}).

Ví dụ 2.4. Xét tập 10 đồ chơi với tập thuộc tính điều kiện C= {Màu sắc, Kích

thước, Hình dáng} và thuộc tính quyết định D = {Phù hợp lứa tuổi} được cho trong

Khi B = ∅, hai đại lượng trên được viết một cách đơn giản là ωV (cj) và ωV (D), còn

Bảng 2.2.

Cho B = {Màu sắc, Hình dáng}; c = "Kích thước" và V = {u1, u2, u3, u8, u9, u10}.

Khi đó:

B (c) = Card({(u1, u2); (u1, u10); (u2, u10); (u3, u9)}) = 4;

ωV

B (D) = Card({(u1, u2); (u1, u10); (u3, u9)}) = 3;

ωV

ωV (c) = Card({(u1, u2); (u1, u3); (u1, u10); (u2, u3); (u2, u8); (u2, u9); (u2, u10);

(u3, u8); (u3, u9); (u8, u10); (u9, u10)}) = 11;

48

Màu sắc Kích thước Hình dáng Phù hợp lứa tuổi U

Xanh To Tròn 4-10 u1

Xanh Nhỏ Tròn 1-3 u2

Vàng Vừa Vuông 4-10 u3

Đỏ Vừa Vuông 4-10 u4

Vàng To Tam giác 11-15 u5

Xanh Nhỏ Tròn 1-3 u6

Đỏ Nhỏ Tam giác 11-15 u7

Vàng

To

Vuông

11-15

u9

Vừa

Tròn

1-3

u10 Xanh

Bảng 2.2: Bảng dữ liệu các đồ chơi.

ωV (D) = Card({(u1, u2); (u1, u9); (u1, u10); (u2, u3); (u2, u8); (u2, u9); (u3, u9);

(u3, u10); (u8, u9); (u8, u10); (u9, u10)}) = 11.

2.3.2. Cơ sở toán học

Như chúng ta đã biết, nếu bảng quyết định nhất quán thì tập thuộc tính quyết

định D phụ thuộc hoàn toàn vào tập thuộc tính điều kiện C. Khi đó một tập R ⊆ C

Đỏ To Tam giác 4-10 u8

là một rút gọn của C khi D phụ thuộc hoàn toàn vào R, nói cách khác, mọi cặp

đối tượng bằng nhau trên R cũng bằng nhau trên D, tức là ωR(D) = 0. Dựa vào ý

tưởng này, chúng ta xây dựng thuật toán tìm tập rút gọn xuất phát từ tập R = ∅

và bổ sung dần các thuộc tính vào R cho đến khi nhận được ωR(D) = 0. Tính hợp

lý của thuật toán này dựa trên cơ sở các khẳng định sau.

49

Mệnh đề 2.4. [12] Cho V ⊆ U . Giả sử V /D = {V1, V2, · · · , Vm}, với Card(V ) = x;

m X

Card(Vi) = xi. Khi đó,

i=1

m X

X

x = xi,

i=1

i

(x2 − ωV (D) = xixj = x2 i ). 1 2

Mệnh đề 2.5. Giả sử V ⊆ U , B ⊆ C và V /B = {V1, V2, · · · , Vk}. Khi đó,

B (D) = ωV1

B (D) + ωV2

B (D) + · · · + ωVk

B (D),

b) Với cj ∈ C \ B, ta có:

V /(B ∪ {cj}) = V1/{cj} ∪ V2/{cj} ∪ · · · ∪ Vk/{cj}.

}, thì

c) Nếu cj ∈ C \ B và Vi/{cj} = {W i

1, W i

2, · · · , W i pi

1(D) + ωW i

2(D) + · · · + ωW i

pi (D).

B∪{cj }(D) = ωW i ωVi

Chứng minh. Phần a) và b) có thể xem chứng minh ở [12], bây giờ chúng ta sẽ

chứng minh phần c). Vì V /B = {V1, V2, · · · , Vk} nên Vi/B = {Vi} và theo b) ta có:

}

Vi/(B ∪ {cj}) = Vi/{cj} = {W i

1, W i

2, · · · , W i pi

Mặt khác, từ a) ta lại có:

1(D) + ωW i

2(D) + · · · + ωW i

pi (D).

B∪{cj }(D) = ωW i ωVi

(cid:3)

a) ωV

Ví dụ 2.5. Xét bảng quyết định cho bởi Bảng 2.2, với các tập V, B và c được chọn

như trong Ví dụ 2.4. Ta có:

V /D = {V1, V2, V3}, với V1 = {u1, u3, u8}; V2 = {u2, u10}; V3 = {u9},

V /B = {W1, W2, W3}, với W1 = {u1, u8, u9}; W2 = {u2}; W3 = {u3, u10}.

50

X

3 X

Khi đó: x = 6; x1 = 3; x2 = 2; x3 = 1 và theo Mệnh đề 2.5,

i

i=1

(x2 − x2) = 11, ωV (D) = xixj = 1 2

(9 − (4 + 1)) = 2, ωW1(D) = 1 2

ωW2(D) = (1 − 1) = 0, 1 2

ωW3(D) = (4 − (1 + 1)) = 1, 1 2

chúng ta nhận được đúng kết quả tính toán ở Ví dụ 2.4.

Mệnh đề 2.6. R là một rút gọn của tập thuộc tính điều kiện C khi và chỉ khi R là

tập tối tiểu thỏa ωR(D) = 0.

Chứng minh. Rõ ràng theo nhận xét trong phần trên, nếu R là một rút gọn của C

thì R là tập tối tiểu thỏa tính chất: Mọi cặp đối tượng bằng nhau trên R cũng bằng

nhau trên D hay ωR(D) = 0.

Ngược lại, giả sử R là tập tối tiểu thỏa ωR(D) = 0, lúc đó R xác định D hay

POSR(D) = POSC(D), hơn nữa, mọi tập con thực sự của R không thỏa tính chất hay T0 = (U, R ∪ D) là độc lập. Vậy R là một rút gọn của C.

2.3.3. Thuật toán

ωV (D) = ωW1(D) + ωW2(D) + ωW3(D) = 2 + 0 + 1 = 3,

Như trên đã đề cập, trong phần này chúng tôi sẽ đưa ra thuật toán tìm tập rút

gọn dựa vào kết luận của Mệnh đề 2.6 và các giá trị trung gian được tính toán theo

kết quả của Mệnh đề 2.5. Thoạt tiên, ta chọn R := ∅ và sẽ bổ sung dần các thuộc

R. Một cách tự nhiên, ta chọn thuộc tính mà khi tham gia vào tập rút gọn sẽ làm

tính vào R. Vấn đề đặt ra là tại mỗi bước chọn lựa, thuộc tính nào sẽ được đưa vào

cho số cặp đối tượng bằng nhau trên R nhưng khác nhau trên D là ít nhất. Với cách

51

chọn lựa heuristic này, thuật toán có khả năng cho ta một tập rút gọn với số thuộc

tính tối thiểu.

Tại mỗi bước, ta luôn ký hiệu L = U/R. Ban đầu R = ∅ nên L = {U }.

Thuật toán 2.4. Tìm tập rút gọn dựa vào số cặp phân biệt được.

Input: T = (C, D).

Output: Tập rút gọn R.

1. R = ∅; L := {U };

2. Repeat

3.

For cj ∈ C \ R do

Begin{1}

4.

5.

For Vi ∈ L do

Begin{2}

6.

7.

Tìm Vi/{cj} = {W1, W2, · · · , Wm};

8.

For l := 1 to m do

9.

Begin{3}

10.

Tìm Wl/D = {W l

1, W l

2, · · · , W l

(cid:16)

k X

Method:

k}; i)2(cid:17) (xl

(xl)2 − ; 11. Tính ωWl(D) = 1 2

i=1 {trong đó xl = Card(Wl) và xl

i = Card(W l

i )}

12.

13. End{3}

R∪{cj }(D) := ωW1(D) + ωW2(D) + · · · +

ωWm(D);

14. := ωVi Tính γi j

15. End{2}

X

52

Vi∈ L

16. Tính αj := γi j;

End{1} 17.

18. Chọn thuộc tính cr sao cho αr là bé nhất;

[

19. R := R ∪ {cr};

Vi∈ L

M := 20. Vi/{cr} (= U/R);

L := M ; 21.

Ví dụ 2.6. Xét bảng quyết định chọn giáo viên [8] gồm chín đối tượng với tập thuộc

tính điều kiện C = {c1, c2, c3, c4} tương ứng là "trình độ chuyên môn", "yêu nghề",

"khả năng sư phạm", "kinh nghiệm giảng dạy" (tính bằng năm) và thuộc tính quyết

định d có hai giá trị: 1 ("chấp nhận"), 0 ("từ chối"), được cho trong Bảng 2.3.

U

d

c2

c3

c1

c4

Tốt

5

1

u1 Giỏi

Tốt

2

1

u2 Trung bình Có

Không Trung bình 3

0

u3 Kém

Tốt

5

1

u4 Giỏi

1

0

u5 Trung bình Không Tốt

Trung bình 3

1

u6 Xuất sắc

22. Until (αr = 0) or (R = C);

Có Khá 0 0 u7 Xuất sắc

Không Khá 3 0 u8 Kém

Không Trung bình 2 0 u9 Giỏi

Bảng 2.3: Bảng chọn lựa giáo viên.

Thực hiện thuật toán trên, ta nhận được kết quả từng bước như sau:

R = ∅; L = {U } (V1 = U ),

53

V1/{c1} = {W1 = {u1, u4, u9}, W2 = {u2, u5}, W3 = {u3, u8}, W4 = {u6, u7}},

(32 − 22 − 12) = 2, ωW1(D) =

ωW2(D) = (22 − 12 − 12) = 1,

ωW3(D) = (22 − 22) = 0,

1 = ωW1(D) + ωW2(D) + ωW3(D) + ωW4(D) = 4. γ1

ωW4(D) = (22 − 12 − 12) = 1, 1 2 1 2 1 2 1 2

V1/{c2} = {W1 = {u1, u2, u4, u6, u7}, W2 = {u3, u5, u8, u9}},

2 = ωW1(D) + ωW2(D) = 4 + 0 = 4, γ1

V1/{c3} = {W1 = {u1, u2, u4, u5}, W2 = {u3, u6, u9}, W3 = {u7, u8}},

3 = ωW1(D) + ωW2(D) + ωW3(D) = 3 + 2 + 0 = 5, γ1

V1/{c4} = {W1 = {u1, u4}, W2 = {u2, u9}, W3 = {u3, u6, u8}, W4 = {u5},

W5 = {u7}},

4 = ωW1(D) + ωW2(D) + ωW3(D) + ωW4(D) + ωW5(D) = 0 + 1 + 2 + 0 + 0 = 3, γ1

α1 = γ1

1 = 4; α2 = γ1

2 = 4; α3 = γ1

3 = 5; α4 = γ1

4 = 3 ⇒ r = 4,

R = R ∪ {c4} = {c4},

Tương tự ta có:

L = {V1 = {u1, u4}, V2 = {u2, u9}, V3 = {u3, u6, u8}, V4 = {u5}, V5 = {u7}},

1 = 0,

V1/{c1} = {W1 = {u1, u4}} ⇒ γ1

1 = 0,

V2/{c1} = {W1 = {u2}, W2 = {u9}} ⇒ γ2

1 = 0,

V3/{c1} = {W1 = {u3, u8}, W2 = {u6}} ⇒ γ3

1 = 0,

V4/{c1} = {W1 = {u5}} ⇒ γ4

1 = 0,

V5/{c1} = {W1 = {u7}} ⇒ γ5

1 + γ2

1 + γ3

1 + γ4

1 + γ5

1 = 0,

α1 = γ1

54

2 = 0,

V1/{c2} = {W1 = {u1, u4}} ⇒ γ1

2 = 0,

V2/{c2} = {W1 = {u2}, W2 = {u9}} ⇒ γ2

2 = 0,

V3/{c2} = {W1 = {u3, u8}, W2 = {u6}} ⇒ γ3

2 = 0,

V4/{c2} = {W1 = {u5}} ⇒ γ4

2 = 0,

V5/{c2} = {W1 = {u7}} ⇒ γ5

2 + γ2

2 + γ3

2 + γ4

2 + γ5

2 = 0,

α2 = γ1

3 = 0,

V2/{c3} = {W1 = {u2}W2 = {u9}} ⇒ γ2

3 = 0,

V3/{c3} = {W1 = {u3, u6}, W2 = {u8}} ⇒ γ3

3 = 1,

V4/{c3} = {W1 = {u5}} ⇒ γ4

3 = 0,

V5/{c3} = {W1 = {u7}} ⇒ γ5

3 = 0,

α3 = γ1

3 = 1.

3 + γ5

3γ4

3 + γ3

3 + γ2

Đến đây chúng ta có thể chọn r = 1 hoặc r = 2 vì α1 = α2 = 0. Thuật toán

dừng và chúng ta nhận được hai rút gọn tương ứng là R1 = {c1, c4} và R2 = {c2, c4},

như vậy tập lõi là Core = {c4}.

Để đánh giá độ phức tạp tính toán của thuật toán này ta gọi k là số thuộc tính

điều kiện và n là số đối tượng trong bảng quyết định. Hai vòng lặp Repeat (2.) và

V1/{c3} = {W1 = {u1, u4}} ⇒ γ1

For (3.) lồng nhau, mỗi vòng thưc hiện tối đa k lần, nên ta có số lần thực hiện Vòng

lặp (1.) là O(k2). Trong mỗi vòng lặp đó, ta có hai lần sắp xếp tập đối tượng U , một

lần theo giá trị thuộc tính cj (7.) và một lần theo giá trị thuộc tính D (10.) nên độ

phức tạp của mỗi vòng lặp này là O(n log n). Tóm lại, thuật toán có độ phức tạp là

O(k2n log n).

2.4. Thuật toán tìm rút gọn xấp xỉ

2.4.1. Đặt vấn đề

55

Trong hai phần trước, chúng ta đã làm quen với các thuật toán tìm tập rút

gọn của bảng quyết định. Đó là một trong những phương pháp loại bỏ các dư thừa

trong dữ liệu. Tuy nhiên, trong thực tế dữ liệu thường rất lớn, đa dạng và có thể

bị nhiễu. Vì vậy bài toán tìm tập rút gọn chính xác đôi khi không cho ra kết quả

quyết định. Trong khi thực tế là tồn tại các rút gọn, nhưng vì một lý do nào đó dữ

liệu nhận được không như nó vốn có. Trong những trường hợp như thế, việc tìm

tập thuộc tính có thể đặc trưng cho tập thuộc tính điều kiện với "hầu hết" các đối

tượng trong bảng thay cho một rút gọn chính xác là rất cần thiết. Tập các thuộc

tính điều kiện đó được xem như những rút gọn "xấp xỉ". Trong phần này chúng ta

sẽ đưa ra những thuật toán tìm tập rút gọn xấp xỉ với những đánh giá về sai số

tương ứng.

Có nhiều cách đánh giá tính "gần đúng" của một tập rút gọn xấp xỉ, tương

tự như đánh giá sai số của một phụ thuộc hàm. Sai số của phụ thuộc hàm thông

thường biểu diễn tỷ số giữa số lượng các đối tượng vi phạm phụ thuộc hàm đó với

số lượng các đối tượng trong hệ thống (U ).

2.4.2. Sai số của rút gọn xấp xỉ

theo nghĩa là không thể rút gọn tập thuộc tính điều kiện mà có thể bảo toàn các

Như chúng ta đã biết, tập R là một rút gọn của bảng quyết định T = (U, C ∪D)

nếu D phụ thuộc hoàn toàn vào R tức là phụ thuộc hàm R → D đúng trên U . Vì

vậy sai số của tập rút gọn xấp xỉ cũng sẽ biểu diễn tương quan giữa các đối tượng có

cùng giá trị trên tập rút gọn xấp xỉ nhưng có những quyết định khác nhau (không

chấp nhận phụ thuộc hàm R → D) với số các đối tượng trong bảng. Trong [17] các

56

tác giả đã đề nghị ba đại lượng biểu thị sai số của phụ thuộc hàm X → Y như sau

, g1(X → Y ) = Card({(u, v) | u, v ∈ U, u(X) = v(X) và u(Y ) 6= v(Y )}) Card(U )2

, g2(X → Y ) =

. g3(X → Y ) = Card({u | u ∈ U, ∃v ∈ U : u(X) = v(X) và u(Y ) 6= v(Y )}) Card(U ) Card(U ) − max{Card(V ) | V ⊆ U, X → Y đúng trên V } Card(U )

Các giá trị g1, g2, g3 với các tập thuộc tính X, Y cho trước có thể được tính dễ

dàng bằng cách sắp xếp các đối tượng trong U theo thứ tự giá trị của các thuộc

bằng cách nào chúng ta có thể tìm được các tập rút gọn xấp xỉ với sai số được tính

theo quy định và không vượt quá một giá trị ngưỡng (cid:15) cho trước. Trong phần này,

chúng tôi đề nghị các thuật toán tìm các tập xấp xỉ với sai số được tính như trên.

Trước hết chúng ta cần chú ý rằng, một tập R có thể là một rút gọn xấp xỉ chấp

nhận được (sai số bé hơn hoặc bằng giá trị ngưỡng) đối với sai số được tính theo

cách này không nhất thiết phải là tập rút gọn xấp xỉ đối với sai số được tính theo

cách khác. Điều này là do các đánh giá sai số khác nhau thường cho ra các giá trị

khác nhau. Để minh hoạ ta thử xét ví dụ sau

Ví dụ 2.7. [17] Cho p và q là hai số nguyên dương thoả p > 2 ∗ q. Xét bảng quyết

định T gồm p đối tượng, với tập thuộc tính điều kiện C = B ∪ R và tập thuộc tính

quyết định D = {d}. Trong đó, p − q đối tượng đầu tiên (u1, · · · , up−q) có giá trị trên

tính và do đó có độ phức tạp là O(n log n) (n = Card(U )). Vấn đề đặt ra ở đây là

tập thuộc tính R là thứ tự của đối tương tương ứng trong bảng, và giá trị của thuộc

tính quyết định là 0, q đối tượng cuối có giá trị tại R lần lượt là p−2∗q +1, · · · , p−q,

còn giá trị quyết định là 1.

. cách khác nhau là g1(R → D) = và g3(R → D) = Nếu xem R là một rút gọn xấp xỉ thì sai số của rút gọn này được tính theo các 2q p2 , g2(R → D) = 2q p q p

57

R U B d

1 α 0 u1

· · · · · · · · · · · ·

p − 2 ∗ q α 0 up−2∗q

p − 2 ∗ q + 1 α 0 up−2∗q+1

· · · · · · · · · · · ·

p − q α 0 up−q

α p − 2 ∗ q + 1 1 up−q+1

p − q

α

1

up

Bảng 2.4: Bảng dữ liệu cho ví dụ rút gọn xấp xỉ.

2.4.3. Các thuật toán tìm rút gọn xấp xỉ

Trong [15] các tác giả đã đưa ra một thuật toán tìm tất cả các phụ thuộc hàm

cực tiểu và phụ thuộc hàm xấp xỉ với sai số g3. Trong phần này chúng tôi sẽ tìm

cách xây dựng các thuật toán tìm rút gọn xấp xỉ sử dụng các đánh giá g1 và g2 bằng

cách cải tiến các Thuật toán 2.3, 2.4.

Trước hết, từ định nghĩa của giá trị sai số g1, g2, chúng ta có mối liên hệ với

các giá trị ωR(D) và Boundary[R]/[D] thông qua mệnh đề sau

· · · · · · · · · · · ·

Mệnh đề 2.7. Cho bảng quyết định T = (U, C ∪ D), R ⊆ C. Khi đó:

a) g1(R → D) = ωR(D) Card(U )2 ,

= 1 − . b) g2(R → D) = Card(Boundary[R]/[D]) Card(U ) Card(Lower[R]/[D]) Card(U )

Chứng minh.

a) Suy ra trực tiếp từ định nghĩa của ωR(D).

58

b) Đẳng thức thứ hai là hiển nhiên, ta sẽ chứng minh đẳng thức thứ nhất. Đặt

. Bây giờ chúng ta chỉ cần chứng minh V = Boundary[R]/[D]. Thật

V = {u ∈ U | ∃v ∈ U, u(R) = v(R), u(D) 6= v(D)}. Thế thì g2(R → D) = Card(V ) Card(U ) vậy, với mọi u ∈ V , tồn tại v ∈ U sao cho u(R) = v(R) và u(D) 6= v(D). Như

vậy u ∈ [v]R và u 6∈ [v]D hay nói cách khác [v]R 6⊆ [v]D suy ra [u]R = [v]R 6⊆

POSR(D) hay u ∈ Boundary[R]/[D]. Ngược lại, lấy tuỳ ý u ∈ Boundary[R]/[D] ta

có u 6∈ POSR(D) hay [u]R 6⊆ [u]D. Do đó, tồn tại v ∈ [u]R ⊆ U nhưng v 6∈ [u]D.

Tóm lại, với mọi u ∈ Boundary[R]/[D], tồn tại v ∈ U sao cho u(R) = v(R)

chứng minh.

Từ Mệnh đề 2.7 chúng ta có thể xây dựng các thuật toán tìm tập rút gọn xấp

xỉ theo đánh giá g1 và g2 tương ứng dựa vào các Thuật toán 2.3, 2.4.

Thuật toán 2.5. Tìm tập rút gọn xấp xỉ theo đánh giá sai số g1.

Input: T = (U, C ∪ D) và giá trị ngưỡng (cid:15) ∈ [0, 1].

Output: Tập rút gọn R với đánh giá sai số g1(R → D) ≤ (cid:15).

Method:

1. R = ∅; L := {U };

2. Repeat

nhưng u(D) 6= v(D), tức là u ∈ V . Vậy V = Boundary[R]/[D] và mệnh đề được (cid:3)

3. For cj ∈ C \ R do

Begin{1} 4.

5. For Vi ∈ L do

Begin{2} 6.

7. Tìm Vi/{cj} = {W1, W2, · · · , Wm};

8. For l := 1 to m do

9. Begin{3}

59

2, · · · , W l

1, W l

(cid:16)

k X

10. Tìm Wl/D = {W l

k}; i)2(cid:17) (xl

11. Tính ωWl(D) = (xl)2 − ; 1 2

i=1 {trong đó xl = Card(Wl) và xl

i )}

i = Card(W l

12.

13. End{3}

R∪{cj }(D) := ωW1(D) + ωW2(D) + · · · +

14. := ωVi Tính γi j

ωWm(D);

X

16.

Tính αj :=

γi j;

Vi∈ L

17.

End{1}

18.

Chọn thuộc tính cr sao cho αr là bé nhất;

19.

R := R ∪ {cr};

15. End{2}

20.

M :=

Vi/{cr} (= U/R);

Vi∈ L

21.

L := M ;

22. Until (αr ≤ (cid:15) ∗ Card(U )2) ;

Thuật toán 2.6. Thuật toán tìm rút gọn xấp xỉ theo đánh giá sai số g2.

Input: Bảng quyết định T = (U, C ∪ D) và giá trị ngưỡng (cid:15) ∈ [0, 1].

[

Output: Tập rút gọn xấp xỉ R với sai số g2(R → D) ≤ (cid:15).

Method:

1. Khởi tạo R = ∅;

2. Chọn cr ∈ C \ R sao cho

m(cr, R) = max{m(cj, R) | cj ∈ C \ R}.

3. R := R ∪ {cr}.

4. Nếu Card(Lower[R]/[D]) ≥ Card(U )(1 − (cid:15)) thì dừng. Ngược lại, quay về 2.

Tóm lại, trong chương này chúng tôi đã đưa ra các tiêu chuẩn đại số để đánh

giá độ phụ thuộc của tập thuộc tính quyết định vào tập con R của tập thuộc tính

điều kiện C (k(R, D)) và khả năng đóng góp của một thuộc tính khi tham gia như

là một thành viên của tập rút gọn (m(cj, R)). Trên cơ sở đó xây dựng các thuật

toán dựa vào các phép toán của đại số quan hệ. Trong thuật toán thứ ba, chúng tôi

xây dựng trên cơ sở đưa ra giá trị ωR(D) là số cặp đối tượng bằng nhau trên tập

thuộc tính R ⊆ C nhưng khác nhau trên tập thuộc tính quyết định D và tập R là

một rút gọn nếu giá trị này bằng không. Với các kết qủa trên, chúng ta có thể thu

định sẽ được đưa ra chỉ dựa vào các giá trị của các thuộc tính trong R. Các thuật

toán này khả thi đối với các bảng dữ liệu lớn do độ phức tạp tính toán theo thời

gian là đa thức.

gọn bảng quyết định chỉ trên tập thuộc tính R ∪ D. Trên cơ sở đó, các luật quyết

Chương Chương 3.

KHÁM PHÁ PHỤ THUỘC ĐA TRỊ

DỰA VÀO MA TRẬN PHỤ THUỘC

3.1. Mở đầu

Sự khám phá những phụ thuộc và phụ thuộc xấp xỉ từ cơ sở dữ liệu rất cần

thiết cho mục đích khám phá tri thức và khai phá dữ liệu. Vì vậy việc tìm kiếm các

quan hệ phụ thuộc bên trong dữ liệu luôn luôn thu hút được sự quan tâm nghiên

cứu của nhiều người. Có thể đơn cử một số nhóm tác giả như: Hong Yao, Howard

J. Hamilton & Cory J. Butz [32], Mannila, H., Toivonen, H. & Verkamo, A.I. [22]

và Yka Huhtala, Juha Karkkainen, Pasi Porkka & Hannu Toivonen [15, 16]. Các

nghiên cứu của chúng tôi cũng nhằm vào hai loại phụ thuộc khá quen thuộc trong

cơ sở dữ liệu quan hệ, đó là phụ thuộc hàm và phụ thuộc đa trị. Ngoài việc đề xuất

các thuật toán phát hiện và kiểm chứng các phụ thuộc trong dữ liệu, chúng tôi còn

mở rộng các khái niệm này bằng cách sử dụng các công cụ của lý thuyết tập thô.

Như chúng ta đã biết, sự phụ thuộc giữa các thuộc tính của cơ sở dữ liệu quan

hệ biểu diễn hình dạng của cấu trúc trong quan hệ đó. Chẳng hạn như một phụ

thuộc hàm X → Y biểu diễn sự phụ thuộc của giá trị thuộc tính Y theo giá trị

62

thuộc tính X: Những giá trị của thuộc tính X xác định duy nhất giá trị của thuộc

tính Y . Hay phụ thuộc đa trị X →→ Y là sự phụ thuộc của Y vào X độc lập với

các thuộc tính còn lại.

Nhắc lại rằng, nếu X, Y là các tập thuộc tính, thì Y được gọi là phụ thuộc hàm

[21, 29, 30] vào X trên U và ký hiệu X → Y nếu

∀u, v ∈ U : u(X) = v(X) ⇒ u(Y ) = v(Y ). (3.1)

Hơn nữa, với các điều kiện X∩Y = ∅, X∪Y A, bằng cách đặt Z = A\(X∪Y ),

X →→ Y nếu

ta nói Y là phụ thuộc đa trị [15, 16, 21, 22, 25, 29, 30] vào X trên U và ký hiệu

t(X) = u(X),

(3.2)

∀u, v ∈ U : u(X) = v(X) ⇒ ∃t ∈ U :

t(Y ) = u(Y ),

t(Z) = v(Z).

Tuy nhiên, dữ liệu trong thực tế thường không thoả các điều kiện trong (3.1)

và (3.2) của những phụ thuộc hàm và phụ thuộc đa trị một cách thực sự nghiêm

ngặt trên cả tập đối tượng U . Vì vậy, trong chương này chúng tôi đề nghị các phụ

thuộc mở rộng theo hai nghĩa khác nhau. Một là các phụ thuộc chỉ đúng trên tập

con V các đối tượng của U . Trong trường hợp này, chúng ta sẽ có đánh gía về sai

số của phụ thuộc và phụ thuộc tương ứng được gọi là "phụ thuộc xấp xỉ". Loại thứ

 

hai chúng tôi xét khi giá trị của các thuộc tính nhận được có thể bị sai lệch và phụ

thuộc được chấp nhận khi sai số của các giá trị thuộc tính ở mức độ "cho phép",

phụ thuộc này chúng tôi gọi là "phụ thuộc mở rộng". Các khái niệm phụ thuộc xấp

xỉ và phụ thuộc mở rộng sẽ được trình bày chi tiết trong các phần tiếp theo.

được thực hiện trên cơ sở xây dựng ma trận phụ thuộc và dựa vào sự phân hoạch

Các thuật toán kiểm tra phụ thuộc và phụ thuộc xấp xỉ theo hai nghĩa trên

của quan hệ tương đương ứng với giá trị của các thuộc tính.

3.2. Khảo sát phụ thuộc bằng Ma trận phụ thuộc

3.2.1. Phụ thuộc và phụ thuộc xấp xỉ

63

Trong phần này ta luôn xét A = (U, A) là một hệ thống thông tin với U là tập

các đối tượng và A là tập các thuộc tính. Với mỗi u ∈ U và a ∈ A ta ký hiệu u(a)

là giá trị thuộc tính a của đối tượng u. Nếu X ⊆ A là một tập các thuộc tính ta ký

hiệu u(X) là bộ gồm các giá trị u(a) với a ∈ X. Vì vậy, nếu u và v là hai đối tượng

Trong nhiều trường hợp ta không nhận được X →→ Y nhưng tồn tại một tập

con V ⊂ U sao cho X →→ Y trên V , lúc đó ta ký hiệu X→→V Y . Nếu tập V như

vậy nhận được bằng cách loại bỏ một số rất ít các đối tượng trong U , thì ta nói Y

“phụ thuộc đa trị xấp xỉ“ vào X trên U . Rõ ràng ta cần chọn tập V như vậy càng

lớn càng tốt và điều này sẽ gợi ý cho chúng ta cách đánh giá sai số của phụ thuộc

hàm g3 (xem Mục 2.4.2.) lên phụ thuộc đa trị, cụ thể ta có định nghĩa như sau

Định nghĩa 3.1. Cho X, Y ⊆ A. Ta gọi giá trị sau là sai số của phụ thuộc đa trị

X →→ Y

.

g3(X →→ Y ) := 1 −

max{Card(V ) | V ⊆ U, X→→V Y } Card(U )

Rõ ràng, X →→ Y đúng khi và chỉ khi g3(X →→ Y ) = 0. Trong nhiều trường

thuộc U , ta sẽ nói u(X) = v(X) nếu u(a) = v(a) với mọi thuộc tính a ∈ X.

hợp, ngoài các phụ thuộc đa trị, chúng ta cũng cần xác định các phụ thuộc xấp xỉ

có sai số không vượt quá một giá trị ngưỡng (cid:15) ∈ [0, 1) cho trước.

Cho V ⊆ U và X ⊆ A. Ta gọi tập hợp sau

dom(V, X) = {u(X) | u ∈ V }

là miền giá trị của V trên X. Nhắc lại rằng, trên V tồn tại quan hệ tương đương

IND(X|V ) xác định bởi

∀u, v ∈ V : (u, v) ∈ IND(X|V ) ⇔ u(X) = v(X).

64

Họ các lớp tương đương trên V , tương ứng với IND(X|V ), được ký hiệu là V /X.

Bây giờ cho X, Y ⊆ A là hai tập con các thuộc tính. Giả sử

1 , V i

2 , · · · , V i ni

}; 1 ≤ i ≤ m. U/X = {V1, V2, · · · , Vm}; Vi/Y = {V i

(cid:17)

(cid:16)

Nghĩa là, với mọi đối tượng u, v ∈ U , ta có

(cid:16)

(cid:17)

u(X) = v(X) ⇔ (3.3) ∃i : u, v ∈ Vi

u(X ∪ Y ) = v(X ∪ Y ) ⇔ . (3.4) ∃i, j : u, v ∈ V i j

Định lý 3.1. Cho X, Y ⊆ A. Đặt Z = A \ (X ∪ Y ). Khi đó,

a) X → Y ⇔ Vi/Y = {Vi} (hay ni = 1), với mọi 1 ≤ i ≤ m.

b) X →→ Y ⇔ dom(Vi, Z) = dom(V i

j , Z), với mọi 1 ≤ i ≤ m, 1 ≤ j ≤ ni.

Chứng minh.

a) Hiển nhiên đúng xuất phát từ định nghĩa của phụ thuộc hàm và (3.3)-(3.4).

b) (⇒) Giả sử X →→ Y . Vì bao hàm thức dom(Vi, Z) ⊃ dom(V i

j , Z) là hiển

nhiên, nên ta chỉ cần chứng minh dom(Vi, Z) ⊂ dom(V i

j , Z), với mọi i, j. Thật vậy,

nếu α ∈ dom(Vi, Z) thì ∃v ∈ Vi sao cho v(Z) = α. Lấy u ∈ V i

j suy ra u ∈ Vi hay

u(X) = v(X). Vì X →→ Y nên tồn tại t ∈ Vi sao cho t(Y ) = u(Y ) (nên t ∈ V i

j ) và

t(Z) = v(Z) = α. Vậy α ∈ dom(V i

j , Z).

Định lý sau cho ta các đặc trưng của phụ thuộc hàm và phụ thuộc đa trị.

j , Z), với mọi i, j. Lấy hai đối tượng bất kỳ

(⇐) Giả sử dom(Vi, Z) = dom(V i

u, v ∈ U mà u(X) = v(X), gọi i và j là các chỉ số sao cho u, v ∈ Vi và u ∈ V i

v ∈ Vi nên α = v(Z) ∈ dom(V i, Z) = dom(V i

j . Vì j , Z). Nghĩa là tồn tại đối tượng t ∈ V i j j nên t(X) = u(X) = v(X) và t(Y ) = u(Y ). Hơn nữa

sao cho t(Z) = α. Vì t, u ∈ V i

Ví dụ 3.1. Cho hệ thống quản lý các môn học của sinh viên với tập thuộc tính

t(Z) = v(Z). Vậy X →→ Y .

A = {a1, a2, a3, a4} trong đó a1, a2, a3, a4 lần lượt lưu môn học, mã sinh viên, tên

sinh viên, lớp.

65

U a1 a2 a3 a4

T01 101 G K1 u1

T01 102 H K1 u2

T01 103 I K1 u3

T01 104 J K1 u4

T02 101 G K1 u5

T02 102 H K1 u6

T02 103 I K1 u7

T05

201 E K2

u9

202 F K2

u10 T05

203 K K2

u11 T05

201 E K2

u12 T06

202 F K2

u13 T06

203 K K2

u14 T06

Bảng 3.1: Bảng dữ liệu sinh viên.

Từ hệ thống trên, đặt X = {a2}; Y = {a3} ta có:

U/X = {V1 = {u1, u5}; V2 = {u2, u6}; V3 = {u3, u7}; V4 = {u4, u8}; V5 =

{u9, u12};

T02 104 J K1 u8

V6 = {u10, u13}; V7 = {u11, u14}}.

Mặt khác, Vi/Y = {Vi}, với mọi 1 ≤ i ≤ 7. Do đó X → Y

Bây giờ ta xét X = {a4} và Y = {a1}. Rõ ràng X →→ Y . Chúng ta sẽ kiểm

tra điều này theo kết quả của Định lý 3.1.

Đặt Z = A \ (X ∪ Y ) = {a2, a3}, ta có

U/X = {V1 = {u1, u2, u3, u4, u5, u6, u7, u8}; V2 = {u9, u10, u11, u12, u13, u14}}

66

2 = {u5, u6, u7, u8}}

1 = {u1, u2, u3, u4}; V 1

V1/Y = {V 1

2 = {u12, u13, u14}}

1 = {u9, u10, u11}; V 2

V2/Y = {V 2

dom(V1, Z) = {(101, G), (102, H), (103, I), (104, J)}

1 , Z) = {(101, G), (102, H), (103, I), (104, J)} = dom(V1, Z)

dom(V 1

2 , Z) = {(101, G), (102, H), (103, I), (104, J)} = dom(V1, Z)

dom(V 1

dom(V2, Z) = {(201, E), (201, F ), (201, G)}

1 , Z) = {(201, E), (201, F ), (201, G)} = dom(V2, Z)

dom(V 2

2 , Z) = {(201, E), (201, F ), (201, G)} = dom(V2, Z)

Vậy X →→ Y.

3.2.2. Đặc trưng phụ thuộc bằng ma trận phụ thuộc

Trong phần này chúng tôi trình bày thuật toán tìm tất cả vế phải của phụ

thuộc đa trị X →→ Y và thuật toán kiểm tra phụ thuộc đa trị xấp xỉ chấp nhận

được với sai số bé hơn hoặc bằng một giá trị ngưỡng không âm cho trước. Trước

tiên, chúng tôi đưa vào khái niệm ma trận phụ thuộc nhằm cung cấp một công cụ

mới cho việc kiểm định phụ thuộc đa trị một cách dễ dàng đồng thời mở ra một

cách tiếp cận mới với phụ thuộc xấp xỉ. Trong mục trước, chúng ta đã đưa ra điều

kiện cần và đủ để X →→ Y đúng. Dựa vào kết quả đó, chúng ta sẽ xây dựng thuật

dom(V 2

toán khả thi để kiểm tra một phụ thuộc đúng bằng sự phân hoạch trên các giá trị

thuộc tính.

Vẫn ký hiệu U/X = {V1, V2, · · · , Vm}. Với mỗi i cố định, ta ký hiệu dom(Vi, Z) =

1 , V i

2 , · · · , V i

q } (tức là q = ni), chúng ta sẽ thiết lập một

{α1, α2, · · · , αp}, Vi/Y = {V i

ma trận phụ thuộc Di = (drs)p×q được định nghĩa bởi

67

 

s , Z),



1 nếu αr ∈ dom(V i drs =

s , Z),

0 nếu αr 6∈ dom(V i

q X

p X

p X

q X

và ký hiệu

r=1

s=1

s=1

r=1 Từ định nghĩa suy ra drs = 1 khi và chỉ khi có một đối tượng t ∈ V i

s mà t(Z) = αr.

q X

kDik = drs. drs =

s=1

Do đó tổng các số trên hàng thứ r của ma trận: drs chính là số các đối tượng

s ) có giá trị tại thuộc tính Z bằng αr, còn tổng các số

p X

trên cột thứ s:

drs lại chính là Card(V i

s ). Hiển nhiên kDik = Card(Vi). Nói cách

r=1

khác, số đối tượng của Vi chính là số các số 1 xuất hiện trong ma trận Di. Ta nói

ma trận Di là dầy đặc nếu drs = 1, với mọi r, s. Một điều thú vị là phụ thuộc đa

trị X →→ Y có thể được đặc trưng hoàn toàn bởi các ma trận Di. Điều đó được

khẳng định trong định lý sau

Định lý 3.2. X →→ Y ⇔ Di là ma trận dầy đặc với mọi i ∈ {1, 2, · · · , m}.

Chứng minh.

Giả sử X →→ Y . Theo Định lý 3.1, với mọi i ta có

dom(V i

1 ≤ s ≤ q = ni.

s , Z) = dom(Vi, Z) = {α1, α2, · · · , αp},

(nằm rãi rác trong các V i

Do đó, drs = 1 với mọi r, s, nên Di là ma trận dầy đặc.

s , Z). Vậy, dom(Vi, Z) = dom(V i

s , Z).

s (1 ≤ s ≤ q) ta có drs = 1 nên αr ∈ dom(V i V i Tức là X →→ Y .

Ngược lại, giả sử các Di đều là ma trận dầy đặc. Với mọi αr ∈ dom(Vi, Z) và

Dễ thấy X →→ Y khi và chỉ khi X →→Vi Y , ∀i = 1..m. Định lý 3.2 thực ra khẳng định rằng X →→Vi Y nếu và chỉ nếu Di là ma trận dầy đặc. Từ đó, nếu X →/→ Y thì có ít nhất một ma trận Di không dầy đặc hay nói cách khác, tồn tại

68

Vi mà X →/→Vi Y . Một câu hỏi khá tự nhiên là nếu các Di "gần dầy đặc" thì Y có

phụ thuộc xấp xỉ X hay không? Để đánh giá khả năng "gần dầy đặc" của họ ma

trận phụ thuộc, dưới đây chúng tôi sẽ đưa ra khái niệm về độ dầy đặc của một họ

ma trận.

Cho C và D là các ma trận chỉ chứa các giá trị 0 hoặc 1. Ta nói C là ma trận

con của D và ký hiệu là C ≺ D nếu C có thể thu được từ D bằng cách xoá đi một

số hàng và cột nào đó. Nếu D không phải là ma trận dầy đặc, ta cần tìm ma trận

k(D) := max (cid:8)kCk | C ≺ D và C dầy đặc(cid:9).

với kCk là tổng giá trị các phần tử của ma trận C. Bây giờ tương ứng với họ các

ma trận {D1, D2, · · · , Dm}, ta gọi độ dầy đặc của họ ma trận này là giá trị sau

m X

k(Di)

s(D1, D2, · · · , Dm) :=

.

i=1 m X

kDik

i=1

Rõ ràng, s(D1, D2, · · · , Dm) ≤ 1 và, từ Định nghĩa 3.1 và Định lý 3.1 ta có

s(D1, D2, · · · , Dm) = 1 ⇔ X →→ Y ⇔ g3(X →→ Y ) = 0.

Tổng quát hơn, ta có kết quả sau

con dầy đặc lớn nhất của D. Cụ thể, ta ký hiệu

Định lý 3.3.

s(D1, D2, · · · , Dm) = 1 − e(X →→ Y ).

Trước khi chứng minh định lý này, chúng ta cần làm rõ ý nghĩa của các ma

trận con C i ≺ Di. Như nhận xét sau Định lý 3.2, Di không dầy đặc khi và chỉ

khi X →/→Vi Y . Lúc đó, ta cần xoá một số đối tượng trong Vi để thu được tập

s , Z), với một s nào đó. Như vậy, để thu được tập hợp Wi ⊂ Vi có khả

Wi ⊂ Vi mà X →→Wi Y . Theo Định lý 3.1, tồn tại giá trị αr ∈ dom(Vi, Z) mà αr 6∈ dom(V i

69

năng thoả mãn phụ thuộc X →→Wi Y ta cần thực hiện một trong hai thao tác cơ

bản:

(A): Xoá tất các cả đối tượng t trong lớp V i s

(B): Xoá tất cả các đối tượng t ∈ Vi mà t(Z) = αr

Nếu thực hiện thao tác (A) thì tập Wi ⊂ Vi thu được sẽ tương ứng với ma trận

con C i nhận được từ Di bằng cách xoá đi cột s. Còn nếu thực hiện thao tác (B) thì

tập Wi ⊂ Vi thu được sẽ tương ứng với ma trận con C i nhận được từ Di bằng cách

C i. Số đối tượng phải xoá chính là tổng số phần tử có giá trị 1 trên các dòng và cột

của Di bị xoá. Tức là Card(Vi \ Wi) = kDik − kC ik, hay Card(Wi) = kC ik. Tóm

lại, việc tìm tập con Wi lớn nhất của Vi thoả mãn X →→Wi Y tương đương với việc tìm ma trận dầy đặc C i ≺ Di có kC ik cực đại (tức là kC ik = k(Di)).

Chứng minh Định lý 3.3. Từ những phân tích trên ta thấy, nếu gọi Wi là tập con

có số phần tử lớn nhất của Vi, thoả mãn X →→Wi Y , thì Card(Wi) = k(Di). Mặt

m X

khác, để ý rằng Card(U ) =

kDik. Nên từ Định nghĩa 3.1 ta có

i=1

m X

Card(Wi)

i=1

= 1 − s(D1, D2, · · · , Dm).

g3(X →→ Y ) = 1 −

m X

xoá đi hàng r. Như vậy, để có được phụ thuộc đúng X →→Wi Y chúng ta cần phải xoá đi các dòng và cột trên ma trận phụ thuộc Di để có được ma trận con dầy đặc

i=1

kDik

Định lý được chứng minh.

Để minh hoạ cho kết quả định lý trên, chúng ta xét hệ thống cho trong Bảng 3.2.

Trong đó,

U/X = {V1, V2}; V1 = {t1, t2, t3, t4, t5, t6, t7, t8, t9, t10}; V2 = {t11, t12},

1 , V 1

2 , V 1

3 };

1 = {t1, t2, t3, t4}; V 1 V 1

2 = {t5, t6, t7}; V 1

3 = {t8, t9, t10},

V1/Y = {V 1

70

dom(V1, Z) = {α1, α2, α3, α4, α5}

1 , Z) = {α1, α2, α3, α4}

dom(V 1

2 , Z) = {α3, α4, α5}

dom(V 1

3 , Z) = {α1, α2, α4}

dom(V 1

1 , V 2

2 }; V 2

1 = {t11}; V 2

2 = {t12},

V2/Y = {V 2

1 , Z) = dom(V 2

2 , Z) = {α5}.

dom(V2, Z) = dom(V 2

t1

1 A α1

t2

1 A α2

t3

1 A α3

t4

1 A α4

t5

1 B α3

t6

1 B α4

t7

1 B α5

t8

1 C α1

t9

1 C α2

t10

1 C α4

t11

2 B α5

t12

2 C α5

U X Y Z

Bảng 3.2: Dữ liệu của hệ thống.

71

1 V 1 V 1

2 V 1 3

Hai ma trận D1 và D2 lần lượt được thiết lập như sau

1 1 0 α1

1 V 2 V 2 2

 .

1 1 0 α2 D1 = ; D2 = 0 1 1 1 1 α3 α5

            

            

1 1 1 α4

0 0 1 α5

kiểm chứng được các ma trận con dầy đặc lớn nhất của D1 và D2 là

Rõ ràng, D2 dầy đặc. Tuy vậy, D1 không dầy đặc nên X →/→ Y trên U . Có thể

1 V 1 V 1 3

 

1

1

α1

1 V 2 V 2 2

; C 2 =

C 1 =

 

1

1

1

1

α5

α2

  .

1

1

α4

Điều đó tương ứng với việc xoá hoàn toàn lớp V 1

2 = {t5, t6, t7}, các đối tượng

trong V1 có t(Z) = α3 là {t3, t5}, có t(Z) = α5 là {t7} (tổng số có 4 đối tượng cần

xoá). Độ dầy đặc của {D1, D2} là

=

.

=

s(D1, D2) =

kC 1k + kC 2k kD1k + kD2k

8 12

2 3

             

Do đó, ta có sai số phụ thuộc g3(X →→ Y ) = 1 −

1 3

2 3

. =

Từ Định lý 3.3 và ví dụ trên ta thấy, chỉ cần làm việc trên các ma trận phụ

thuộc, cụ thể là từ giá trị độ dầy đặc của họ ma trận phụ thuộc, chúng ta có thể

tính được sai số phụ thuộc và từ đó khẳng định phụ thuộc có chấp nhận được hay

không. Trong phần sau chúng ta sẽ bàn chi tiết vấn đề này.

3.3. Thuật toán kiểm định và tìm kiếm phụ thuộc

3.3.1. Thuật toán tính độ dầy đặc của dãy ma trận

72

Bài toán đặt ra đầu tiên là với dãy ma trận {D1, D2, · · · , Dm} cho trước, hãy xác

định độ dầy đặc của chúng. Từ định nghĩa ta thấy việc xác định s(D1, D2, · · · , Dm)

chủ yếu dựa vào việc tính giá trị k(Di). Vì vậy, chúng tôi sẽ tập trung xây dựng

thuật toán tìm kiếm các ma trận dầy đặc C i ≺ Di sao cho kC ik = k(Di).

dụ cụ thể. Chúng ta hãy khảo sát lại hệ thống được cho trong Bảng 3.2. Ta cần

phải xác định các ma trận dầy đặc C 1 và C 2, lớn nhất có thể, sao cho C 1 ≺ D1 và

C 2 ≺ D2. Trong ma trận D1, chúng ta cần cân nhắc xem nên giữ lại số drs nào cho

ma trận C 1. Rõ ràng, các giá trị drs = 0 (như d1,2, d2,2...) bắt buộc phải được loại

bỏ. Đối với các drs = 1 chúng ta thử tính toán xem cần loại bỏ tối thiểu bao nhiêu

số 1 khác trong ma trận nếu quyết định giữ lại vị trí này. Chẳng hạn, đối với d1,1.

Nếu cho phép d1,1 ∈ C 1 thì bắt buộc phải loại đi cột 2 (V 1

2 ) và dòng 5 (α5) (vì nếu

đã giữ lại d1,1 mà còn giữ lại dòng 5 hoặc cột 2 thì ma trận thu được không dầy

đặc), do đó số giá trị 1 cần xoá ít nhất là 3. Ta đặt g1,1 = 3 và gọi đó là hệ số loại

bỏ của d1,1. Tương tự, đối với d5,2, nếu muốn giữ lại vị trí này cho C 1 ta cần xoá các

cột 1, 3 và các dòng 1, 2, nên phải xoá ít nhất là g5,2 = 7 số 1. Rõ ràng là những vị

trí có hệ số loại bỏ càng bé càng cần được ưu tiên giữ lại cho ma trận C 1. Một cách

Để dễ hình dung, chúng tôi trình bày ý tưởng thuật toán thông qua một ví

tự nhiên, ta gán grs = ∞ cho các vị trí drs = 0. Cuối cùng ta nhận được ma trận

2 V 1 3

2 V 1 3

G1, gọi là ma trận hệ số loại bỏ của D1:   V 1 1 V 1 V 1 1 V 1

1 1 0 3 ∞ 4 α1 α1

1

0

1

4

5 ∞

α3

α3

1 1 0 3 ∞ 4 α2 α2 D1 = → G1 =

            

            

            

            

1 1 1 1 4 3 α4 α4

0 0 1 α5 α5 ∞ 7 ∞

73

Nhìn vào ma trận này ta thấy vị trí (4, 1) có hệ số loại bỏ bé nhất (g4,1 = 1) nên

quyết định giữ lại vị trí này. Điều đó dẫn đến việc phải xoá đi dòng 5, ma trận D1

1 V 1 V 1

2 V 1 3

trở thành (số 0 in đậm cho biết vị trí mới bị xoá).

1 0 1 α1

1 0 1 α2 D1 = 1 1 0 α3

            

            

0

0

0

α5

Từ đây, tính lại ma trận hệ số G1, chọn giữ lại vị trí có hệ số (dương) bé nhất, xoá

các dòng cột thích hợp rồi viết lại ma trận D1, tính ma trận G1... Quá trình lặp này

kết thúc khi ta nhận được ma trận G1 chỉ chứa các giá trị 0 và ∞. Cụ thể, tiếp tục

thao tác đối với ma trận trên ta được

1 1 1 α4

2 V 1 3

2 V 1 3

1 V 1 V 1

1 V 1 V 1

2 ∞ 3

1

1

0

α1

α1

2 ∞ 3

1

1

0

α2

α2

,→ G1 =

→ D1 =

3

5 ∞

1

0

0

α3

α3

0

4

2

1

1

0

α4

α4

   

0

0

0

α5 ∞ ∞ ∞

α5

1 V 1 V 1

2 V 1 3

1 V 1 V 1

2 V 1 3

                                                   

0 ∞ 1 1 1 0 α1 α1

0 ∞ 1 1 1 0 α2 α2 ,→ G1 = → D1 = → 3 ∞ ∞ 0 0 0 α3 α3

            

            

            

            

0

0

0

α5 ∞ ∞ ∞

α5

0 ∞ 1 1 1 0 α4 α4

2 V 1 3

1 V 1 V 1

74

0 ∞ 0 α1

0 ∞ 0 α2 ,→ G1 = . α3 ∞ ∞ ∞

            

            

0 ∞ 0 α4

α5 ∞ ∞ ∞

Cuối cùng ta nhận được ma trận con dầy đặc C 1 gồm sáu số 1. Đó cũng chính

D2 thì cũng bằng kỹ thuật như trên ta thu được G2 = (0 0). Nên C 2 = D2 và

k(D2) = kC 2k = 2.

Bây giờ chúng tôi sẽ đưa ra thuật toán tìm các k(Di). Trước hết, đối với mỗi

ma trận phụ thuộc Di, chúng ta cần xây dựng ma trận hệ số phụ thuộc Gi (thủ tục

Compute_Gi). Một cách tổng quát, ma trận Gi = (grs) được xây dựng như sau:

Nếu drs = 0 thì đặt grs = ∞, ngược lại, nếu drs = 1 thì grs là tổng số các số 1

tối thiểu cần phải loại để giữ lại số 1rs trong ma trận phụ thuộc Di, những số 1

chắc chắn bị loại là những số nằm trên dòng u mà dus = 0 hoặc nằm trên cột v mà

drv = 0. Nói cách khác, khi giữ lại số 1rs thì phải loại các số 1uv nếu dus ∗ drv = 0.

Tóm lại, ta có

nếu drs = 0,

là số các giá trị 0 còn lại trong ma trận G1. Lúc đó, k(D1) = kC 1k = 6. Đối với

grs =

dus×drv=0

  X duv nếu drs = 1. 

Rõ ràng, grs = ∞ nếu drs = 0, grs = 0 nếu drs = 1 và việc giữ lại vị trí này

không đòi hỏi phải xoá đi bất kỳ số 1 nào. Cuối cùng, grs = l > 0 nếu drs = 1 và

việc giữ lại vị trí này đòi hỏi phải xoá đi ít nhất l số 1 khác.

0 sẽ xác định một ma trận con dầy đặc của Di, thuật toán dừng. Trong trường hợp

Nếu ma trận Gi chỉ gồm các giá trị 0 và ∞ thì các vị trí tương ứng với giá trị

ngược lại, chúng ta cần xác định vị trí 1hv với ghv > 0 đáng được giữ lại nhất. Với ý

nghĩa của các grs như đã phân tích trên, rõ ràng vị trí này cần thoả mãn điều kiện

75

sau

ghv = min{grs | grs > 0}.

Với quyết định giữ lại giá trị 1hv ta phải xoá đi các số 1rs liên quan (tức là thoả

mãn dhs ∗ drv = 0) và nhận được ma trận Di mới (thủ tục Modify_Di). Quá trình

tiếp tục cho đến khi nhận được ma trận Gi chỉ gồm các giá trị 0 và ∞. Thuật toán

được trình bày chi tiết như sau:

Thuật toán 3.1. Xác định k(Di)

Output: k(Di).

Method:

1. k := kDik;

2. Compute_Gi;

3. Xác định ghv = min{grs | grs > 0};

4. Nếu ghv = ∞ thì Output k và dừng; Ngược lại, sang 5;

5. k := k − ghv;

6. Modify_Di;

7. Quay lại 2;

Proc Compute_Gi

Input: Di.

1. For r ∈ {1..pi}; s ∈ {1..qi} do

2. If drs = 0 then grs := ∞

Else 3.

Begin 4.

5. grs := 0;

6. For u ∈ {1..pi}; v := {1..qi} do

76

7. If dus ∗ drv = 0 then

8. grs := grs + duv;

9. End

EndProc Compute_Gi;

Proc Modify_Di

1. For r ∈ {1..pi}; s ∈ {1..qi} do

3.

drs := 0.

EndProc Modify_Di

độ phức tạp tính toán O(p2

i q2 O(piqi). Do đó, độ phức tạp của mỗi vòng lặp là O(p2

Giả sử ma trận Di có kích thước pi × qi. Lúc đó, thủ tục Compute_Gi có i ), còn thủ tục Modify_Di có độ phức tạp tính toán i q2 i ) và thuật toán xác định

k(Di) có độ phức tạp tính toán trong trường hợp xấu nhất là O(p3

i ). Chú ý rằng,

i q3 nếu ký hiệu xi = Card(Vi) = kDik thì ta có ước lượng: xi ≤ piqi ≤ x2 i .

3.3.2. Thuật toán kiểm định phụ thuộc xấp xỉ

Trong phần này, chúng ta sẽ đánh giá xem với hai tập thuộc tính đã cho

2. If drv ∗ dhs = 0 then

X, Y ⊆ A, phụ thuộc X →→ Y có chấp nhận được với một sai số (cid:15) hay không.

Từ Định lý 3.2 và Định lý 3.3, chúng ta thấy rằng, phụ thuộc X →→ Y là chấp

m X

nhận được nếu s(D1, D2, · · · , Dm) ≥ 1 − (cid:15). Tức là

i=1

k(Di) ≥ (1 − (cid:15)) Card(U ).

Thuật toán được xây dựng như sau

Thuật toán 3.2. Kiểm tra phụ thuộc chấp nhận được

77

Input: Hệ thống thông tin A = (U, A),

Các tập X, Y ⊆ A; Giá trị ngưỡng (cid:15) ≥ 0.

Output: g3(X →→ Y ) ≤ (cid:15) ?

Method:

1. s := 0;

2. OK:= TRUE;

4. Begin

Xây dựng Di;

5.

s := s + k(Di);

6.

7.

If s ≥ (1 − (cid:15)) × Card(U ) then Exit;

8. End;

9. OK:= FALSE;

Trong thuật toán trên, m chính là số lớp tương đương của IN D(X). Giả sử

Card(U ) = n và mỗi ma trận Di có kích thước pi × qi. Khi đó việc xây dựng các

ma trận Di có thể thực hiện bằng cách sắp xếp các đối tượng trong U , vì vậy độ

phức tạp của thuật toán xây dựng dãy các ma trận Di là O(nlogn) và độ phức tạp

của thuật toán kiểm chứng phụ thuộc xấp xỉ được xác định bởi vòng lặp For ở 3.

3. For i ∈ {1..m} do

Thực chất ở đây chúng ta thực hiện hai vòng lặp, một vòng lặp xây dựng các Di và

m X

một vòng lặp tính sai số phụ thuộc. Vòng lặp tính sai số phụ thuộc có độ phức tạp

i q3 p3

i ). Vì piqi ≤ x2

i , nên độ phức tạp tính toán

i=1

m X

trong trường hợp xấu nhất là O(

i=1

của Thuật toán 3.2 không vượt quá O(nlogn + x6 i ).

3.3.3. Thuật toán tìm kiếm phụ thuộc tối tiểu vế phải

78

Một phụ thuộc X →→ Y được gọi là tối tiểu vế phải và ký hiệu X→→minY nếu

với mọi Y 0 ⊂ Y , X →/→ Y 0. Ta đã biết rằng, nếu X →→ Y thì Y = Y1 ∪ Y2 ∪ · · · ∪ Yn

với X→→minYi với mọi 1 ≤ i ≤ n. Vì vậy, trong phần này chúng tôi chỉ đặt vấn

đề tìm kiếm tất cả các phụ thuộc tối tiểu vế phải với vế trái X là một tập con cho

trước các thuộc tính.

Thuật toán chúng tôi sắp đề nghị sử dụng một phần ý tưởng của Thuật toán

thường dạng X \ {c} → c. Cụ thể, chúng tôi sẽ tìm các tập con Y ⊆ A thoả mãn

X→→minY theo thứ tự tăng dần của Card(Y ). Nghĩa là, việc tìm kiếm vế phải của

phụ thuộc xuất phát từ họ các tập có một phần tử, tập có hai phần tử ...

Gọi Li là họ các tập thuộc tính Y có kích thước i và có khả năng thoả X →→ Y .

Vì X→→minY thì X ∩ Y = ∅ nên chúng ta khởi tạo L1 := {{a} | a ∈ A \ X}. Hơn

nữa, nếu Y ∈ Li và X→→minY thì Y không thể là tập con của tập Y 0 ∈ Lj với

j > i mà X→→minY 0, nói cách khác, Y sẽ không tham gia vào việc xây dựng họ

Lj, với mọi j > i. Vì vậy ở đây chúng tôi dùng thêm họ Mi lưu các tập Z ∈ Li mà

X →/→ Z và xây dựng họ Li+1 dựa vào Mi. Cụ thể, sau khi tìm tất cả các phụ thuộc

X→→minY với Y ∈ Li, chúng ta xây dựng Li+1 bằng cách lấy hợp hai tập bất kỳ

Y1, Y2 ∈ Mi, nếu hợp này cho ta một tập có i + 1 phần tử thì đưa nó vào Li+1. Rõ

ràng, ban đầu chúng ta cần khởi tạo Mi bằng Li, và sau đó mỗi khi có một phụ

Tane [25] được các tác giả này thiết kế nhằm tìm các phụ thuộc hàm không tầm

thuộc X →→ Y đúng với Y ∈ Li thì loại Y khỏi Mi.

Cuối cùng, nếu Z = A \ (X ∪ Y ) thì từ X →→ Y ta cũng có X →→ Z và

Card(Y ) + Card(Z) = Card(A \ X). Vì vậy quá trình tìm kiếm của chúng tôi chỉ

diễn ra trong các họ Li với i ≤ Card(A \ X)/2.

Thuật toán 3.3. Tìm kiếm tất cả phụ thuộc tối tiểu.

Input: Hệ thống thông tin A = (U, A),

Tập con X ⊆ A.

79

Output: Tất cả phụ thuộc X→→minY.

Method:

1. i := 1;

2. L1 := {{a} | a ∈ A \ X};

3. While i ≤ Card(A \ X)/2 do

4. Mi := Li;

If X →→ Y then

6.

7.

Output X→→minY ;

8.

Mi := Mi \ {Y };

EndIf;

9.

EndFor;

10.

11.

Compute_Li+1;

i := i + 1;

12.

13. EndWhile;

Proc Compute_Li+1

1.

Li+1 := ∅;

5. For Y ∈ Mi do

2. For X, Y ∈ Mi, X 6= Y do

Z := X ∪ Y ; 3.

If Card(Z) = i + 1 then 4.

5. Li+1 := Li+1 ∪ {Z};

EndIf; 6.

EndFor; 7.

80

EndProc Compute_Li+1;

Độ phức tạp tính toán của thuật toán này được xác định bởi vòng lặp While ở

3. Tại mỗi bước của vòng lặp, chúng ta xét tất cả các phần tử của Mi và kiểm tra

k là tổ hợp k

k (C i

phụ thuộc, sau đó tính Li+1 theo Mi. Chú ý rằng Card(Mi) ≤ C i

m X

chập i phần tử, với k = Card(A \ X)). Mặt khác, độ phức tạp của thuật toán kiểm

i=1

tra phụ thuộc là O(nlogn + x6 i ), còn độ phức tạp của thủ tục Compute_Li+1

Card(Mi)) = O(Card(Mi)2). Vì vậy độ phức tạp tính toán của Thuật toán 3.3

k/2 X

m X

trong trường hợp xấu nhất là O(

C i

k × (nlogn +

i )) = O(2k/2 × (nlogn + x6

i=1

i=1

m X

x6 i )). Trong đó, k = Card(A \ X), n = Card(U ), m là số lớp tương đương của

i=1 IN D(X) và xi là lực lượng của lớp tương đương Vi, 1 ≤ i ≤ m.

3.4. Mở rộng phụ thuộc hàm và phụ thuộc đa trị

Trong ví dụ về dữ liệu sinh viên cho trong Bảng 3.1, các thuộc tính mã sinh

viên, họ tên là phụ thuộc đa trị vào thuộc tính lớp, nghĩa là mọi sinh viên trong

cùng một lớp sẽ phải học các môn như nhau. Đó là theo cách đào tạo niên chế. Bây

giờ, nếu nhà trường đào tạo theo tín chỉ, trong đó có một số học phần tự chọn, và

với mỗi học phần như vậy các sinh viên trong một lớp có thể học các môn khác

là O(C 2

nhau (nhưng được xem là tương đương), thì chúng ta vẫn có lý do để nói rằng các

thuộc tính mã sinh viên, họ tên phụ thuộc đa trị vào thuộc tính lớp, mặc dù lúc

này điều kiện (3.2) không còn đúng nữa. Rõ ràng là trong trường hợp này các định

nghĩa như trên không còn phù hợp. Mặt khác, trong thực tế không hiếm khi những

dữ liệu thu nhận được không còn chính xác như vốn có. Điều này chắc chắn cũng

làm cho chúng ta không phát hiện hết mọi phụ thuộc từ cơ sở dữ liệu.

Để góp phần phát hiện các phụ thuộc tiềm ẩn trong dữ liệu, trong phần này

chúng tôi sẽ cố gắng đưa ra một cách tiếp cận mở rộng của các khái niệm phụ thuộc

81

hàm và phụ thuộc đa trị. Các khái niệm mở rộng này được thiết lập dựa trên một

hàm đánh giá độ tương tự giữa các giá trị trong bảng dữ liệu, cũng gần như nhát cắt

được trình bày trong [9]. Tuy nhiên các tác giả trong [9] xây dựng các nhát cắt như

một quan hệ tương đương, do đó hai giá trị có quan hệ với nhau có thể khác biệt

rất lớn vì tính chất bắc cầu suy dẫn sẽ dẫn đến điều đó, trong khi nhiều ứng dụng

thực tế không đòi hỏi điều này, thậm chí khó có thể đáp ứng được. Trong cách xây

dựng của chúng tôi, khi sự tương tự giữa hai giá trị đạt đến một mức độ nhất định,

chúng ta có thể xem hai giá trị này là “đồng nhất“. Với cách tiếp cận này, các phụ

mở rộng nào đó, chúng tôi cũng sẽ sử dụng một kiểu ma trận phụ thuộc tương tự

như đã làm để kiểm tra phụ thuộc trong Mục 3.2. trong phần phụ thuộc xấp xỉ.

3.4.1. Quan hệ tương tự

Cho hệ thống thông tin A = (U, A). Với mỗi V ⊆ U và X ⊆ A, ta gọi miền giá

trị của V trên X là tập hợp

dom(V, X) := {u(X) | u ∈ V }.

Khi V = U ta viết dom(X) thay cho dom(U, X) và hơn nữa, nếu X = {a}, ta chỉ

viết một cách đơn giản: Ia = dom({a}).

Để mở rộng các khái niệm phụ thuộc, trên các tập giá trị Ia, ngoài quan hệ

thuộc thực ra cũng là một kiểu phụ thuộc xấp xỉ. Để kiểm chứng một phụ thuộc

bằng nhau thông thường ta giả định là tồn tại một quan hệ tương tự, phản ánh độ

gần nhau giữa các giá trị. Một cách chính xác, một ánh xạ s : Ia × Ia → [0, 1] được

gọi là quan hệ tương tự trên tập Ia nếu hai điều kiện sau thỏa mãn:

a) s(a1, a2) = s(a2, a1), với mọi a1, a2 ∈ Ia,

b) s(a1, a2) = 1 ⇔ a1 = a2.

s(a1, a2) được gọi là độ tương tự giữa hai giá trị a1 và a2. Cho α ∈ [0, 1], hai giá trị

a1 và a2 được gọi là α−tương tự, và ký hiệu a1 =α a2, nếu s(a1, a2) ≥ α. Rõ ràng

82

khi hàm s chỉ nhận hai giá trị 0 và 1, thì với mọi α > 0, a1 =α a2 khi và chỉ khi

a1 = a2.

Cho tập thuộc tính B = {b1, b2, · · · , bm} ⊆ A và ξ, η ∈ dom(B). Khi đó ξ và η

có thể xem là hai dãy (ξ1, ξ2, · · · , ξm) và (η1, η2, · · · , ηm), với ξi, ηi ∈ Ibi, 1 ≤ i ≤ m.

Độ tương tự giữa ξ và η được định nghĩa là giá trị:

(3.5) S(ξ, η) = min{s(ξi, ηi) | 1 ≤ i ≤ m}.

Bây giờ, giả sử ξ ∈ dom(B) và E ⊆ dom(B), ta gọi độ thuộc của ξ vào E là độ

bởi:

S(ξ, η).

µ(ξ, E) = max η∈E

Một cách tự nhiên, ta tiếp tục dùng ký hiệu ξ =α η nếu S(ξ, η) ≥ α và nói rằng

ξ và η là α−tương tự. Cũng vậy, ta nói ξ thuộc vào tập E với mức α, và ký hiệu

ξ ∈α E, nếu µ(ξ, E) ≥ α. Mệnh đề dưới đây cho ta một số tính chất cơ bản của các

khái niệm này mà việc chứng minh có thể được suy ra trực tiếp từ định nghĩa.

Mệnh đề 3.4. Cho B ⊆ A, E ⊆ dom(B), ξ, η ∈ dom(B), ta có

a) S(ξ, η) = S(η, ξ); S(ξ, η) = 1 ⇔ ξ = η.

b) 0 ≤ µ(ξ, E) ≤ 1; µ(ξ, E) = 1 ⇔ ξ ∈ E.

tương tự lớn nhất giữa ξ với các giá trị trong E. Cụ thể, giá trị này được xác định

c) Nếu E ⊆ E0 ⊆ dom(B), thì µ(ξ, E) ≤ µ(ξ, E0).

d) ξ ∈α E ⇔ ∃η ∈ E, ξ =α η.

Ví dụ 3.2. Xét hệ thống với ba thuộc tính: a (tên lập trình viên), b (trình độ chuyên

tự giữa các giá trị trong từng thuộc tính được cho bởi Bảng 3.4 và Bảng 3.5.

môn), c (ngôn ngữ lập trình sử dụng) được cho trong Bảng 3.3, còn quan hệ tương

83

a b c

A Đại học PASCAL

A Đại học FORTRAN

A Đại học COBOL

A Trung cấp PASCAL

A Trung cấp C

A Thạc sĩ

COBOL

A Thạc sĩ

PASCAL

B Đại học

C

B Đại học

PASCAL

Bảng 3.3: Bảng dữ liệu về các lập trình viên

b

Đại học Trung cấp Thạc sĩ

Đại học

1

0.8

0.6

Trung cấp

0.6

0.3

1

Thạc sĩ

0.8

1

0.3

Bảng 3.4: Quan hệ tương tự trên Ib

A Trung cấp FORTRAN

FORTRAN COBOL PASCAL C c

FORTRAN 1 0.7 0.8 0.9

COBOL 0.9 0.7 0.6 1

PASCAL 0.7 1 0.8 0.7

C 0.8 0.6 1 0.6

Bảng 3.5: Quan hệ tương tự trên Ic

84

Đặt B = {b, c}, ξ= (Đại học, FORTRAN), η= (Thạc sĩ, COBOL), với ξ, η ∈

dom(B), ta có

S(ξ, η) = min{s(Đại học, Thạc sĩ), s(FORTRAN, COBOL)}

= min{0.8, 0.9} = 0.8.

Mặt khác, với E ={Đại học,Trung cấp} ⊆ Ib và Thạc sĩ ∈ Ib, ta có

µ(Thạc sĩ, E) = max{s(Thạc sĩ, Đại học), s(Thạc sĩ, Trung cấp)}

Như vậy, ξ =0.8 η và Thạc sĩ ∈0.8 E.

3.4.2. Phụ thuộc mở rộng và các tính chất

Dựa trên quan hệ α−tương tự trên các tập giá trị, chúng ta sẽ đưa ra các khái

niệm phụ thuộc hàm và phụ thuộc đa trị mở rộng. Một cách chính xác, chúng ta có

các định nghĩa sau

Định nghĩa 3.2. Cho X, Y ⊆ A và α, β ∈ [0, 1]. Ta nói Y là (α, β)−phụ thuộc hàm

vào X trên U và ký hiệu X

α,β −→ Y nếu

∀u, v ∈ U : u(X) =α v(X) ⇒ u(Y ) =β v(Y ).

= max{0.8, 0.3} = 0.8.

Khi α = β = 1 ta nhận được định nghĩa phụ thuộc hàm kinh điển.

Định nghĩa 3.3. Cho X, Y ⊆ A (với X ∩ Y = ∅, X ∪ Y A) và α, β ∈ [0, 1]. Đặt

Z = A \ (X ∪ Y ). Ta nói Y là (α, β)−phụ thuộc đa trị vào X trên U , và ký hiệu

α,β →→ Y , nếu với mọi cặp đối tượng u, v ∈ U sao cho u(X) =α v(X), tồn tại đối

X

tượng t ∈ U sao cho t(X) =α u(X), đồng thời thỏa mãn một trong hai điều kiện

a) t(Y ) = u(Y ) và t(Z) =β v(Z),

b) t(Y ) =β u(Y ) và t(Z) = v(Z).

85

Rõ ràng, khi α = β = 1 hai điều kiện trên là đồng nhất và trùng với (3.2), nên

1,β −→ Y , ta gọi Y là β−phụ thuộc hàm vào X. Tương tự,

ta cũng nhận được khái niệm phụ thuộc đa trị kinh điển.

Khi α = 1, nếu X 1,β →→ Y thì Y được gọi là β−phụ thuộc đa trị vào X. X

Từ các định nghĩa mở rộng trên dễ kiểm tra được rằng, nếu 0 ≤ α ≤ α0 ≤ 1,

α,β −→ Y (X

α,β →→ Y ) kéo theo X

α0,β0 −→ Y (X

α0,β0 →→ Y ). Ngoài

và 0 ≤ β0 ≤ β ≤ 1 thì X

ra, một số tính chất của phụ thuộc hàm và phụ thuộc đa trị vẫn còn đúng đối với

Mệnh đề 3.5. Cho X, Y, Z ⊆ A, α, β ∈ [0, 1]. Khi đó

a) Nếu Y ⊆ X thì X

α,β −→ Y, với mọi 0 ≤ β ≤ α ≤ 1.

b) Nếu X

α,β −→ Y thì X ∪ Z

α,γ −→ Y ∪ Z, với γ = min{α, β}.

c) Nếu X

α,β −→ Y và Y

β,γ −→ Z, thì X

α,γ −→ Z.

d) Nếu X

α,β →→ Y và A \ (X ∪ Y ) 6= ∅ thì X

α,β →→ A \ (X ∪ Y ).

e) Nếu X

α,β −→ Y thì X

α,β →→ Y.

Chứng minh.

a) Hiển nhiên đúng vì nếu Y ⊆ X thì với mọi đối tượng u, v ∈ U , u(X) =α v(X)

kéo theo u(Y ) =β v(Y ).

các phụ thuộc mở rộng. Điều đó được khẳng định trong mệnh đề dưới đây

b) Với mọi cặp đối tượng u, v ∈ U nếu u(X∪Z) =α v(X∪Z) thì u(Z) =α v(Z) và

α,β −→ Y nên u(Y ) =β v(Y ). Do đó u(Y ∪ Z) =min{α,β} v(Y ∪ Z).

u(X) =α v(X). Vì X

α,γ −→ Y ∪ Z, với γ = min{α, β}.

Vậy X ∪ Z

α,γ −→ Z.

β,γ −→ Z, nên u(Z) =γ v(Z). Vậy X

c) Với mọi cặp đối tượng u, v ∈ U nếu u(X) =α v(X) thì u(Y ) =β v(Y ) do α,β −→ Y . Mặt khác, vì Y X

d) Không mất tính tổng quát, giả sử X ∩ Y = ∅. Khi đó, đặt Z = A \ (X ∪ Y ),

α,β →→ Y suy ra với mọi cặp đối tượng u, v ∈ U

thì Y = A \ (X ∪ Z). Từ X

86

α,β →→ Z.

mà u(X) =α v(X) thì tồn tại đối tượng t ∈ U sao cho t(X) =α u(X) và t(Y ) =

u(Y ), t(Z) =β v(Z) hoặc t(Y ) =β u(Y ), t(Z) = v(Z). Do đó X

α,β −→ Y nên với mọi cặp đối tượng u, v ∈ U

e) Đặt Z = A \ (X ∪ Y ). Do X

α,β →→ Y .

mà u(X) =α v(X) ta có v(Y ) =β u(Y ). Bằng cách chọn t = v ta nhận được

t(X) =α u(X), t(Z) = v(Z) và t(Y ) =β u(Y ). Vậy X

Ví dụ 3.3. Xét hệ thống A = (U, {X, Y, Z}) được cho trong Bảng 3.6, các quan hệ

tương tự trên VX, VY và VZ được cho trên Bảng 3.7.

(0.8,0.9) →→ Y .

U X Y Z

t1

x1

y1

z1

t2

x2

y2

z1

t3

x3

y3

z2

t4

x3

y1

z2

t5

x1

y3

z3

t6

x1

y2

z3

t7

x4

y1

z1

t8

x4

y1

z2

Bảng 3.6: Dữ liệu của hệ thống.

X x1

x2

x3

x4

Khi đó, dễ thấy X →/→ Y . Nhưng X

Z Y y1 y2 y3 z1 z2 z3 1 0.8 0.6 0.3 x1 1 0.5 0.7 1 0.6 0.7 y1 z1 0.8 1 0.9 0.4 x2 05 1 0.9 06 1 0.8 y2 z2 0.6 0.9 1 0.4 x3 0.7 0.9 1 0.7 0.8 1 y3 z3 0.3 0.4 0.4 1 x4

Bảng 3.7: Các quan hệ tương tự trên IX, IY và IZ.

3.4.3. Đặc trưng β−phụ thuộc bằng ma trận phụ thuộc

87

Trong Mục 3.2. để nghiên cứu phụ thuộc đa trị, chúng ta đã thiết lập ma trận

phụ thuộc dựa vào phân hoạch trên các giá trị thuộc tính và đã chứng minh được

rằng, X →→ Y đúng khi và chỉ khi ma trận phụ thuộc là dầy đặc, tức là mọi phần

tử của ma trận đều có giá trị 1. Trong trường hợp ma trận phụ thuộc là gần đặc

(tức là chứa phần lớn các số 1), thì ta cũng nhận được một phụ thuộc đa trị xấp xỉ

(tức là bỏ đi một số ít đối tượng nào đó của bảng dữ liệu thì nhận được phụ thuộc

đúng). Trên cơ sở các kết quả này, một thuật toán kiểm chứng phụ thuộc và phụ

đó, ở đây chúng ta sẽ xây dựng một ma trận có vai trò tương tự trong việc xác định

β−phụ thuộc đa trị.

1,β →→ Y đúng

Giả sử X, Y ⊆ A và U/X = {U1, U2, · · · , Um}. Rõ ràng, X

trên U khi và chỉ khi X

1,β →→ Y đúng trên mọi Ui. Do đó, ở đây ta chỉ hạn chế

việc kiểm tra phụ thuộc trên mỗi Ui cố định. Ký hiệu Z = A \ (X ∪ Y ). Giả sử

dom(Ui, Y ) = {ξ1, ξ2, · · · , ξp(i)} và dom(Ui, Z) = {η1, η2, · · · , ηq(i)}. Với mỗi ξj, ηk ta

ký hiệu

Ej := {t(Z) | t ∈ Ui; t(Y ) = ξj} ⊆ dom(Ui, Z);

Fk := {t(Y ) | t ∈ Ui; t(Z) = ηk} ⊆ dom(Ui, Y ).

Ta gọi ma trận phụ thuộc mở rộng, tương ứng với lớp Ui, là Di = (djk)p(i)×q(i), với

thuộc xấp xỉ dựa vào ma trận phụ thuộc cũng đã được thiết lập. Phát triển ý tưởng

các thành phần djk được xác định bởi:

djk := max{µ(ξj, Fk), µ(ηk, Ej)}.

Ma trận Di được gọi là β−dầy đặc nếu với mọi j, k ta đều có djk ≥ β, hay, một

cách tương đương: hoặc ξj ∈β Fk hoặc ηk ∈β Ej.

Tương tự như phụ thuộc đa trị kinh điển, β−phụ thuộc đa trị cũng có thể được

đặc trưng hoàn toàn bằng họ các ma trận phụ thuộc mở rộng Di. Điều đó được

khẳng định trong định lý sau

88

Định lý 3.6. Y là β−phụ thuộc đa trị vào X khi và chỉ khi Di là β−dầy đặc, với

mọi 1 ≤ i ≤ m.

Chứng minh.

1,β →→ Y . Chúng ta sẽ chứng minh mọi Di đều là ma trận β−dầy đặc.

Giả sử X

Thật vậy, với mọi 1 ≤ j ≤ p(i) và 1 ≤ k ≤ q(i), tồn tại hai đối tượng u, v ∈ Ui sao

cho u(Y ) = ξj và v(Z) = ηk. Vì u và v cùng thuộc lớp Ui nên u(X) = v(X). Theo

định nghĩa của β−phụ thuộc đa trị, tồn tại đối tượng t ∈ Ui thoả mãn một trong

a) t(Y ) = u(Y ) = ξj và t(Z) =β v(Z) = ηk,

b) t(Y ) =β u(Y ) = ξj và t(Z) = v(Z) = ηk.

Nếu trường hợp a) xãy ra thì t(Z) ∈ Ej và ηk =β t(Z). Do đó, µ(ηk, Ej) ≥ β. Tương

tự, nếu b) xãy ra thì µ(ξj, Fk) ≥ β. Cả hai trường hợp đó đều dẫn đến djk ≥ β. Vì

điều này đúng với mọi djk nên Di là ma trận β−dầy đặc.

Ngược lại, giả sử mọi Di đều là ma trận β− dầy đặc. Cho hai đối tượng tuỳ

ý u, v ∈ U thoả mãn u(X) = v(X). Lúc đó, u và v phải thuộc cùng một lớp tương

đương Ui nào đó. Đặt ξj = u(Y ) và ηk = v(Z). Do djk ≥ β nên ta có

i) hoặc µ(ξj, Fk) ≥ β,

hai điều kiện sau

ii) hoặc µ(ηk, Ej) ≥ β.

Nếu i) đúng thì tồn tại t ∈ Ui sao cho t(Z) = ηk = v(Z) và t(Y ) =β ξj = u(Y ), còn

nếu ii) đúng thì tồn tại t ∈ Ui sao cho t(Y ) = ξj = u(Y ) và t(Z) =β ηk = v(Z).

1,β →→ Y

Trong cả hai trường hợp, t đều thoả mãn điều kiện của Định nghĩa 3.3. Vậy X

và định lý đã được chứng minh.

Ví dụ 3.4. Xét hệ thống A = (U, {X, Y, Z}) được cho trong Bảng 3.8, các quan hệ

tương tự trên VY và VZ được cho trên Bảng 3.9.

89

U X Y Z

t1 x1 y1 z1

t3

x1

y3

z2

t4

x1

y1

z2

t5

x1

y3

z3

t6

x1

y2

z3

t7

x2

y1

z1

t8

x2

y1

z2

Bảng 3.8: Bảng dữ liệu.

Z

Y y1

y2

y3

z1

z2

z3

1

0.5

0.7

1

0.6

0.7

z1

y1

05

1

0.9

06

1

0.8

z2

y2

0.7

0.9

1

0.7

0.8

1

z3

y3

t2 x1 y2 z1

Bảng 3.9: Các quan hệ tương tự trên IY và IZ.

90

1, 0.8 →→ Y .

Khi đó, ta có X

U/X = {U1, U2}, với U1 = {t1, t2, t3, t4, t5, t6} và U2 = {t7, t8}.

Trên lớp U1 ta có dom(U1, Y ) = {y1, y2, y3}, dom(U1, Z) = {z1, z2, z3} và

E1 = {t(Z) | t ∈ U1, t(Y ) = y1} = {z1, z2};

E2 = {t(Z) | t ∈ U1, t(Y ) = y2} = {z1, z3};

E3 = {t(Z) | t ∈ U1, t(Y ) = y3} = {z2, z3};

F2 = {t(Y ) | t ∈ U1, t(Z) = z2} = {y1, y3};

F3 = {t(Y ) | t ∈ U1, t(Z) = z3} = {y2, y3}.

Từ đó các phần tử của ma trận D1 được xác định bởi:

d11 = max{µ(y1, F1), µ(z1, E1)} = max{1; 1} = 1;

d12 = max{µ(y1, F2), µ(z2, E1)} = max{1; 1} = 1;

d13 = max{µ(y1, F3), µ(z3, E1)} = max{0.7; 0.8} = 0.8;

d21 = max{µ(y2, F1), µ(z1, E2)} = max{1; 1} = 1;

d22 = max{µ(y2, F2), µ(z2, E2)} = max{0.9; 0.8} = 0.9;

d23 = max{µ(y2, F3), µ(z3, E2)} = max{1; 1} = 1;

d31 = max{µ(y3, F1), µ(z1, E3)} = max{0.9; 0.7} = 0.9;

F1 = {t(Y ) | t ∈ U1, t(Z) = z1} = {y1, y2};

d32 = max{µ(y3, F2), µ(z2, E3)} = max{1; 1} = 1;

d33 = max{µ(y3, F3), µ(z3, E3)} = max{1; 1} = 1.

Tương tự, trên lớp U2 ta có dom(U2, Y ) = {y1}, dom(U2, Z) = {z1, z2} và bằng

tính toán đơn giản ta thu được các phần tử của ma trận D2 là d11 = d12 = 1. Tóm

lại, ta được

91

(cid:16)

(cid:17)

1 0.8 1

   

   

, D1 = D2 = . 1 1 0.9 1 1

1 0.9 1

X

3.4.4. Thuật toán kiểm định β−phụ thuộc đa trị

Từ Định lý 3.6, chúng ta thấy việc kiểm tra phụ thuộc dạng X

1,β →→ Y thực

chất là kiểm tra tính β−dầy đặc của tất cả các ma trân phụ thuộc mở rộng Di. Vì

vậy trước hết chúng ta cần xây dựng thuật toán tính các ma trận Di và sau đó sẽ

thiết lập thuật toán kiểm định β−phụ thuộc. Cũng cần lưu ý là họ các lớp tương

đương U/X = {U1, U2, · · · , Um} có thể nhận được sau một phép sắp xếp các đối

tượng trong U theo thứ tự các giá trị trong dom(X). Vì vậy, thuật toán sau chỉ tính

Di đối với một Ui cho trước.

Thuật toán 3.4. Tính Di.

Input:

Tập thuộc tính A, các tập con X, Y ⊆ A,

Rõ ràng với β ≤ 0.8 thì cả hai ma trận D1 và D2 đều β−dầy đặc. Do đó 1,β →→ Y , với mọi β ≤ 0.8. Trong khi đó, nếu β > 0.8 thì D1 không β−dầy đặc nên 1,β →/→ Y . X

Lớp tương đương thứ i của quan hệ IND(X): Ui,

Các quan hệ tương tự trên các thuộc tính.

Output: Di = (djk)p(i)×q(i).

Method:

1. Tính dom(Ui, Y ) = {ξ1, ξ2, · · · , ξp(i)}; dom(Ui, Z) = {η1, · · · , ηq(i)};

2. For j := 1 to p(i) do

3. For k := 1 to q(i) do

92

Begin 4.

5. d1 := 1; { µ(ξj, Fk)}

6. d2 := 1; { µ(ηk, Ej)}

7. For t ∈ Ui do

Begin 8.

9. If (t(Z) = ηk) and (S(ξj, t(Y )) < d1) then

11.

If (t(Y ) = ξj) and (S(ηk, t(Z)) < d2) then

12.

d2 := S(ηk, t(Z));

End.

13.

14.

djk := max{d1, d2};

End.

15.

Để tính dom(Ui, Y ) = {ξ1, ξ2, · · · , ξp(i)}; dom(Ui, Z) = {η1, · · · , ηq(i)}; chúng ta

có thể lần lượt thực hiện các thao tác sau:

1. Khởi tạo p(i) = q(i) = 0; dom(Ui, Y ) = dom(Ui, Z) = {};

2. For t ∈ Ui do

3. Begin

10. d1 := S(ξj, t(Y ));

4. If t(Y ) 6∈ dom(Ui, Y ) then

5. Begin

inc(p(i)); 6.

7. ξp(i) := t(Y );

8. dom(Ui, Y ) := dom(Ui, Y ) ∪ {ξp(i)};

9. End;

93

10. If t(Z) 6∈ dom(Ui, Z) then

Begin 11.

inc(q(i)); 12.

13. ηq(i) := t(Z);

14. dom(Ui, Z) := dom(Ui, Z) ∪ {ηq(i)};

15. End;

Sử dụng Thuật toán 3.4 ta nhận được thuật toán kiểm định β−phụ thuộc đa

trị như sau:

Thuật toán 3.5. Kiểm định β−phụ thuộc đa trị.

Input:

Tập đối tượng U ,

Tập thuộc tính A, các tập con X, Y ⊆ A,

Các quan hệ tương tự trên các thuộc tính,

Mức β ∈ [0, 1].

Output: X

1,β →→ Y ?

Method:

16. End.

1. Phân hoạch U/X = {U1, U2, · · · , Um};

2. OK:=True; i:=0;

3. Repeat

inc(i); 4.

Tính Di; 5.

6. If Di không β−dầy đặc then

7. OK:=False;

94

3.5. Kết luận

8. Until (Not OK) or (i = m).

Như vậy, bằng hai cách tiếp cận khác nhau, trong chương này chúng ta đã mở

rộng các khái niệm phụ thuộc hàm và phụ thuộc đa trị là những định nghĩa mở rộng

của các khái niệm phụ thuộc kinh điển. Các phụ thuộc này nói chung là các phụ

thuộc xấp xỉ của hệ thống. Cách thứ nhất, chúng ta thu hẹp miền tác động của phụ

được chấp nhận kèm theo đánh giá "sai số". Cách thứ hai, sử dụng quan hệ tương

tự giữa các giá trị của những thuộc tính, theo cách tiếp cận này, chúng ta đã đưa

ra các khái niệm (α, β)− phụ thuộc hàm và phụ thuộc đa trị, Việc đưa ra các khái

niệm mới này là thực sự có ý nghĩa trong thực tế bởi nhiều lý do khác nhau. Ngoài

việc chứng minh một số tính chất cơ bản của các phụ thuộc mở rộng, dựa vào ma

trận phụ thuộc, chúng tôi còn đưa ra được một tiêu chuẩn đại số để xác định một

phụ thuộc hàm, một phụ thuộc đa trị đồng thời đưa ra thuật toán tìm tất cả phụ

thuộc tối tiểu. Đối với các phụ thuộc theo nghĩa mở rộng, cũng bằng cách sử dụng

họ các ma trận phụ thuộc, chúng tôi đã đưa ra thuật toán kiểm định phụ thuộc

xấp xỉ và (1, β)− phụ thuộc đa trị. Đối với trường hợp α < 1, việc kiểm chứng phụ

thuộc đa trị sẽ phức tạp hơn và không thể dùng họ các ma trận phụ thuộc. Bởi vì

thuộc hàm và phụ thuộc đa trị, nếu miền này "đủ lớn" thì phụ thuộc tương ứng sẽ

họ này được xây dựng dựa trên các lớp tương đương của quan hệ không phân biệt

trên X, trong khi với α < 1 thì quan hệ α−tương tự không còn là quan hệ tương

đương nữa. Vì vậy trong vấn đề nghiên cứu mở rộng phụ thuộc đa trị, việc xây dựng

tiêu chuẩn kiểm định (α, β)−phụ thuộc với α và β tuỳ ý là một bài toán còn có thể

được tiếp tục nghiên cứu.

95

Chương

PHẦN KẾT LUẬN

Phát hiện luật theo tiếp cận của lý thuyết tập thô do Z. Pawlak [24] đề xuất

là một trong những phương pháp đang được nhiều nhà khoa học nghiên cứu và sử

dụng trong quá trình khai phá tri thức từ dữ liệu. Do dữ liệu thực tế thường đa

dạng, không đầy đủ, thiếu chính xác mà lại dư thừa nên việc chọn lọc thuộc tính

được đặt ra nhằm loại bỏ các thuộc tính dư thừa mà vẫn giữ được đầy đủ ý nghĩa

của bảng dữ liệu đang xét. Ngoài ra, việc phát hiện các mối ràng buộc vốn có trong

dữ liệu cũng cho các nhà nghiên cứu và quản lý có một cái nhìn đầy đủ hơn với dữ

liệu họ đang có. Đó là những vấn đề chính luận án nghiên cứu. Kết quả của luận án

có thể trình bày tóm lược như sau:

1. Xây dựng các thuật toán heuristic tìm tập rút gọn của bảng quyết định với độ

phức tạp theo thời gian là đa thức. Các thuật toán này được xây dựng trên cơ

sở đưa ra tiêu chuẩn đánh giá một tập con các thuộc tính điều kiện là tập rút

gọn. Hai thuật toán đầu dựa trên độ phụ thuộc của tập thuộc tính điều kiện và

khả năng đóng góp của một thuộc tính được tính toán chỉ trên các phép toán

được trên một tập thuộc tính cho trước. Ý tưởng của thuật toán này dựa trên

của đại số quan hệ. Thuật toán thứ ba dựa vào số cặp đối tượng phân biệt

ma trận phân biệt được. Tuy nhiên, kích thước của ma trận này rất lớn đối

với bảng dữ liệu lớn, vì vậy việc tìm kiếm tập rút gọn theo ma trận này như

96

phương pháp trình bày trong [26, 27] khó thực hiện. Thuật toán trong luận án

đề nghị không hề tính toán các phần tử của ma trận.

2. Xây dựng các thuật toán tìm tập rút gọn xấp xỉ dựa vào các thuật toán trong

Phần 1.

3. Thiết lập đặc trưng của phụ thuộc hàm và phụ thuộc đa trị bằng ma trận phụ

thuộc.

4. Đưa ra điều kiện cần và đủ cho phụ thuộc đa trị dựa vào quan hệ “không phân

trị xấp xỉ.

5. Xây dựng thuật toán tìm kiếm phụ thuộc đa trị tối tiểu vế phải.

6. Mở rộng phụ thuộc hàm và phụ thuộc đa trị dựa vào quan hệ tương tự trên

tập giá trị của các thuộc tính và đưa ra các tính chất của phụ thuộc mở rộng.

7. Đặc trưng β−phụ thuộc bằng ma trận phụ thuộc và đưa ra thuật toán kiểm

định β−phụ thuộc đa trị.

Các hướng có thể tiếp tục nghiên cứu

1. Đưa ra giải pháp rút gọn trên bảng dữ liệu thiếu thông tin.

biệt được“, từ đó xây dựng thuật toán kiểm định phụ thuộc và phụ thuộc đa

2. Xây dựng tiêu chuẩn đại số kiểm định phụ thuộc đa trị mở rộng trong trường

hợp tổng quát.

97

Tài liệu tham khảo

[1] Hoàng Thị Lan Giao (2005), “Một số thuật toán tìm tập rút gọn của bảng quyết

Tự nhiên và Công nghệ, Đại học Quốc gia Hà Nội, T.XXI (2PT), 41-48.

[2] Hồ Thuần, Hoàng Thị Lan Giao (2005), “Một thuật toán tìm tập rút gọn sử

dụng ma trận phân biệt được“, Chuyên san Các công trình nghiên cứu triển khai

Viễn thông và CNTT, (15), tr. 83-87.

[3] Hồ Thuần, Hoàng Thị Lan Giao (2006), “Khám phá phụ thuộc đa trị dựa vào

ma trận phụ thuộc“, Tin học và điều khiển(1), tr. .

[4] Hồ Thuần, Hoàng Thị Lan Giao (2006), “Mở rộng phụ thuộc hàm và phụ thuộc

đa trị“, Tin học và điều khiển (đã gửi đăng).

[5] Hoàng Thị Lan Giao (2006), “Khai phá luật theo tiếp cận tập thô“, Đề tài NCKH

định sử dụng các phép toán của đại số quan hệ“, Tạp chí Khoa học, Khoa học

cấp Bộ trọng điểm B2005-07-02 , nghiệm thu tháng 3/2006.

[6] Hà Quang Thuỵ (1996), Tập thô và đánh giá hệ thông tin nền, Tạp chí Khoa

học Đại học Quốc gia Hà Nội, KHTN, XII (3).

Tài liệu tiếng Anh

[7] Ho Tu Bao (1996), Introduction to Knowledge Discovery and Data Mining, Insti-

tude of Information Technology National Center for Natural Science and Tech-

nology.

98

[8] Shrabonti Ghosh, S.S.Alam (2003), “Generalized Rough Approach to Reduction

of a Decíion Table“, International Journal of Intelligent Systems Vol. 18, 499-508.

[9] Shrabonti Ghosh, Ranjit Biswas, S.S. Alam (2004), “Reduction of the Decision

Table: A Roughset Approach“, International Journal of Intelligent Systems, Vol

19.

[10] Paolo Guidici (2003), Applied Data Mining, Statistical Methods for Business

[11] Jiawei Han, Micheline Kamber (2001), Data Mining: Concepts and Techniques,

Morgan Kaupmann Publishers.

[12] Nguyen S. Hoa, Nguyen H. Son (1996), “Some Efficient Algorithms for Rough

Set Methods" Proceedings of the sixth International Conference on Information

Processing Management of Uncertainty in Knowledge-Based Systems, 1451-1456.

[13] Nguyen S. Hoa, Andrzej Skowron, Piotr Synak (1997), “Knowledge Discovery in

Databases: Rough Set Approach“ Proc. of the Seventh International Fuzzy Sys-

tems Association World Congress, Vol II, pp. 204-209, IFSA’97, Prague, Czech

Republic.

[14] Xiaohua Hu, Jianchao Han, T.Y.Lin (2004), “A New Rough Sets Model Based

on Database Systems" Fundamenta Informaticae XX 1-18.

and Industry, Faculty of Economics, University of Pavia, Italy.

[15] Yka Huhtala, Juha Karkkainen, Pasi Porkka and Hannu Toivonen (1999), “Tane:

An Efficient Algorithm for Discovering Functional and Approximate Dependen-

cies“ The Computer Journal, Vol 42, No 2.

[16] Yka Huhtala, Juha Karkkainen, Pasi Porkka and Hannu Toivonen (1998), “Ef-

ficient Discovery of Functional and Approximate Dependencies using Partitions“

In Proc, 14th Int. Conf. on Data Engineering, IFFE Computer Society Press.

99

[17] Jyrki Kivinen, Heikki Mannila (1995), “Approximate Inference of Functional

Dependencies from Relation“, Theoretical Computer Science 149(1), 129-149.

[18] Jan Komorowski, Zdzislaw Pawlak, Lech Polkowski, Andrzej Skowron (1999),

Rough Sets: A Tutorial.

[19] Boris Kovalerchuk, Evgenii Vityaev (2001), Data Mining in Finance: Advances

in Relational and Hybrid Methods, Kluwer Academic Publishers, The 2nd Print-

ing.

Synthesis in Hanbook of Aplicatión and Advances of the Rough Sets Theory:

Intelligent Decision Support Edited by Roman Slowinski, 181-199.

[21] David Maier (1983), The Theory of Relational Databases (Computer Science

Press, Rockville, Maryland.

[22] Mannila, H., Toivonen, H. and Verkamo, A.I. (1997) , “Discovery of frequency

episodes in event sequences“ Data Mining and Knowledge Discovery, I, 259 - 289.

[23] Tetsuya Murai, Yoshiharu Sato (2000), Association Rules from the Point of

View of madal Logic and Rough Set, The 4th Asian Fuzzy Systems Symposium.

[24] Pawlak Z. (1991), Rough Sets- Theoretical Aspects of Reasoning about Data,

Kluwer Academic Publishers, Dordrecht.

[20] Tadeusz Luba, Janusz Rybnik (1992), Rought Sets and Some Aspects of Logic

[25] Iztok Savnik and Peter A. Flash (2000), “Discovery of multivalued dependencies

from ralations“ Intelligent data Analysis, 4(3,4) 195 - 211.

[26] Andrzej Skowron, Rauszer C. (1992), “ The Discernibility Matrices and Func-

tions in Information Systems" Intelligent Decision Support. Handbook of Appli-

cations and Advances of the Rough Sets Theory, Kluwer, Dordrecht, 331–362.

[27] AndrzejSkowron, Ning Zong (2000), Rought Sets in KDD, Tutorial Notes, Copy-

right 2000.

100

[28] Nguyen Hung Son, Marcin Szczuka (2005), Rough Set in KDD, Tutorial Notes

of The Ninth Pacific-Asia Conference on Knowledge Discovery and Data Mining,

Ha Noi.

[29] Ho Thuan (1986), “Contribution to the theory of relational databases“, Tanul-

manyok 184/1986, Studies 184/1986. Budapest, Hungary.

[30] Jeffrey D. Ullman (1988), Principles of Database and Knowledge-Base Systems,

[31] Jakub Wro’blewski (2000), “Analyzing relational databases using rough set

based methods“ Proc. of IPMU 2000, Madrid, Spain. Universidad Politecnica

de Madrid 2000, Vol 1, pp. 256 - 262.

[32] Hong Yao, Howard J. Hamilton and Cory J. Butz (2002), “FD_Mine: Discov-

ering Functional Dependencies in a Database Using Equivalences“ University

of Regina Computer Sciences Department Technical Report CS-02-04, ISBN 0-

7731-0441-0.

Volume I, Computer Science Press, Rockville, Maryland.

101

Các công trình đã công bố liên quan đến luận án

1. Hoàng Thị Lan Giao (2005), “Một số thuật toán tìm tập rút gọn của bảng

quyết định sử dụng các phép toán của đại số quan hệ“, Tạp chí Khoa học,

Khoa học Tự nhiên và Công nghệ, Đại học Quốc gia Hà Nội, T.XXI (2PT),

41-48.

2. Hồ Thuần, Hoàng Thị Lan Giao (2005), “Một thuật toán tìm tập rút gọn sử

dụng ma trận phân biệt được“, Chuyên san Các công trình nghiên cứu triển

3. Hồ Thuần, Hoàng Thị Lan Giao (2006), “Khám phá phụ thuộc đa trị dựa vào

ma trận phụ thuộc“, Tin học và điều khiển(1), tr

4. Hồ Thuần, Hoàng Thị Lan Giao (2006), “Mở rộng phụ thuộc hàm và phụ thuộc

đa trị“, Tin học và điều khiển (đã gửi đăng).

5. Hoàng Thị Lan Giao (2006), “Khai phá luật theo tiếp cận tập thô“, Đề tài

NCKH cấp Bộ trọng điểm B2005-07-02 , nghiệm thu tháng 3/2006.

Các báo cáo khoa học đã tham gia

1. Hội nghị Khoa học Trường Đại học Công nghệ kỷ niệm 5 năm thành lập Khoa

Công nghệ.

khai Viễn thông và CNTT, (15), tr. 83-87.

2. Hội thảo Tin học Toàn quốc, Hải Phòng tháng 8/2005.

3. Hội thảo Khoa học quốc gia "Nghiên cứu phát triển và ứng dụng Công nghệ

Thông tin và Truyền thông" (ICT.Rda), 5/2006.