i
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG -------------
TRẦN KHÁNH KHAI PHÁ PHỤ THUỘC HÀM XẤP XỈ SỬ DỤNG PHỦ TỐI THIỂU VÀ LỚP TƢƠNG ĐƢƠNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Thái Nguyên - 2015
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
ii
MỤC LỤC
MỤC LỤC .................................................................................................................. i DANH MỤC VIẾT TẮT VÀ KÍ HIÊ ̣U .................................................................. iii DANH MỤC CÁC BẢNG BIỂU ............................................................................ iv
DANH MỤC CÁC HÌNH VẼ ................................................................................... v MỞ ĐẦU ........................................................................................................... 1 CHƢƠNG 1 ....................................................................................................... 4 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ KHAI PHÁ PHỤ THUỘC HÀM, PHỤ THUỘC HÀM XẤP XỈ ................................................................ 4 1.1. Khai phá dữ liệu ..................................................................................... 4 1.1.1. Khám phá tri thức và khai phá dữ liệu ............................................ 4 1.1.2. Kiến trúc của hệ thống khai phá dữ liệu ......................................... 6 1.1.3. Quá trình khai phá dữ liệu ............................................................... 7 1.1.4. Một số kỹ thuật khai phá dữ liệu ..................................................... 8 1.1.5. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu ........................... 12 1.1.6. Một số ứng dụng của khai phá dữ liệu .......................................... 14 1.2. Khai phá phụ thuộc hàm và phụ thuộc hàm xấp xỉ .............................. 15 1.2.1. Khai phá phụ thuộc hàm. .............................................................. 15 1.2.2. Khai phá phụ thuộc hàm xấp xỉ .................................................... 19 1.2.2.1. Định nghĩa phụ thuộc hàm xấp xỉ .......................................... 20 1.2.2.2. Một số độ đo cơ bản ............................................................... 21
CHƢƠNG 2 THUẬT TOÁN KHAI PHÁ PHỤ THUỘC HÀM XẤP XỈ SỬ DỤNG PHỦ TỐI THIỂU VÀ LỚP TƢƠNG ĐƢƠNG ........................... 28 2.1. Lớp tƣơng đƣơng và phủ tối thiểu ....................................................... 29 2.1.1. Sự phân hoạch ............................................................................... 29 2.1.2. Phân hoạch mịn hơn ...................................................................... 31 2.1.3. Phủ tối thiểu .................................................................................. 32 2.1.4. Phụ thuộc hàm xấp xỉ và lớp tƣơng đƣơng ................................... 35 2.2. Thuật toán TANE sửa đổi ..................................................................... 38 2.2.1. Thủ tục chính của thuật toán TANE sửa đổi ................................. 38 2.2.2. Độ phức tạp của thuật toán TANE sửa đổi. .................................. 41
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
iii
2.3. Thuật toán khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tƣơng đƣơng ................................................................................................ 41 2.3.1. Mô tả thuật toán ............................................................................ 41 2.3.2. Độ phức tạp của thuật toán khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tƣơng đƣơng ............................................................ 44 2.3.3. Phân tích thử nghiệm, so sánh về độ phức tạp thời gian . ............ 45 2.3.3.1. Phân tích thử nghiệm. ............................................................ 45 2.3.3.2. So sánh về độ phức tạp thời gian (theo [8]) ........................... 46 CHƢƠNG 3 THỰC NGHIỆM KHAI PHÁ PHỤ THUỘC HÀM XẤP XỈ ... 48 3.1. Xây dựng chƣơng trình thực nghiệm ................................................... 48 3.1.1. Giới thiệu bài toán ......................................................................... 48 3.1.2. Dữ liệu thử nghiệm ....................................................................... 48 3.1.3. Xây dựng chƣơng trình thực nghiệm ............................................ 50 3.2. Thực nghiệm khai phá phụ thuộc hàm xấp xỉ ...................................... 50 3.3. Kết quả thực nghiệm ............................................................................ 51 KẾT LUẬN ..................................................................................................... 52 TÀI LIỆU THAM KHẢO ............................................................................... 53 PHỤ LỤC ........................................................................................................ 55
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
iv
DANH MỤC VIẾT TẮT VÀ KÍ HIỆU SỬ DỤNG TRONG LUẬN VĂN
Ký hiệu Diễn giải
Quan hê ̣ trên tâ ̣p thuô ̣c tính U
Tâ ̣p m thuô ̣c tính.
S = (U, F) Lƣơ ̣c đồ quan hê ̣ vớ i U là tập thuộc tính , F là tập các phụ thuộc hàm trên U
LĐQH Lƣơ ̣c đồ quan hê ̣
CSDL Cơ sở dữ liệu
PTH Phụ thuộc hàm
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
v
DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1: Ví dụ về quan hệ ............................................................................. 17
Bảng 1.2: Các thuật toán khai phá phụ thuộc hàm ......................................... 19
Bảng 1.3. Bảng quan hệ ví dụ về PTH xấp xỉ ................................................. 21
Bảng 1.4: Bảng dữ liệu quan hệ số ................................................................. 24
Bảng 1.5: Bảng quan hệ ví dụ ......................................................................... 25
Bảng 1.6: Bảng quan hệ ví dụ về phụ thuộc hàm điều kiện ........................... 27
Bảng 2.1: Bảng quan hệ vi dụ cho phân hoạch ............................................... 30
Bảng 2.2: Bảng quan hệ ví dụ cho phân hoạch mịn hơn ................................ 32
Bảng 2.3: Bảng quan hệ ví dụ cho phụ thuộc hàm xấp xỉ .............................. 36
Bảng 2.4: Thời gian thực hiện cho cả hai thuật toán ...................................... 45
Bảng 2.5: So sánh độ phức tạp thời gian dựa trên T(n) của hai thuật toán ..... 46
Bảng 3.1: Dữ liệu trích chọn để khai phá. ...................................................... 49
Bảng 3.2: Bảng mã hóa các thuộc tính ............................................................ 49
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
vi
DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Quá trình khám phá tri thức .............................................................. 5
Hình 1.2. Kiến trúc của hệ thống khai phá dữ liệu ........................................... 6
Hình 1.3: Quá trình khai phá dữ liệu................................................................. 7
Hình 1.4: Cây quyết định .................................................................................. 9
Hình 1.5: Mẫu kết quả của nhiệm vụ phân cụm dữ liệu ................................. 10
Hình 1.6: Mẫu kết quả của nhiệm vụ hồi quy ................................................. 11
Hình 1.7: Các loại phụ thuộc dữ liệu .............................................................. 16
Hình 1.8 : Kỹ thuật phát hiện phụ thuộc hàm ................................................. 18
Hình 2.1: Dàn cho các thuộc tính (A, B, C, D, E) .......................................... 38
Hình 3.1: Dữ liệu đã mã hóa chuẩn bị cho khai phá ....................................... 50
Hình 3.2: Giao diện kết quả đƣợc khai phá phụ thuộc hàm xấp xỉ ................. 51
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
1
MỞ ĐẦU
1. Đặt vấn đề
Trong những năm gần đây, Công nghệ thông tin (CNTT) phát triển mạnh
mẽ đã tác động đến mọi mặt của xã hội, những thành tựu của công nghệ lƣu trữ
đã cho phép tạo ra những nguồn dữ liệu khổng lồ. Việc khai thác các nguồn dữ
liệu này ngày càng cấp thiết, đặt ra những thách thức lớn cho ngành CNTT, đặc
biệt là lĩnh vực khai phá dữ liệu. Với nguồn dữ liệu lớn nhƣ vậy thì việc tìm
kiếm, phân tích, xử lý và đƣa ra các thông tin cần thiết, phù hợp với thời gian và
yêu cầu là điều không dễ dàng.
Các phƣơng pháp khai thác cơ sở dữ liệu truyền thống ngày càng không đáp
ứng đƣợc nhu cầu thực tế này. Vì vậy các phƣơng pháp nghiên cứu, tiếp cận với
những công cụ cho phép phân tích, tổng hợp, khai phá tri thức từ dữ liệu một
cách thông minh, hiệu quả đã đƣợc nhiều nhà khoa học quan tâm nghiên cứu.
Khái niệm phụ thuộc hàm đóng một vai trò rất quan trọng trong lý thuyết
cơ sở dữ liệu quan hệ. Các phụ thuộc hàm rất hữu ích trong việc phân tích và
thiết kế cơ sở dữ liệu quan hệ nhƣ xác định khóa, xác định các dạng chuẩn,
các vấn đề về nhất quán dữ liệu ... Tuy nhiên trong thực tế do có một số giá trị
dữ liệu không chính xác hoặc một số ngoại lệ nào đó làm cho các phụ thuộc
hàm không thỏa. Sự phụ thuộc tuyệt đối này dƣờng nhƣ quá nghiêm ngặt khi
ta hình dung tới một quan hệ có hàng nghìn bộ, trong khi đó chỉ có khoảng
vài bộ vi phạm phụ thuộc hàm. Bỏ qua các phụ thuộc hàm này sẽ làm mất tính
chất phụ thuộc vốn có giữa các thuộc tính. Vì vậy các nhà nghiên cứu đã mở
rộng khái niệm phụ thuộc hàm thành phụ thuộc hàm xấp xỉ theo một cách
thức, một nghĩa nào đó, các phụ thuộc hàm xấp xỉ (Approximate Functional
Dependencies - AFDs) này cho phép có một số lƣợng lỗi nhất định của các bộ
dữ liệu đối với phụ thuộc hàm.
Phụ thuộc hàm xấp xỉ đƣợc khai phá từ CSDL quan hệ biểu diễn các mối
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
2
quan hệ có ý nghĩa, có nhiều ứng dụng khác nhau nhƣ: Dự đoán giá trị thiếu
thuộc tính trong bảng quan hệ bằng cách sử dụng các giá trị của các thuộc tính
trong việc xác định tập hợp các AFDs, tối ƣu hóa truy vấn, viết lại câu truy
vấn, chuẩn hóa cơ sở dữ liệu để cho hiệu suất tốt hơn và thiết kế lƣu trữ hiệu
quả hơn,…
Luận văn sẽ tìm hiểu về phụ thuộc hàm xấp xỉ và nghiên cứu thuật toán
AFDMCEC, một thuật toán mới tìm các phụ thuộc hàm xấp xỉ trong các
CSDL lớn dựa trên độ đo xấp xỉ. Thuật toán này sử dụng một số khái niệm
trong lý thuyết thiết kế CSDL quan hệ, đặc biệt là các khái niệm phủ tối thiểu
và lớp tƣơng đƣơng.
2. Đối tƣợng và phạm vi nghiên cứu
Luận văn tìm hiểu tổng quan về khai phá dữ liệu, đi sâu tìm hiểu khái
niệm phụ thuộc hàm, phụ thuộc hàm xấp xỉ và các tính chất, độ đo lỗi của phụ
thuộc hàm xấp xỉ, từ đó nghiên cứu thuật toán TANE sửa đổi và thuật toán
AFDMCEC tìm phụ thuộc hàm xấp xỉ.
3. Hƣớng nghiên cứu của đề tài
- Tìm hiểu về phụ thuộc hàm, phụ thuộc hàm xấp xỉ và các độ đo lỗi của
chúng.
- Nghiên cứu về thuật toán khai phá phụ thuộc hàm xấp xỉ từ bảng quan
hệ.
4. Phƣơng pháp nghiên cứu
Phƣơng pháp nghiên cứu chính của luận văn là nghiên cứu lý thuyết kết
hợp với đánh giá thực nghiệm, cụ thể là: Phân tích, tổng hợp các kết quả
nghiên cứu về phụ thuộc hàm, phụ thuộc hàm xấp xỉ, … đã công bố trên các
bài báo khoa học, hội thảo chuyên ngành trong và ngoài nƣớc. Từ đó, trình
bày làm rõ vấn đề khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp
tƣơng đƣơng.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
3
5. Ý nghĩa khoa học và thực tiễn
Phụ thuộc hàm đóng vai trò quan trọng trong lý thuyết CSDL quan hệ.
Tuy nhiên, trong thực tế do có một số giá trị dữ liệu không chính xác hoặc
một số ngoại lệ nào đó, làm cho các phụ thuộc hàm không thỏa mãn. Sự phụ
thuộc tuyệt đối này dƣờng nhƣ quá nghiêm ngặt khi ta hình dung một quan hệ
có hàng nghìn bộ, trong khi đó chỉ có vài bộ vi phạm phụ thuộc hàm. Do vậy,
mở rộng khái niệm phụ thuộc hàm thành phụ thuộc hàm xấp xỉ, cho phép có
một số lỗi nhất định của các bộ dữ liệu, là rất cần thiết và có ý nghĩa cả về
mặt lý thuyết cũng nhƣ thực tiễn.
Các phụ thuộc hàm xấp xỉ không những giúp chúng ta thấy đƣợc mối
quan hệ tiềm ẩn giữa các thuộc tính mà còn giúp ta thuận tiện hơn trong việc
phân tích dữ liệu, đánh giá thông tin.
Phát hiện phụ thuộc hàm xấp xỉ trong CSDL là một vấn đề nghiên cứu hấp
dẫn và cũng là một trong những mục tiêu của phát hiện tri thức. Tiếp cận phụ
thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tƣơng đƣơng của khai phá dữ
liệu là một hƣớng đi thú vị, hứa hẹn nhiều kết quả và ứng dụng hiệu quả trong
thực tiễn.
6. Cấu trúc luận văn:
Luận văn đƣợc trình bày trong 3 chƣơng:
Chƣơng 1: Tổng quan về khai phá dữ liệu và khai phá phụ thuộc hàm, phụ
thuộc hàm xấp xỉ.
Chƣơng 2: Thuật toán khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu
và lớp tƣơng đƣơng.
Chƣơng 3: Thực nghiệm khai phá phụ thuộc hàm xấp xỉ.
Cuối cùng là kết luận của luận văn và tài liệu tham khảo.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
4
CHƢƠNG 1
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ KHAI PHÁ PHỤ THUỘC
HÀM, PHỤ THUỘC HÀM XẤP XỈ
1.1. Khai phá dữ liệu
1.1.1. Khám phá tri thức và khai phá dữ liệu
Khai phá dữ liệu (KPDL) là việc rút trích tri thức một cách tự động và hiệu
quả từ một khối dữ liệu lớn. Tri thức đó thƣờng ở dạng các mẫu có tính chất
không tầm thƣờng, không tƣờng minh (ẩn), chƣa đƣợc biết đến và có tiềm năng
mang lại lợi ích. Có một số nhà nghiên cứu còn gọi KPDL là phát hiện tri thức
từ cơ sở dữ liệu (Knowledge Discovery in Database – KDD). Ở đây chúng ta có
thể coi KPDL là cốt lõi của quá trình phát hiện tri thức.
Quá trình phát hiện tri thức gồm các bƣớc:
Bƣớc 1: Trích chọn dữ liệu (data selection): Là bƣớc trích chọn những tập
dữ liệu cần đƣợc khai phá từ các tập dữ liệu lớn (databases, data ware houses).
Bƣớc 2: Tiền xử lý dữ liệu (data preprocessing): Là bƣớc làm sạch dữ liệu
(xử lý dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán,…v.v), rút
gọn dữ liệu (sử dụng các phƣơng pháp thu gọn dữ liệu, histograms, lấy
mẫu…v.v), rời rạc hóa dữ liệu (dựa vào histograms, entropy, phân
khoảng,...v.v). Sau bƣớc này, dữ liệu sẽ nhất quán, đầy đủ, đƣợc rút gọn và
đƣợc rời rạc hóa.
Bƣớc 3: Biến đổi dữ liệu (data transformation): Là bƣớc chuẩn hóa và
làm mịn dữ liệu để đƣa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ
thuật khai thác ở bƣớc sau.
Bƣớc 4: Khai phá dữ liệu (data mining): Đây là bƣớc quan trọng và tốn
nhiều thời gian nhất của quá trình khám phá tri thức, áp dụng các kỹ thuật khai
phá (phần lớn là các kỹ thuật của machine learning) để khai phá, trích chọn
đƣợc các mẫu (pattern) thông tin, các mối liên hệ đặc biệt trong dữ liệu.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
5
Bƣớc 5: Đánh giá và biểu diễn tri thức (knowledge representation &
evaluation): Dùng các kỹ thuật hiển thị dữ liệu để trình bày các mẫu thông tin
(tri thức) và mối liên hệ đặc biệt trong dữ liệu đã đƣợc khai thác ở bƣớc trên
biểu diễn theo dạng gần gũi với ngƣời sử dụng nhƣ đồ thị, cây, bảng biểu,
luật,…v.v. Đồng thời bƣớc này cũng đánh giá những tri thức khám phá đƣợc
theo những tiêu chí nhất định.
Trong giai đoạn khai phá dữ liệu, có thể cần sự tƣơng tác của ngƣời dùng để
điều chỉnh và rút ra các tri thức cần thiết nhất. Các tri thức nhận đƣợc cũng có
thể đƣợc lƣu và sử dụng lại.
Các Tri thức
Các mẫu
Dữ liệu đã sạch
Dữ liệu đã chọn
5.Đánh giá và biểu diễn tri thức knowledge representation & evaluation
4.Khai phá dữ liệu data mining
Kho dữ liệu
3.Biến đổi dữ liệu data transformation
2. Tiền xử lý dữ liệu data preprocessing
1. Trích chọn dữ liệu data selection
Hình 1.1. Quá trình khám phá tri thức
Việc KPDL có thể đƣợc tiến hành trên một lƣợng lớn dữ liệu có trong
CSDL, các kho dữ liệu hoặc trong các loại lƣu trữ thông tin khác.
Các mẫu đáng quan tâm có thể đƣợc đƣa đến ngƣời dùng hoặc đƣợc lƣu trữ
trong một cơ sở tri thức.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
6
1.1.2. Kiến trúc của hệ thống khai phá dữ liệu
Kiến trúc của một hệ thống KPDL điển hình có thể có các thành phần phần
nhƣ hình 1.2.
- CSDL, kho dữ liệu hoặc các lƣu trữ thông tin khác (Databases, Data
ware house,…): Đây là một hay một tập CSDL, các kho dữ liệu, các trang tính
hay các dạng lƣu trữ thông tin khác. Các kỹ thuật làm sạch dữ liệu và tích hợp
dữ liệu có thể đƣợc thực hiện trên những dữ liệu này.
Giao diện đồ họa cho ngƣời dùng
(Graphical user interface)
(Pattern evaluation)
Đánh giá mẫu
Cơ sở dữ liệu
(Data mining engine)
Máy khai phá dữ liệu
(Knowledge-base)
(Database or Warehouse Server
Máy chủ CSDL hay ho dữ liệu
Làm sạch: Tích hợp dữ liệu, lọc
Cơ sở dữ liệu
Kho dữ liệu
Các lƣu trữ thông tin khác
Hình 1.2. Kiến trúc của hệ thống khai phá dữ liệu
- Máy chủ CSDL hay máy chủ kho dữ liệu (Database or Warehouse
Server): Máy chủ này có trách nhiệm lấy những dữ liệu tích hợp dựa trên các
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
7
yêu cầu khai phá của ngƣời dùng.
- Cơ sở tri thức (Knowledge-base): Đây là miền tri thức dùng để hƣớng
dẫn việc tìm kiếm hay đánh giá độ quan trọng của các hình mẫu kết quả.
- Máy KPDL (Data mining engine): Một hệ thống KPDL cần phải có một
tập các modun chức năng để thực hiện công việc nhƣ: đặc trƣng hóa, kết hợp,
phân lớp, phân cụm, phân tích sự tiến hóa.
- Modun đánh giá mẫu (Pattern evaluation): Bộ phận này tƣơng tác với
các modun KPDL để duyệt tìm các mẫu đáng đƣợc quan tâm. Nó có thể dùng
các ngƣỡng về độ quan tâm để lọc mẫu đã khám phá đƣợc. Cũng có thể modun
đánh giá mẫu đƣợc tích hợp vào modun khai phá, tùy theo cách cài đặt của
phƣơng pháp khai phá đƣợc dùng.
- Giao diện đồ họa ngƣời dùng (Graphical user interface): Bộ phận này
còn cho phép ngƣời dùng giao tiếp với hệ thống KPDL. Ngoài ra, bộ phận này
còn cho phép ngƣời dùng xem các lƣợc đồ CSDL, lƣợc đồ kho dữ liệu (hay các
cấu trúc dữ liệu), các đánh giá mẫu và hiển thị các mẫu trong các khuôn dạng
khác nhau.
1.1.3. Quá trình khai phá dữ liệu
Thống kê tóm tắt
Mẫu
Giải thuật khai phá DL
Xác định dữ liệu liên quan
Thu thập và tiền xử lý DL
Quá trình khai phá dữ liệu đƣợc thể hiện bởi mô hình sau:
Dữ liệu trực tiếp
Xác định nhiệm vụ
Hình 1.3: Quá trình khai phá dữ liệu
+ Xác định nhiệm vụ: Xác định chính xác vấn đề cần giải quyết.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
8
+ Xác định các dữ liệu liên quan dùng để xây dựng giải pháp.
+ Thu thập các dữ liệu có liên quan và xử lý chúng thành dạng sao cho giải
thuật khai phá dữ liệu có thể hiểu đƣợc. Ở đây có thể gặp một số vấn đề: dữ liệu
phải đƣợc sao ra nhiều bản (nếu đƣợc chiết suất vào các tệp), quản lý tập các tệp
dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay
đổi v.v.).
+ Chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc khai phá dữ
liệu: nhằm tìm đƣợc các mẫu (pattern) có ý nghĩa dƣới dạng biểu diễn tƣơng
ứng với các ý nghĩa đó.
1.1.4. Một số kỹ thuật khai phá dữ liệu
Mục đích của khai phá dữ liệu là chiết xuất ra các tri thức có lợi cho kinh
doanh hay cho nghiên cứu khoa học… Do đó, ta có thể xem mục đích của khai
phá dữ liệu sẽ là mô tả các sự kiện và dự đoán. Các mẫu khai phá dữ liệu phát
hiện đƣợc nhằm vào mục đích này. Dự đoán liên quan đến việc sử dụng các
biến hoặc các đối tƣợng (bản ghi) trong CSDL để chiết xuất ra các mẫu, dự
đoán đƣợc những giá trị chƣa biết hoặc những giá trị tƣơng lai của các biến
đáng quan tâm. Mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữ liệu mà
con ngƣời có thể hiểu đƣợc.
Một số kỹ thuật chính của khai phá dữ liệu:
Phân lớp dữ liệu
Khái niệm phân lớp dữ liệu đƣợc Han và Kamber đƣa ra năm 2000. Phân
lớp dữ liệu là xây dựng một mô hình mà có thể phân các đối tƣợng thành những
lớp để dự đoán giá trị bị mất tại một số thuộc tính của dữ liệu hay tiên đoán giá
trị của dữ liệu sẽ xuất hiện trong tƣơng lai.
Quá trình phân lớp dữ liệu đƣợc thực hiện qua hai bƣớc. Bước thứ nhất:
Dựa vào tập hợp dữ liệu huấn luyện, xây dựng một mô hình mô tả những đặc
trƣng của những lớp dữ liệu hoặc những khái niệm, đây là quá trình học có
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
9
giám sát, học theo mẫu đƣợc cung cấp trƣớc. Bước thứ hai: Từ những lớp dữ
liệu hoặc những khái niệm đã đƣợc xác định trƣớc, dự đoán giá trị của những
đối tƣợng quan tâm.
Một kỹ thuật phân lớp dữ liệu đƣợc Han và Kamber đƣa ra là cây quyết định.
Mỗi nút của cây đại diện một quyết định dựa vào giá trị thuộc tính tƣơng ứng.
Kỹ thuật này đã đƣợc nhiều tác giả nghiên cứu và đƣa ra nhiều thuật toán.
Một ví dụ tiêu biểu về cây quyết định:
Hình 1.4: Cây quyết định
Trong hình 1.4 là một cây quyết định cho lớp mua laptop, chỉ ra một khách
hàng sẽ mua hay không mua một laptop. Mỗi nút lá đại diện một lớp mà đánh
giá mua laptop là Yes hay No. Sau khi mô hình này đƣợc xây dựng, chúng ta có
thể dự đoán việc có thể mua một laptop hay không dựa vào những thuộc tính
khách hàng mới là tuổi và nghề nghiệp. Cây quyết định có thể ứng dụng rộng
rãi trong nhiều hoạt động của đời sống thực.
Phân nhóm dữ liệu
Phân nhóm là kỹ thuật khai phá dữ liệu tƣơng tự nhƣ phân lớp dữ liệu. Tuy
nhiên, sự phân nhóm dữ liệu là quá trình học không đƣợc giám sát, là quá trình
nhóm những đối tƣợng vào trong những lớp tƣơng đƣơng, đến những đối tƣợng
trong một nhóm là tƣơng đƣơng nhau, chúng phải khác với những đối tƣợng
trong những nhóm khác. Trong phân lớp dữ liệu, một bản ghi thuộc về lớp nào
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
10
là phải xác định trƣớc, trong khi phân nhóm không xác định trƣớc. Trong phân
nhóm, những đối tƣợng đƣợc nhóm lại cùng nhau dựa vào sự giống nhau của
chúng. Sự giống nhau giữa những đối tƣợng đƣợc xác định bởi những chức
năng giống nhau. Thông thƣờng những sự giống về định lƣợng nhƣ khoảng
cách hoặc độ đo khác đƣợc xác định bởi những chuyên gia trong lĩnh vực của
mình.
Hình 1.5: Mẫu kết quả của nhiệm vụ phân cụm dữ liệu
Đa số các ứng dụng phân nhóm đƣợc sử dụng trong sự phân chia thị trƣờng.
Với sự phân nhóm khách hàng vào trong từng nhóm, những doanh nghiệp có
thể cung cấp những dịch vụ khác nhau tới nhóm khách hàng một cách thuận lợi.
Ví dụ, dựa vào chi tiêu, số tiền trong tài khoản và việc rút tiền của khách hàng,
một ngân hàng có thể xếp những khách hàng vào những nhóm khác nhau. Với
mỗi nhóm, ngân hàng có thể cho vay những khoản tiền tƣơng ứng cho việc mua
nhà, mua xe,… Trong trƣờng hợp này ngân hàng có thể cung cấp những dịch vụ
tốt hơn và cũng chắc chắn rằng tất cả các khoản tiền cho vay đều có thể thu hồi
đƣợc. Ta có thể tham khảo một khảo sát toàn diện về kỹ thuật và thuật toán phân
nhóm trong.
Hồi qui (Regression): Là việc học một hàm ánh xạ từ một tập dữ liệu thành
một biến dự đoán có giá trị thực. Nhiệm vụ hồi qui tƣơng tự nhƣ phân lớp, điểm
khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không rời rạc [6].
Việc dự báo các giá trị số thƣờng đƣợc làm bởi các phƣơng pháp thống kê cổ
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
11
điển chẳng hạn nhƣ hồi qui tuyến tính. Tuy nhiên, phƣơng pháp mô hình hóa
Nợ
đƣờng hồi quy tuyến tính
Thu nhập
cũng đƣợc sử dụng.
+ 0 0 0 + 0 0 0 + + 0 0 + + 0 Hình 1.6: Mẫu kết quả của nhiệm vụ hồi quy 0 0 + + 0 0 + 0 Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lƣợng sinh vật phát
quang hiện thời trong khu rừng bằng cách dò tìm vi sóng bằng thiết bị cảm biến
từ xa; dự đoán khả năng tử vong của bệnh nhân khi biết các kết quả xét nghiệm
chẩn đoán; dự đoán nhu cầu tiêu thụ một sản phẩm mới bằng một hàm chi tiêu
quảng cáo… hình 1.6 chỉ ra mẫu kết quả hồi quy tuyến tính đơn giản, ở đây
tổng số nợ đƣợc điều chỉnh cho phù hợp giống nhƣ một hàm thu nhập tuyến
tính. Việc điều chỉnh này là không đáng kể bởi vì chỉ tồn tại một tƣơng quan
yếu giữa hai biến.
Tổng hợp (summarization): Là công việc liên quan đến các phƣơng pháp
tìm kiếm một mô tả cô đọng cho tập con dữ liệu. Các kỹ thuật tổng hợp thƣờng
đƣợc áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự động.
Mô hình hóa phụ thuộc (dependency modeling): Là việc tìm kiếm mô tả
các phụ thuộc quan trọng giữa các biến. Mô hình phụ thuộc tồn tại hai mức:
Mức cấu trúc của mô hình (thƣờng dƣới dạng đồ thị) xác định các biến phụ
thuộc cục bộ vào các biến khác;
Mức định lƣợng của mô hình xác định mức độ phụ thuộc của biến. Những
phụ thuộc này thƣờng đƣợc biểu thị dƣới dạng luật.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
12
Quan hệ phụ thuộc cũng có thể biểu diễn dƣới dạng mạng tin cậy [6]. Đó là
đồ thị có hƣớng không có dạng chu trình, các nút biểu diễn thuộc tính và trọng
số chỉ liên kết phụ thuộc giữa các nút đó.
Phát hiện sự thay đổi và độ lệch (change and deviation dectection):
Nhiệm vụ này tập trung vào khám phá những thay đổi có ý nghĩa trong dữ liệu
dựa vào các giá trị chuẩn hay độ đo đã biết trƣớc, phát hiện độ lệch đáng kể
giữa nội dung của tập con dữ liệu và nội dung mong đợi. Hai mô hình độ lệch
thƣờng dùng là lệch theo thời gian và lệch theo nhóm. Độ lệch theo thời gian là
sự thay đổi có nghĩa của dữ liệu theo thời gian. Độ lệch theo nhóm là sự khác
nhau giữa dữ liệu trong hai tập con dữ liệu, tính cả trƣờng hợp tập con của đối
tƣợng này thuộc tập con kia, nghĩa là xác định dữ liệu trong một nhóm con của
đối tƣợng có khác nhau đáng kể so với toàn bộ đối tƣợng.
1.1.5. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu
Dựa vào những kiểu dữ liệu mà kỹ thuật khai phá áp dụng, có thể chia dữ
liệu thành các loại khác nhau.
Cơ sở dữ liệu quan hệ
Đến nay, hầu hết dữ liệu đƣợc lƣu giữ dƣới dạng cơ sở dữ liệu quan hệ. Cơ
sở dữ liệu quan hệ là một nguồn tài nguyên lớn nhất chứa những đối tƣợng mà
chúng ta cần khai phá. Cơ sở dữ liệu quan hệ có cấu trúc cao, dữ liệu đƣợc mô
tả bởi một tập những thuộc tính và lƣu trong những bảng. Khai phá dữ liệu trên
cơ sở dữ liệu quan hệ chủ yếu tập trung khai phá mẫu. Ví dụ, trong cơ sở dữ liệu
của một ngân hàng, ta có thể tìm đƣợc những khách hàng có mức chi tiêu cao, ta
có thể phân loại những khách hàng này dựa vào quá trình chi tiêu của họ. Cũng
với việc phân tích những mục tiêu của khách hàng, chúng ta có thể cung cấp
một số thông tin của khách hàng đến những doanh nghiệp khác. Giả sử rằng
một khách hàng chi mỗi tháng 500 đô la cho thời trang, nếu đƣợc phép, ngân
hàng có thể cung cấp thông tin về khách hàng này cho những cửa hàng thời
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
13
trang.
Cơ sở dữ liệu giao tác
Cơ sở dữ liệu giao tác là tập hợp những bản ghi giao dịch, trong đa số các
trƣờng hợp chúng là những bản ghi các dữ liệu hoạt động của doanh nghiệp, tổ
chức. Với tính phổ biến của máy tính và thƣơng mại điện tử, ngày nay có rất
nhiều cơ sở dữ liệu giao tác.
Cơ sở dữ liệu không gian
Cơ sở dữ liệu không gian bao gồm hai phần: Phần thứ nhất là dữ liệu quan
hệ hay giao tác, phần thứ hai là thông tin định vị hoặc thông tin địa lý. Ví dụ,
những luật kết hợp trên cơ sở dữ liệu không gian mô tả mối quan hệ giữa các
đặc trƣng trong cơ sở dữ liệu không gian. Dạng của luật kết hợp không gian có
dạng X Y, với X, Y là tập hợp những vị từ không gian. Những thuật toán
khai phá luật kết hợp không gian tƣơng tự nhƣ khai phá luật kết hợp nhƣng
thêm những vị từ về không gian.
Cơ sở dữ liệu có yếu tố thời gian
Giống nhƣ cơ sở dữ liệu không gian, cơ sở dữ liệu có yếu tố thời gian bao
gồm hai phần: Phần thứ nhất là dữ liệu quan hệ hay giao tác, phần thứ hai là
thông tin về thời gian xuất hiện dữ liệu ở phần thứ nhất. Những luật kết hợp có
yếu tố thời gian có nhiều thông tin hơn những luật kết hợp cơ bản. Ví dụ, từ luật
kết hợp cơ bản {Bia} {Thuốc lá}, với dữ liệu có yếu tố thời gian chúng ta có
thể có nhiều luật: Độ hỗ trợ của luật {Bia} {Thuốc lá} là 20% từ 9 giờ đến
13 giờ là 50% trong thời gian từ 19 giờ tới 22 giờ. Rõ ràng rằng, những ngƣời
bán lẻ có thể xác định chiến lƣợc để buôn bán tốt hơn.
Hầu hết nghiên cứu về lĩnh vực này ngày nay hình thành một hƣớng khai
phá dữ liệu mới gọi là khai phá mẫu lặp liên tục, khai phá tập mục dữ liệu
thƣờng xuyên trong cơ sở dữ liệu thời gian.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
14
Cơ sở dữ liệu đa phƣơng tiện
Số lƣợng trang web đang bùng nổ trên thế giới, web có mặt ở khắp mọi nơi,
duyệt web đã là nhu cầu của mọi tầng lớp trong xã hội. Thông tin trên web đang
phát triển với tốc độ rất cao, khai phá thông tin trên web (web mining) đã trở
thành một lĩnh vực nghiên cứu chính của khai phá dữ liệu, đƣợc các nhà nghiên
cứu đặc biệt quan tâm. Khai phá dữ liệu web thông thƣờng đƣợc chia thành ba
phạm trù chính: Khai phá cách dùng web (web usage mining), khai phá cấu trúc
web (web structure mining) và khai phá nội dung web (web content mining).
Khai phá cách dùng web tập trung vào việc khai phá thông tin của ngƣời
truy cập web. Với những thông tin này ngƣời khai phá dữ liệu có thể cung cấp
những thông tin hữu ích cho ngƣời dùng và các nhà kinh doanh.
1.1.6. Một số ứng dụng của khai phá dữ liệu
KPDL đƣợc vận dụng trong nhiều lĩnh vực khác nhau nhằm khai thác
nguồn dữ liệu phong phú đƣợc lƣu trữ trong các hệ thống thông tin. Tuỳ theo
bản chất của từng lĩnh vực, việc vận dụng KPDL có những cách tiếp cận khác
nhau.
KPDL đƣợc vận dụng có hiệu quả để giải quyết các bài toán phức tạp
trong những ngành đòi hỏi kỹ thuật cao nhƣ: tìm kiếm mỏ dầu từ ảnh viễn thám,
xác định vùng gãy trong ảnh địa chất để dự đoán thiên tai, cảnh báo hỏng hóc
trong các hệ thống sản xuất.
Phân nhóm và dự đoán là những kỹ thuật rất cần thiết cho việc quy hoạch
và phát triển hệ thống quản lý và sản xuất trong thực tế nhƣ: dự đoán tái sử dụng
điện năng cho các công ty cung cấp điện, lƣu lƣợng viễn thông cho các công ty
điện thoại, mức độ tiêu thụ sản phẩm cho các nhà sản xuất, giá trị của sản phẩm
trên thị trƣờng cho các công ty tài chính hay phân nhóm khách hàng tiềm năng.
Ngoài ra KPDL còn đƣợc áp dụng trong việc giải quyết các vấn đề xã hội
nhƣ: phát hiện tội phạm hay tăng cƣờng an ninh xã hội và mang lại những hiệu
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
15
quả thiết thực cho các hoạt động trong đời sống hàng ngày.
Một số ứng dụng cụ thể nhƣ sau:
- KPDL đƣợc sử dụng để phân tích dữ liệu, hỗ trợ ra quyết định.
- Trong sinh học: nó dùng để tìm kiếm, so sánh các hệ gen và thông tin di
truyền, tìm mối liên hệ giữa các hệ gen và chẩn đoán một số bệnh di truyền.
- Trong y học: KPDL giúp tìm ra mối liên hệ giữa các triệu chứng, chẩn
đoán bệnh.
- Tài chính và thị trƣờng chứng khoán: KPDL dùng để phân tích tình
hình tài chính, phân tích đầu tƣ, phân tích cổ phiếu.
- Khai thác dữ liệu web.
- Trong thông tin kỹ thuật: KPDL dùng để phân tích các sai hỏng, điều
khiển và lập lịch trình.
- Trong thông tin thƣơng mại: dùng để phân tích dữ liệu ngƣời dùng,
phân tích dữ liệu marketing, phân tích đầu tƣ, phát hiện các gian lận.
- Trong công nghiệp viễn thông: Phân tích nhu cầu và phân tích các mẫu
gian lận và xác định các mẫu khác thƣờng.
1.2. Khai phá phụ thuộc hàm và phụ thuộc hàm xấp xỉ
1.2.1. Khai phá phụ thuộc hàm
Phụ thuộc hàm biểu diễn mối quan hệ giữa các thuộc tính của một cơ sở dữ
liệu, một phụ thuộc hàm chỉ ra rằng giá trị của một thuộc tính đƣợc xác định
duy nhất bởi giá trị của một số thuộc tính khác. Phụ thuộc hàm đóng vai trò
quan trọng trong chuẩn hóa cơ sở dữ liệu, phát hiện các phụ thuộc hàm cũng có
thể giúp các nhà thiết kế cơ sở dữ liệu tách một lƣợc đồ quan hệ thành nhiều
lƣợc đồ quan hệ đạt dạng chuẩn cao hơn.
Một CSDL thiết kế không tốt trong là cơ sở dữ liệu có dƣ thừa thông tin,
gặp bất thƣờng cập nhật, bất thƣờng khi chèn, bất thƣờng khi xóa. Chuẩn hóa là
quá trình thiết kế lại lƣợc đồ cơ sở dữ liệu để đảm bảo cho nó không có các dị
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
16
thƣờng. Chuẩn hóa chia các quan hệ thành các quan hệ nhỏ hơn và mỗi quan hệ
nhỏ đó ở một dạng chuẩn mong muốn. Điều kiện để biến đổi từ dạng chuẩn này
sang dạng chuẩn kia là sự ràng buộc giữa các bộ thuộc tính trong quan hệ, ràng
buộc đó đƣợc biểu diễn bằng phụ thuộc hàm.
Phụ thuộc của các thuộc tính: có 3 loại phụ thuộc của các thuộc tính
thƣờng đƣợc khám phá là : phụ thuộc hàm (FD), phụ thuộc có điều kiện
(CFDs) và phụ thuộc bao gồm (INDs). Hình 1.7 biểu diễn các loại phụ thuộc
dữ liệu (theo [11]).
Khai phá dữ liệu
CFDs FD INDs
Hình 1.7: Các loại phụ thuộc dữ liệu
. Mỗi thuô ̣c Cho tâ ̣p hƣ̃u ha ̣n khác rỗng các thuô ̣c tính
tính có một miền giá trị tƣơng ứng . Mô ̣t quan hê ̣
trên U, ký hiệu R (U) hoă ̣c R nếu không sơ ̣ nhầm lẫn , là một tập con của tích
Descartes .
Mô ̣t cách hình thƣ́ c:
Các phần tử của quan hệ R đƣơ ̣c go ̣i là các bộ. Mô ̣t quan hê ̣ không chƣ́ a
bô ̣ nào đƣơ ̣c go ̣i là quan hê ̣ rỗng.
Kí hiệu: t[X] là phép chiếu của bộ t trên tập thuộc tính X, .
Định nghĩa 1.1: Mô ̣t phụ thuộc hàm (PTH) trên quan hê ̣ R (U) là một mệnh
đề có dạng X → Y (trong đó X, Y ⊆ U). Ta nói PTH X → Y đú ng trên quan hê ̣
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
17
R, nếu:
Khi PTH X → Y đú ng trên quan hê ̣ R. Ngƣờ i ta còn nói R thỏa PTH X →
Y và ký hiệu R (X → Y).
Ví dụ. Xét quan hệ R trên tâ ̣p thuô ̣c tính U = {T, A, B, C} cho trên bảng
1.1 nhƣ sau:
T A B C
1 a1 b1 c1 R = 2 a2 b2 c2
3 a2 b2 c3
Bảng 1.1: Ví dụ về quan hệ
Ta có : Chẳng ha ̣n R thỏa các PTH {T} → {A, B, C}, {C} → {T, A, B}, {A}
→ {B}, … và không thỏa PTH {B} → {C}, …
Nhƣ vâ ̣y, có thể thấy PTH (trên quan hê ̣) là sự phụ thuộc của một số thuộc
tính vào một số thuộc tính khác.
Mô ̣t că ̣p S = (U, F) vớ i U là tập các thuô ̣c tính và F là tập các PTH trên U
đƣơ ̣c go ̣i là mô ̣t lược đồ quan hê ̣ (LĐQH).
Quan hê ̣ R đƣơ ̣c go ̣i là thỏa tâ ̣p PTH F, ký hiệu R(F) nếu với mọi PTH
thì R (X → Y).
Cho tâ ̣p các PTH F trên U và X → Y là một PTH bất kỳ trên U. Ta nói F suy diễn logic PTH X → Y, ký hiệu F |= X → Y. Nếu vớ i mo ̣i quan hê ̣ R (U) sao cho R (F) thì R (X → Y).
Bao đó ng của tập PTH F trên U, ký hiệu F+ là tâ ̣p nhỏ nhất các PTH trên
U chƣ́ a F và thỏa các tính chất (A1) – (A3) nhƣ sau:
Với ∀ X, Y, Z ⊆ U:
(A1) Tính phản xạ Nếu Y ⊆ X thì X → Y ∈ F+
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
18
(A2) Tính gia tăng Nếu X → Y ∈ F+ thì X ⋃ Z → Y ⋃ Z ∈ F+
(A3) Tính bắc cầu Nếu X → Y ∈ F+ và Y → Z ∈ F+ thì X → Z ∈ F+
Rõ ràng F+ hƣ̃u ha ̣n vì U hƣ̃u ha ̣n.
Các tính chất từ (A1) – (A3) còn thƣờng đƣợc gọi là h ệ tiên đề
Armstrong hay tập quy tắ c suy diễn Armstrong.
Các kỹ thuật phát hiện phụ thuộc hàm
Phát hiện phụ thuộc hàm từ một bảng quan hệ đã đƣợc nhiều nhà nghiên
cứu quan tâm. Đã có nhiều thuật toán đƣợc đề xuất, hình 1.8 biểu diễn các
phƣơng pháp cùng một số thuật toán.
Từ trên xuống
Từ dƣới lên
Khai phá phụ thuộc hàm
Tên thuật toán
Tên thuật toán o TANE o FD_Miner o FUN o Negative Cover o Dep_Miner o FAST FD
Hình 1.8 : Kỹ thuật phát hiện phụ thuộc hàm
Bảng 1.2 trình bày một số thuật toán điển hình và các kỹ thuật sử dụng
trong thuật toán đó (theo [11]).
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
19
1999
TANE
Phân hoạch (Partitions)
2000
Dep-Miner
Tập khác biệt (Difference Set)
2001
FUN
Yka, Juha, Pasi and Hannu St_ephane Lopes, Jean-Marc Petit, and Lot_ Lakhal N. Novelli and R. Cicchetti,
2002
FD_Mine
Hong Yao and Hamelton
2008
FD_Discover
Jalal Atoum, Dojanah Bader and Arafat Awajan
Phụ thuộc hàm nhúng (Embedded FD) Phân hoạch và lớp tƣơng đƣơng (Partitions and Equivalences) Các lớp tƣơng đƣơng và phủ tối thiểu (Equivalent Classes and Minimal Cover)
2010
FDs Using Rough Sets
Tập thô (Rough sets)
2011
FDs via Bayes Net Analyses
Y.V.Sreevani, Prof. T. Venkat Narayana Rao Nittaya Kerdprasop and Kittisak Kerdprasop
Sử dụng mạng Bayes Net và Heuristics (Bayes Net and Heuristics)
Tác giả Năm Tên thuật toán Kỹ thuật sử dụng
Bảng 1.2: Các thuật toán khai phá phụ thuộc hàm
1.2.2. Khai phá phụ thuộc hàm xấp xỉ
Khái niệm phụ thuộc hàm đóng một vai trò rất quan trọng trong lý thuyết
cơ sở dữ liệu quan hệ. Các phụ thuộc hàm rất hữu ích trong việc phân tích và
thiết kế cơ sở dữ liệu quan hệ nhƣ xác định khóa, xác định các dạng chuẩn,
các vấn đề về nhất quán dữ liệu ... Tuy nhiên trong thực tế do có một số giá trị
dữ liệu không chính xác hoặc một số ngoại lệ nào đó làm cho các phụ thuộc
hàm không thỏa. Sự phụ thuộc tuyệt đối này dƣờng nhƣ quá nghiêm ngặt khi
ta hình dung tới một quan hệ có hàng nghìn bộ, trong khi đó chỉ có khoảng
vài bộ vi phạm phụ thuộc hàm. Bỏ qua các phụ thuộc hàm này sẽ làm mất tính
chất phụ thuộc vốn có giữa các thuộc tính. Vì vậy các nhà nghiên cứu đã mở
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
20
rộng khái niệm phụ thuộc hàm thành phụ thuộc hàm xấp xỉ theo một cách
thức, một nghĩa nào đó, các phụ thuộc hàm xấp xỉ (Approximate Functional
Dependencies - AFDs) này cho phép có một số lƣợng lỗi nhất định của các bộ
dữ liệu đối với phụ thuộc hàm.
1.2.2.1. Định nghĩa phụ thuộc hàm xấp xỉ
Định nghĩa 1.2. [11] Cho quan hệ R (U) và X → Y là một PTH trên U.
Gọi S ⊆ R là quan hệ sao cho có số bộ ít nhất cần loại bỏ khỏi R để R\S thỏa
mãn PTH (X → Y). Khi đó tỷ số của |S| và |R| đƣợc gọi là độ đo lỗi của PTH X
→ Y trên R, ký hiệu g3 (X → Y, R).
Nhƣ vậy
Một cách tƣơng đƣơng
Độ đo lỗi trên còn đƣợc gọi là độ đo lỗi .
Có thể thấy nếu X → Y là một PTH đúng trên R thì độ đo lỗi
.
Cho ngƣỡng lỗi với . Ngƣời ta nói PTH X → Y là một
PTH xấp xỉ trên R ứng với ngƣỡng lỗi nếu . Khi đó
ngƣời ta còn nói PTH xấp xỉ X → Y đúng trên R ứng với ngƣỡng lỗi .
Ví dụ. Xét quan hệ R trên tập thuộc tính U = {A, B, C, D} cho trên bảng
1.3 nhƣ sau:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
21
Bộ A B C D
0 0 1 1
0 1 1 1
0 2 1 2
R = 1 2 0 0
2 0 0 0
2 0 2 0
1 1 2 1
Bảng 1.3. Bảng quan hệ ví dụ về PTH xấp xỉ
Xét PTH AB → C trên R (U).
Rõ ràng bỏ bộ 6 (hoặc bộ 5) thì PTH AB → C sẽ đúng trên quan hệ R. Tức
số bộ ít nhất cần loại khỏi quan hệ R để PTH AB → C đúng trên các bộ còn lại
là 1. Suy ra:
Với ngƣỡng lỗi . , ta có:
Do đó PTH AB → C là một PTH xấp xỉ trên R ứng với .
Lƣu ý: Khi chú ng ta nói xét mô ̣t PTH trên quan hê ̣ R(U) có nghĩa PTH đó
xác định trên tập thuộc tính U và muốn tìm hiểu xem PTH đó có đúng trên
quan hê ̣ R hay không.
1.2.2.2. Một số độ đo cơ bản
Khi nghiên cứu phát hiện các PTH xấp xỉ thì vấn đề xác định độ đo cho
các PTH xấp xỉ đóng vai trò cực kì quan trọng. Đã có nhiều tác giả đƣa ra
nhiều độ đo dựa vào nhiều cách khác nhau. Ở đây luận văn tìm hiểu một số độ
đo cơ bản.
Trong định nghĩa về PTH xấp xỉ khi có một bộ làm cho PTH không đúng.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
22
Ngƣời ta gọi bộ này là một trƣờng hợp ngoại lệ. Nhƣ vậy, PTH xấp xỉ chính
là PTH với các trƣờng hợp ngoại lệ. Các độ đo của PTH xấp xỉ dựa trên số
lƣợng các trƣờng hợp ngoại lệ. Nó là cơ sở để xác định , phát hiện các PTH
xấp xỉ.
Dƣới đây, ta xem xét một số cách mở rộng.
Cách 1: [4, 5, 6]
Cho quan hệ và phụ thuộc hàm . Ba độ đo lỗi của
trong đƣợc đề xuất nhƣ sau:
Đặt là một trong ba độ đo , , . Cho trƣớc , . Ta
đối với trong nếu . Ngƣợc nói là
lại là .
Cho quan hệ khi đó độ đo lỗi của một phụ thuộc hàm
đƣợc xác định nhƣ sau:
Từ đó đứng trên ứng với một ngƣỡng lỗi khi và
chỉ khi .
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
23
Cách 2:
Cho là một quan hệ trên tập thuộc tính trong đó
các thuộc tính có thể là thuộc tính định danh, rời rạc hoặc liên tục.
Đối với những thuộc tính định danh, ta tiến hành thực hiện ánh xạ tất cả các
giá trị có thể tới một tập các số nguyên dƣơng liền kề.
Định nghĩa khoảng cách giữa hai bộ giá trị trên tập thuộc tính: Với hai bộ
, ta kí hiệu là khoảng cách giữa và trên tập
thuộc tính đƣợc xác định nhƣ sau.
- Hàm max(x,y) là hàm chọn số lớn nhất trong hai số .
- Trƣờng hợp , tức ta qui ƣớc:
Khoảng cách giữa hai bộ giá trị trên tập thuộc tính có thể coi là hàm số
của các đối số là các bộ giá trị của quan hệ và tập các thuộc tính.
Định nghĩa phụ thuộc hàm xấp xỉ loại 2: Giả sử và với một số
cho trƣớc, , ta nói rằng xác định hàm mức (hoặc nói
rằng có phụ thuộc hàm xấp xỉ loại hai mức ), ký hiệu là
nếu với mọi cặp bộ , mà thì ta cũng có
.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
24
Ví dụ:
C B D E A
160 18 25 12 2.5
160.5 18 15 13 2.51
320 20 30 16 3.6
323 20 45 28 3.65
641 25 60 19 4.25
643 25 70 57 4.26
Bảng 1.4: Bảng dữ liệu quan hệ số
Ta thấy giữa các cột A, B có mối tƣơng quan với cột C, Với ta
kiểm tra điều kiện phụ thuộc hàm xấp xỉ loại 2: .
Với cặp hàng 1, 2 ta có:
Tƣơng tự kiểm tra với cặp hàng 3, 4 và 5, 6
Vậy ta có .
Một số tính chất của phụ thuộc hàm xấp xỉ loại 2:
- Tính chất 1: Cho là một quan hệ trên tập thuộc tính . Một phụ
thuộc hàm đúng trên cũng là phụ thuộc hàm xấp xỉ loại 2 với mức tùy
ý đúng trên . Tính chất này dễ dàng suy theo định nghĩa của
phụ thuộc hàm xấp xỉ loại 2.
- Tính chất 2: Cho là một quan hệ trên ; , , là 2 số
sao cho . Kí hiệu và là 2 phụ thuộc hàm
xấp xỉ loại 2 mức và mức giữa và trên , khi đó nếu
đúng trên thì cũng đúng trên .
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
25
- Tính chất 3 (Tính phản xạ): Nếu khi đó là phụ thuộc
hàm xấp xỉ loại 2 mức tùy ý .
- Tính chất 4 (Tính bắc cầu): Nếu và thì
- Tính chất 5 (Tính gia tăng): Với mọi và mức nào đó,
nếu thì .
Cách 3:
Cho là một lƣợc đồ quan hệ và là một quan hệ
trên với bộ. Khi đó độ thỏa mà thỏa ký hiệu là
, đƣợc định nghĩa nhƣ sau:
trong đó nếu và thì ,
; NTP là số cặp bộ trong và bằng ngƣợc lại
.
Ví dụ: Với quan hệ nhƣ bảng 1.5 dƣới đây, ta có:
(Trái cây Đồ uống) = 77.78%.
ID 1 2 3 4 5 6 7 8 Trái cây Vải Vải Vải Vải Vải Táo Táo Táo Đồ uống Coca Cola Coca Cola Spirit Spirit N/A Spirit Spirit Coca Cola
Bảng 1.5: Bảng quan hệ ví dụ
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
26
Cách 4:
Xây dựng quan hệ tƣơng đƣơng trên nhƣ sau:
Quan hệ phân hoạch thành các lớp tƣơng đƣơng, mỗi lớp
tƣơng đƣơng là một tập con của chứa các bộ giống nhau trên . Ký hiệu
phân hoạch đó là .
Cho . Nếu thì ta
nói rằng thỏa . Ngƣợc lại, không thỏa .
For each do
If ( thỏa ) then .
Đặt . Ta nói r thỏa với cấp độ (với độ phụ thuộc ,
) ký hiệu là
Các tính chất:
. -
-
- Từ và không suy ra đƣợc , với
.
- Từ và suy ra , với .
- Từ và suy ra , với .
Cách 5: [7]
Phụ thuộc hàm điều kiện:
Định nghĩa 1.3: Một phụ thuộc hàm điều kiện có dạng ,
trong đó là một phụ thuộc hàm (kinh điển) và là một bộ mẫu với
các thuộc tính trong và . Bộ mẫu chứa các giá trị hằng và biến
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
27
không tên . Biến không tên có thể nhận một giá trị tùy ý trong miền
thuộc tính tƣơng ứng. Xét quan hệ đƣợc cho dƣới đây.
A B C D
001 124 12 34
001 124 21 43
002 157 34 69
002 157 34 61
002 158 89 62
002 158 89 90
003 167 78 96
Bảng 1.6: Bảng quan hệ ví dụ về phụ thuộc hàm điều kiện
Ta thấy không thỏa . Tuy nhiên thỏa ràng buộc
.
Theo định nghĩa phụ thuộc hàm điều kiện ta thấy ràng buộc
là một phụ thuộc hàm điều kiện có dạng
. Phụ thuộc hàm kinh điển là trƣờng hợp riêng của phụ
thuộc hàm điều kiện. Phụ thuộc hàm chính là phụ thuộc hàm điều
kiện dạng với . Phụ thuộc hàm điều
kiện đƣợc sử dụng trong bài toán làm sạch dữ liệu.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
28
CHƢƠNG 2
THUẬT TOÁN KHAI PHÁ PHỤ THUỘC HÀM XẤP XỈ
SỬ DỤNG PHỦ TỐI THIỂU VÀ LỚP TƢƠNG ĐƢƠNG
Trong chƣơng này trình bày thuật toán khai phá phụ thuộc hàm xấp xỉ sử
dụng phủ tối thiểu và lớp tƣơng đƣơng (viết tắt là AFDMCEC) để khai phá
các phụ thuộc hàm xấp xỉ từ những cơ sở dữ liệu dựa trên một độ đo sai số g3.
Thuật toán AFDMCEC sử dụng một vài khái niệm từ lý thuyết cơ sở dữ liệu,
lý thuyết của sự tƣơng đƣơng và phủ tối tiểu của những phụ thuộc hàm.
Những nghiên cứu đã có
Những động lực chính để thúc đẩy khai phá các phụ thuộc hàm từ cơ sở
dữ liệu là việc phát hiện những hình mẫu hữu ích từ dữ liệu và phát hiện các
mối quan hệ đáng chú ý giữa các biến trong cơ sở dữ liệu lớn. Trong một vài
trƣờng hợp, một phụ thuộc hàm có thể không đƣợc thỏa mãn bởi một vài bộ
dữ liệu. Phụ thuộc hàm nhƣ vậy có thể đƣợc nghĩ theo hƣớng đúng xấp xỉ.
Ví dụ: Phụ thuộc Phƣờng → Thành phố có thể đúng xấp xỉ.
Những phụ thuộc hàm xấp xỉ đặc trƣng tri thức quan trọng về cấu trúc của
quan hệ. Việc phát hiện ra những tri thức nhƣ vậy từ cơ sở dữ liệu có thể có
giá trị mang tính gợi ý cho một chuyên gia. Những phụ thuộc hàm xấp xỉ nhƣ
vậy tồn tại trong một số cơ sở dữ liệu vốn có những phụ thuộc đƣợc mong đợi
giữa các thuộc tính, nhƣng một vài bộ chứa lỗi hoặc biểu diễn cho những
trƣờng hợp ngoại lệ.
Việc khám phá những phụ thuộc hàm xấp xỉ không mong đợi nhƣng có ý
nghĩa là một điều thú vị và có ứng dụng nhiều trong khai phá dữ liệu.
Ví dụ: Một phụ thuộc hàm xấp xỉ trong một cơ sở dữ liệu của hợp các chất
hóa học liên kết những thuộc tính cấu trúc khác nhau gây ra ung thƣ có thể
cung cấp vài gợi ý giá trị cho những nhà hóa sinh về các nguyên nhân tiềm ẩn
của bệnh ung thƣ.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
29
Các ứng dụng của những phụ thuộc hàm xấp xỉ gồm: Dự đoán những giá
trị thiếu của các thuộc tính trong nhiều bảng quan hệ, sử dụng những giá trị
của các thuộc tính trong việc xác định tập các phụ thuộc hàm xấp xỉ, tối ƣu
hóa truy vấn viết lại câu hỏi, chuẩn hóa cơ sở dữ liệu để khai thác tốt hơn và
thiết kế lƣu trữ hiệu quả hơn.
Việc khai phá các phụ thuộc hàm xấp xỉ là tốn kém vì những lý do sau:
Các chiến lƣợc cắt tỉa cho những phụ thuộc hàm không ứng dụng trong
trƣờng hợp các phụ thuộc hàm xấp xỉ. Với các cơ sở dữ liệu có một số lớn các
thuộc tính thì không gian tìm kiếm lớn khiến các phƣơng pháp quyết định một
phụ thuộc có đúng hay không là tốn kém.
Trong những năm gần đây, một hƣớng nghiên cứu mới đã phát triển đó là
khai phá các phụ thuộc hàm. Các nhà nghiên cứu đã tập trung vào vấn đề tìm
tất cả những phụ thuộc hàm đúng trong một quan hệ cho trƣớc.
Nghiên cứu phát hiện các phụ thuộc hàm xấp xỉ gồm ba phần quan trọng:
Một là xác định một độ đo xấp xỉ cho các phụ thuộc hàm xấp xỉ. Hai là phát
triển các phƣơng pháp để áp dụng những phụ thuộc hàm xấp xỉ cho các vần
đề tồn tại từ trƣớc. Ba là phát triển các thuật toán để tính toán hiệu quả những
phụ thuộc hàm xấp xỉ.
Kivinen và Mannila định nghĩa một vài độ đo cho sai số của một phụ
thuộc và suy ra các cận để phát hiện các phụ thuộc với những sai số của một
phụ thuộc. Họ đã biểu thị e bởi g3.
2.1. Lớp tƣơng đƣơng và phủ tối thiểu
2.1.1. Sự phân hoạch
Một phụ thuộc hàm là đúng trên một quan hệ nếu
tất cả các bộ mà bằng nhau trên thì cũng bằng nhau trên , trong đó
. Việc kiểm tra xem các bộ bất kì bằng nhau trên vế trái thì
có bằng nhau trên vế phải của phụ thuộc hàm hay không.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
30
Các phƣơng pháp tiếp cận mở rộng cho các phụ thuộc xấp xỉ đƣợc nghiên
cứu và phát triển. Một trong những cách tiếp cận là sử dụng các lớp tƣơng
đƣơng và các phân hoạch.
Chúng ta dùng phƣơng pháp phân hoạch chia các bộ dữ liệu thành các
nhóm dựa trên những giá trị khác nhau của mỗi cột (thuộc tính). Với mỗi
thuộc tính, số các nhóm bằng với số các giá trị khác nhau của mỗi thuộc tính
đó. Mỗi nhóm đƣợc gọi là một lớp tƣơng đƣơng.
Hai bộ và là tƣơng đƣơng đối với một tập các thuộc tính cho
trƣớc nếu với mọi trong . Mỗi tập thuộc tính bất kỳ
phân hoạch các bộ của quan hệ thành các lớp tƣơng đƣơng. Chúng ta biểu thị
lớp tƣơng đƣơng của một bộ với một tập cho trƣớc bởi ,
tức là . Tập của các lớp
tƣơng đƣơng là một phân hoạch của theo . Nhƣ vậy mỗi lớp tƣơng
đƣơng ứng với một giá trị duy nhất cho tập thuộc tính và hợp của các lớp
tƣơng đƣơng bằng với quan hệ . Bậc của phân hoạch là số lớp
tƣơng đƣơng trong .
Ví dụ: Xét quan hệ.
TupleID A B E C D
1 a 2 $ Hoa 1
2 x 2 Hoa tulip 1
3 x 0 $ Cây thủy tiên 2
4 x 0 $ Hoa 2
5 y 0 Cây huệ 2
6 y 1 $ Phong lan 3
7 c Hoa 3
1 1 8 c # Bông hồng 3
Bảng 2.1: Bảng quan hệ ví dụ cho phân hoạch
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
31
Thuộc tính A có giá trị “1” chỉ trong các bộ 1 và 2 vì vậy chúng tạo thành
một lớp tƣơng đƣơng . Tƣơng tự, thuộc tính A có giá trị
“2” trong các bộ 3, 4, 5 và có giá trị “3” trong các bộ 6, 7, 8. Sau đây toàn bộ
các lớp tƣơng đƣơng của thuộc tính A: . Các lớp
tƣơng đƣơng với tổ hợp các thuộc tính là
.
Phân hoạch của các thuộc tính
2.1.2. Phân hoạch mịn hơn
Khái niệm phân hoạch mịn hơn liên quan trực tiếp với các phụ thuộc. Một
phân hoạch mịn hơn một phân hoạch khác nếu mỗi lớp tƣơng đƣơng
trong là tập con của một lớp tƣơng đƣơng nào đó của .
Một phụ thuộc hàm đúng nếu và chỉ nếu mịn hơn . Để
kiểm tra đúng hay không chúng ta kiểm tra có bằng với
hay không. Nếu mịn hơn thì có cùng số tƣơng
đƣơng với .
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
32
Ví dụ: Xét quan hệ cho trên bảng 2.2 sau:
B TupleID A E C D
a 1 1 2 $ Hoa
x 2 1 2 Hoa tulip
x 3 2 0 $ Cây thủy tiên
x 4 2 0 $ Hoa
y 5 2 0 Cây huệ
y 6 3 1 $ Phong lan
c 7 3 1 Hoa
c 8 3 1 #
Bông hồng Bảng 2.2: Bảng quan hệ ví dụ cho phân hoạch mịn hơn
Các lớp tƣơng đƣơng đối với thuộc tính , các
lớp tƣơng đƣơng đối với thuộc tính . Vì các lớp
tƣơng đƣơng của thuộc tính mịn hơn các lớp tƣơng đƣơng của thuộc tính
nên qua đó có thể phát hiện phụ thuộc hàm đƣợc thỏa mãn.
2.1.3. Phủ tối thiểu
Định nghĩa: Cho và là những tập phụ thuộc hàm trên tập thuộc
tính . Ta nói phủ nếu có , và nói và tƣơng đƣơng
nếu , và kí hiệu là F~G.
Bằng cách sử dụng thuật toán 2.1, có thể kiểm tra xem và có
tƣơng đƣơng không. Cần chú ý rằng: nếu mọi phụ thuộc hàm trong đều
thuộc thì mọi phụ thuộc hàm trong đều suy diễn đƣợc từ
(nghĩa là ). Với phụ thuộc hàm , để kiểm tra
, ta sẽ tính và kiểm chứng .
Bổ đề 2.1 Mỗi tập phụ thuộc hàm có một tập phụ thuộc hàm
tƣơng đƣơng với nó sao cho mỗi phần tử của đều có vế phải chỉ gồm một
thuộc tính.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
33
Chứng minh
Với mỗi , đặt:
Nhờ quy tắc tách và quy tắc hợp trong bổ đề 1.2, dễ dàng thấy rằng
thỏa mãn các yêu cầu của định lí.
Tập phụ thuộc hàm đƣợc gọi là tối tiểu nếu:
(i) Vế phải của mỗi phụ thuộc trong gồm đúng một thuộc tính.
(Không dƣ thừa thuộc tính nào ở vế phải).
(ii) Không tồn tại trong sao cho tƣơng
đƣơng với . (Không thể bỏ đi một phụ thuộc nào trong mà vẫn thu
đƣợc một tập phụ thuộc tƣơng đƣơng với nó).
(iii) Không tồn tại trong và tập con thực sự của sao
cho tƣơng đƣơng với . (Không thể bỏ đi bất kì
một thuộc tính nào ở vế trái của một phụ thuộc bất kì trong mà vẫn thu
đƣợc một tập phụ thuộc tƣơng đƣơng với nó).
Điều kiện thứ nhất đảm bảo rằng mọi phụ thuộc hàm trong không dƣ
thừa thuộc tính nào ở vế phải. Điều kiện thứ hai đảm bảo rằng không có
phụ thuộc hàm nào dƣ thừa. Điều kiện cuối cùng đảm bảo rằng mọi phụ thuộc
hàm trong không dƣ thừa thuộc tính nào ở vế trái.
Định lí 2.1
Với mỗi tập phụ thuộc hàm , đều tồn tại một tập phụ thuộc hàm tối tiểu
tƣơng đƣơng với nó.
1. Theo bổ đề 1.5, có tập phụ thuộc tƣơng đƣơng với mà các phần
tử của đều có vế phải gồm đúng một thuộc tính.
2. Loại bỏ từ những phụ thuộc hàm vi phạm (ii), ta thu đƣợc .
3. Loại bỏ những thuộc tính trong vế trái của các phụ thuộc hàm trong
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
34
làm cho nó vi phạm (iii), ta thu đƣợc .
Dễ dàng thấy rằng, là tối tiểu và tƣơng đƣơng với nên nó chính là
cần tìm.
Chú ý: Việc loại bỏ những phụ thuộc hàm và thuộc tính ở bƣớc 2 và bƣớc
3 trong phép chứng minh có thể cho ta những tập phụ thuộc hàm khác nhau
(thỏa mãn định lí 1.5), thậm chí chúng có số phần tử khác nhau.
Ví dụ:
Cho . Ta có thể tìm đƣợc hai
tập phụ thuộc tối tiểu tƣơng đƣơng với là:
loại bỏ từ trái sang phải ở điều kiện (ii)
loại bỏ từ phải sang trái.
Thuật toán 2.1: Tìm phủ tối tiểu của tập phụ thuộc hàm trên tập thuộc
tính .
INPUT: F, U
OUTPUT: G {G là phủ tối thiểu của F}
Bƣớc 1: . Tách tất cả các phụ thuộc hàm f của F thành phụ thuộc
hàm mà vế phải chỉ có một thuộc tính:
FOR
Bƣớc 2: Loại bỏ những phụ thuộc hàm không đầy đủ:(loại các thuộc tính
thừa ở vế trái các phụ thuộc hàm)
WHILE
Bƣớc 3: Loại bỏ những phụ thuộc hàm dƣ thừa:
FOR DO IF
Bƣớc 4: RETURN
Ta có thể diễn giải lại thuật giải nhƣ sau:
Ví dụ: Cho lƣợc đồ quan hệ Q(A,B,C,D) và tập phụ thuộc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
35
Tìm phủ tối thiểu?
Bƣớc 1. Tách các phụ thuộc hàm sao cho vế phải chỉ còn một thuộc tính.
+ Ta có
Bƣớc 2. Bỏ các thuộc tính dƣ thừa ở vế trái.
+ Không xét vì vế trái chỉ có một thuộc tính.
+ Xét : Nếu bỏ A thì B+=BCD không chứa A nên không thể bỏ A.
Nếu bỏ B thì A+=A, không bỏ đƣợc thuộc tính nào.
: Nếu bỏ A thì B+=BCD không chứa A nên không thể bỏ A.
+ Xét Nếu bỏ B thì A+=A, không bỏ đƣợc thuộc tính nào.
Bƣớc 3. Loại khỏi F các phụ thuộc hàm dƣ thừa.
+ Xét
: Tính AB+=ABCD = Q nên loại bỏ : Tính AB+=ABCD = Q nên loại bỏ + Xét
+
: Tính B+=B không thể bỏ. : Tính C+=C không thể bỏ. +
Ví dụ:
. Ta có thể tìm đƣợc hai Cho
phụ thuộc hàm tối tiểu tƣơng đƣơng với F là:
2.1.4. Phụ thuộc hàm xấp xỉ và lớp tương đương
Đối với một số quan hệ, một vài phụ thuộc hàm có thể không thỏa mãn
cho tất cả các bộ. Vậy một phụ thuộc hàm có thể nghĩa theo hƣớng thỏa mãn
xấp xỉ.
Ví dụ:
Về những chiếc xe ôtô, nhãn mác xe đƣợc xác định bởi mô-đen. Dựa vào
điều đó, với mô-đen X6, chúng ta biết với xác suất cao nhãn mác xe là BMW,
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
36
nhƣng cũng có một xác suất nhỏ rằng nhãn mác xe là Honđa. Phụ thuộc hàm
xấp xỉ đƣợc mong đợi đó đƣợc xác định bởi Mô-đen Nhãn mác xe.
Một định nghĩa chuẩn của một phụ thuộc xấp xỉ là dựa trên số
tối thiểu những hàng cần loại bỏ khỏi quan hệ để phụ thuộc đúng
trong . Sai số và đúng trong
. Độ đo có một cách hiểu tự nhiên nhƣ tỷ số của các hàng với
những ngoại lệ hoặc sai số ảnh hƣởng đến phụ thuộc. Cho một ngƣỡng sai số
, chúng ta nói rằng là một phụ thuộc xấp xỉ nếu và chỉ ,
lớn nhất là bằng . nếu
Một lớp tƣơng đƣơng của là hợp của một hoặc nhiều lớp tƣơng
đƣơng của đúng. Số tối thiểu các hàng cần loại bỏ là kích
thƣớc của trừ đi kích thƣớc của lớp lớn nhất. Lấy trên tất cả các lớp
tƣơng đƣơng của cho tổng số các bộ cần loại bỏ. Nhƣ vậy chúng ta
có:
và .
Ví dụ: Cho quan hệ
TupleID 1 2 3 4 5 6 7 8 A 1 1 2 2 2 3 3 3 B a x x x y y c c E 2 2 0 0 0 1 1 1 C $ $ $ $ # D Hoa Hoa tulip Cây thủy tiên Hoa Cây huệ Phong lan Hoa Bông hồng
Bảng 2.3: Bảng quan hệ ví dụ cho phụ thuộc hàm xấp xỉ
Để kiểm tra thỏa hoặc không, chúng ta tìm các lớp tƣơng đƣơng
của và các lớp tƣơng đƣơng của
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
37
. Vì lớp tƣơng đƣơng trong không
mịn hơn bất kỳ lớp nào trong , và tƣơng tự nhƣ vậy đối với các lớp khác
của . Do đó không thỏa.
Tuy nhiên trong ví dụ trên, có thể thỏa với một sai số nào đó
nếu chúng ta loại bỏ một vài bộ khỏi quan hệ đã cho. Đầu tiên chúng ta tìm
. Lớp tƣơng đƣơng trong
bằng lấy từ , có kích thƣớc lớn nhất của và là .
Lớp tƣơng đƣơng trong bằng lấy từ , có kích
thƣớc lớn nhất của và là 2. Cuối cùng lớp tƣơng đƣơng
của bằng lấy từ có kích thƣớc lớn nhất của và
là 2.
Từ đó . Nói cách ít nhất 3 bộ trong 8
bộ ở ví dụ trên cần loại bỏ để đƣợc thỏa mãn. Nhƣ vậy có thể nói
phụ thuộc hàm: thỏa mãn xấp xỉ với tỉ lệ sai số .
Quá trình phát hiện các phụ thuộc hàm xấp xỉ này đƣợc lặp lại cho tất cả
thuộc tính và cho tất cả các tổ hợp của chúng. Lấy ví dụ, cho một quan hệ với
5 thuộc tính (A, B, C, D, E) tập các ứng viên là {Ø, A, B, C, D, E, AB, AC,
AD, AE, BC, BD, BE, CD, CE, DE, ABC, ABD, ABE, ACD, ACE, ADE,
BCD, BCE, BDE, CDE, ABCD, ABCE, ABDE, ACDE, BCDE, ABCDE} cho
một tổng cộng 32 tổ hợp. Các thuộc tính ứng viên này của quan hệ đƣợc biểu
diễn nhƣ một dàn đƣợc chỉ rõ trong hình 2.1.
Mỗi nút trong hình 2 biểu diễn một tập thuộc tính ứng viên một cạch giữa
hai nút bất kỳ nhƣ E và ED chỉ ra phụ thuộc xấp xỉ: cần đƣợc kiểm
tra.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
38
Hình 2.1: Dàn cho các thuộc tính (A, B, C, D, E)
Phần tiếp theo sau trình bày thuật toán TANE đã đƣợc sửa đổi để tìm tất
cả các phụ thuộc hàm xấp xỉ dạng có độ đo lỗi , với
là ngƣỡng lỗi cho trƣớc .
2.2. Thuật toán TANE sửa đổi [5]
2.2.1. Thủ tục chính của thuật toán TANE sửa đổi
Sau đây là các thủ tục chính của thuật toán TANE sửa đổi để tính các phụ
thuộc hàm xấp xỉ:
Input: Quan hệ trên lƣợc đồ
Output: Các phụ thuộc hàm tối tiểu, không tầm thƣờng đúng trên
không đúng} .
không đúng}.
1.
2.
3.
4.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
39
5. while
6. COMPUTE_DEPENDENCIES
7. PRUNE
GENERATE_NEXT_LEVEL 8.
9.
Giải thích
khởi tạo bằng rỗng 1
bằng 2
bằng họ tất cả các tập một thuộc tính trong 3
4
5 while
6 Tính toán các phụ thuộc hàm trong mức
7 Prune tỉa để tìm kiếm và xóa các phụ thuộc hàm không cần
thiết
xây dựng các phụ thuộc hàm cho mức tiếp theo, dựa trên 8
9
Thủ tục: Tính các phụ thuộc hàm
Procedure COMPUTE_DEPENDENCIES
1 for each do
2
3 for each do
4 for each do
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
40
then if 5
output 6
remove from 7
8 If thỏa mãn then
remove all in from 9
Thủ tục: Tỉa
Procedure PRUNE
1 for each do
if do 2
3 delete from
if is a (super) key do 4
5 do for each
6 then if
7 output
8 delete from
Thuật toán TANE đã đƣợc sửa đổi để tính tất cả các phụ thuộc hàm xấp xỉ
tối tiểu với , với một giá trị ngƣỡng cho trƣớc.
Việc sửa đổi quan trọng là thay đổi việc kiểm tra tính thỏa trên dòng 5 của thủ
tục COMPUTE_DEPENDENCIES bởi:
If then
Thay dòng 8 của thủ tục COMPUTE_DEPENDENCIES bởi:
If thỏa mãn then
remove all in from .
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
41
2.2.2. Độ phức tạp của thuật toán TANE sửa đổi.
Với quan hệ có thuộc tính và bộ. Độ phức tạp thời gian của
thuật toán TANE sửa đổi phụ thuộc vào số bộ trong cơ sở dữ liệu , phụ
thuộc vào số tập trong tất cả các mức của dàn các thuộc tính ứng viên
và số khóa .
Do đó độ phức tạp của thuật toán TANE sửa đổi là:
.
Phần tiếp theo sau trình bày thuật toán tìm phụ thuộc hàm xấp xỉ dựa trên
một số khái niệm của lý thuyết thiết kế CSDL quan hệ là phủ tối thiểu và lớp
tƣơng đƣơng do tác giả Jalal Atoum (Khoa Khoa học Máy tính, Đại học Công
nghệ (PSUT), Jordan) đề xuất và công bố năm 2009 [8]
2.3. Thuật toán khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu
và lớp tƣơng đƣơng
2.3.1. Mô tả thuật toán
Thuật toán khai phá phụ thuộc hàm xấp xỉ từ những cơ sở dữ liệu lớn
đƣợc trình bày dƣới đây dựa trên độ đo xấp xỉ . Trong đó có sử dụng một
số khái niệm của lý thuyết thiết kế cơ sở dữ liệu quan hệ, cụ thể là các khái
niệm phủ tối tiểu và những lớp tƣơng đƣơng (Mining Approximate Functional
Dependencies from Databases based on Minimal Cover and Equivalenc
Classes viết tắt là “AFDMCEC”). Thuật toán này làm giảm bớt số các thuộc
tính và các phụ thuộc hàm xấp xỉ cần kiểm tra bởi có kết hợp với một vài khái
niệm từ lý thuyết thiết kế cơ sở dữ liệu quan hệ.
Những khái niệm đầu tiên bao gồm việc tăng trƣởng tính phủ tối tiểu của
các phụ thuộc hàm xấp xỉ trong mỗi giai đoạn phát hiện những phụ thuộc hàm
này. Mục đính của cách làm này là để giảm tối thiểu số các phụ thuộc hàm
xấp xỉ cần kiểm tra. Trong khi đó khái niệm thứ hai bao gồm việc tính toán về
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
42
sự tƣơng đƣơng của các thuộc tính dựa trên bao đóng không tầm thƣờng của
chúng. Đối với mỗi cặp thuộc tính có cùng bao đóng, thuật toán loại đi một
trong chúng khỏi tập hợp các thuộc tính ứng viên. Nhƣ vậy thuật toán cũng
xem hai thuộc tính này là tƣơng đƣơng xấp xỉ . Điều này sẽ làm giảm
bớt số thuộc tính cần phải kiểm tra trong mỗi giai đoạn của thuật toán
AFDMCEC.
Sau đây là thủ tục chính của thuật toán khai phá phụ thuộc hàm xấp xỉ sử
dụng phủ tối thiểu và lớp tƣơng đƣơng.
Thuật toán
Input: Tập dữ liệu và những thuộc tính của nó
: Ngƣỡng sai số,
Output: Tập phụ thuộc hàm xấp xỉ tối tiểu MinimalApproximate_FDSet,
tập hợp ứng viên cho mức tiếp theo, EQ_Set
1. Bƣớc khởi tạo
Set
Nrows = Số hàng trong cơ sở dữ liệu.
Set FD_Set =
Approximate_FDSet =
Set EQ_Set =
Set Candidate_Set =
2. While Candidate_Set Do
For all Candidate_Set Do
Approximate_FDSet=ComputeMinimaiApproximate_FD
GenerateNextLevelCandidates(Candidate_Set)
3. Display ApproximateFD_Set
Thủ tục chính của thuật toán AFDMCEC gọi thủ tục tính toán phụ thuộc
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
43
hàm xấp xỉ tối tiểu ComputeMinimalApproximate_FD cho mỗi
trong tập ứng viên. Với mỗi thuộc tính , nếu
thì bổ sung vào tập phụ thuộc hàm xấp xỉ Approximate_FDSet, và
nếu bao đóng xấp xỉ của bằng với bao đóng xấp xỉ của thì bổ sung
vào tập phụ thuộc hàm xấp xỉ Approximate_FDSet, bổ sung
vào tập EQ_Set và loại bỏ khỏi tập ứng viên Candidate_Set.
Sau đây là các thủ tục đƣợc sử dụng trong chƣơng trình chính.
Thủ tục ComputeMinimalApproximate_FD :
// Thủ tục tính phụ thuộc hàm xấp xỉ tối tiểu
Procedure ComputeMinimalApproximate_FD(Xi)
Max = 0
TempList =
For each do
// Tập các lớp tƣơng đƣơng của thuộc tính Xi
// Tập các lớp tƣơng đƣơng của thuộc tính XiY
For all do
For all do
if then
if then
Add Max to Templist
For I = 1 to Len(Templist)
J = J + Templist(I)
Result = 1 – J/Nrows
If Result Then
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
44
Add to ApproximateFD_Set
If (approximate closure(Xi) = approximate closure (Y)) then
Add to ApproximateFD_Set
Add Xi to closure [Y]
Add to EQ_Set
Remove Y from candidate_set
Thủ tục GenerateNextLevelCandidates procedure:
//Thủ tục sinh các ứng viên mức tiếp
Procedure GenerateNextLevelCandidates(CANDIDATE_SET)
For each Candidate_Set do
For each Candidate_Set do
and then If
Set
If Xij TempList then
Delete Xij
else
Compute the partition of Xij
2.3.2. Độ phức tạp của thuật toán khai phá phụ thuộc hàm xấp xỉ sử
dụng phủ tối thiểu và lớp tương đương
Thuật toán AFDMCEC đề xuất sẽ kiểm tra toàn bộ bảng gồm bộ để
tìm tất cả những lớp tƣơng đƣơng với độ phức tập thời gian tỷ lệ với . Sau
đó phần chính của thuật toán AFDMCEC có một vòng lặp lặp lại lần. Vì
vậy, phần chính này có độ phức tạp thời gian tỷ lệ với . Trong mỗi lần lặp
của vòng lặp, có một lần gọi cho mỗi thủ tục sau.
1. ComputeMinimaiApproximate_FD(), mỗi lần gọi thủ tục này thực hiện
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
45
lần lặp. Trong mỗi lần lặp có một vòng lặp kiểm tra toàn bộ những ứng viên
trong mức đó có kích thƣớc . Do đó tổng thời gian của bƣớc này là
2. GenerateNextLevelCandidates(Candidate_set) thủ tục này thực hiện hai
vòng lặp lồng nhau, mỗi vòng lặp với lần lặp, cần một tổng thời gian bằng
. Vì vậy, tổng độ phức tạp thời gian đòi hỏi giải thuật AFDMCEC là:
2.3.3. Phân tích thử nghiệm, so sánh về độ phức tạp thời gian .
2.3.3.1. Phân tích thử nghiệm.
Theo kết quả của chạy cả hai thuật (TANE sửa đổi và AFDMCEC), trên
các tập dữ liệu UCI [9], cùng một tập các phụ thuộc hàm xấp xỉ đã đƣợc tạo
ra. Cho thấy các kết quả về thời gian thực tế của thuật toán TANE sửa đổi và
thuật toán AFDMCEC với các tập dữ liệu UCI với số thuộc tính và các bộ dữ
liệu thay đổi cùng với các giá trị ngƣỡng khác nhau trong việc phát hiện
tất cả các AFDs.
Bảng 2.4: Thời gian thực hiện cho cả hai thuật toán
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
46
Bảng 2.4 mô tả thời gian thực hiện cho thuật toán TANE sửa đổi và thuật
toán AFDMCEC đối với một số tập dữ liệu do J.Atoum (2009) thực nghiệm
với các ngƣỡng khác nhau.
Từ bảng 2.4 cùng một tập AFDs đƣợc tìm thấy hiệu quả hơn bằng cách sử
dụng thuật toán AFDMCEC so với thuật toán TANE sửa đổi. Có kết quả nhƣ
vậy là do có nhiều lớp tƣơng đƣơng hơn và dẫn tới có nhiều tập thuộc tính
tƣơng đƣơng hơn.
Nhiều tập thuộc tính tƣơng đƣơng hơn dẫn đến giảm bớt số các AFDs cần
kiểm tra. Tuy nhiên lƣu ý là khi giá trị ngƣỡng càng cao thì thời gian chạy
đòi hỏi của hai thuật toán sẽ càng giảm đi. Đây là điều đúng vì, với giá trị
ngƣỡng cao hơn thì tỷ lệ sai số đƣợc phép nhiều hơn và số các bộ cần loại
bỏ ít hơn trong việc tính g3.
2.3.3.2. So sánh về độ phức tạp thời gian (theo [8])
Chúng ta có sự so sánh về độ phức tạp thời gian đƣợc tính toán trƣớc đó
cho thuật toán AFDMCEC và thuật toán TANE sửa đổi nhƣ sau:
Modified Tane
Database Name # of Attribute # Of Tuples
AFDMCEC
Abalone
9
4,177
2304512
46378
Balance-scale
5
625
22588
1550
Breast-cancer
11
699
2501246
249838
Bridge
13
108
7260882
1386753
Chess
7
28,056
3614034
34671
Echocardiogram
13
132
7457490
1386777
Glass
11
214
1507966
249353
Iris
5
150
7388
1075
Nursery
9
12,960
6801408
55161
640233
103609
209
10
Machine Bảng 2.5: So sánh độ phức tạp thời gian dựa trên T(n) của hai thuật toán
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
47
Đánh giá kết quả chứng minh rằng thuật toán AFDMCEC thực hiện tốt
hơn phiên bản sửa đổi của thuật toán TANE. Thuật toán này hoạt động tốt với
các quan hệ lên đến hàng trăm ngàn bộ dữ liệu, và hƣớng tới việc cực tiêu hóa
thời gian đòi hỏi của các thuật toán nhằm phát hiện các phụ thuộc hàm xấp xỉ
trong các CSDL lớn.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
48
CHƢƠNG 3
THỰC NGHIỆM KHAI PHÁ PHỤ THUỘC HÀM XẤP XỈ
3.1. Xây dựng chƣơng trình thực nghiệm
3.1.1. Giới thiệu bài toán
Khi thiết kế cơ sở dữ liệu quan hệ, cần chọn ra tập các lƣợc đồ quan hệ
tốt nhất dựa trên một số tiêu chí nào đó. Để có thể thiết kế đảm bảo không có
sự dƣ thừa dữ liệu, đảm bảo tính nhất quán của dữ liệu cần quan tâm đến mối
ràng buộc giữa các dữ liệu trong quan hệ, đó chính là các phụ thuộc hàm. Phụ
thuộc hàm là một công cụ dùng để biểu diễn một cách hình thức các ràng
buộc toàn vẹn. Phƣơng pháp biểu diễn này có rất nhiều ƣu điểm, và đây là
một công cực kỳ quan trọng, gắn chặt với lý thuyết thiết kế cơ sở dữ liệu.
Trong khuôn khổ thực nghiệm của luận văn, tác giả thực nghiệm tìm
phụ thuộc hàm xấp xỉ trên tập dữ liệu của công ty tin học Ánh Sao trên địa
bàn thành phố Hải Dƣơng. Công ty thực hiện triển khai các dự án tại các địa
điểm khác nhau, mỗi dự án do một phòng chuyên môn đảm nhiệm và có nhân
viên phụ trách, thực hiện trên một khoảng thời gian (số tháng). Bảng 4.1 biểu
diễn dữ liệu quản lý triển khai các dự án tại các địa phƣơng. Vấn đề đặt ra là,
từ dữ liệu quản lý triển khai các dự án, phát hiện mối liên hệ giữa các thuộc
tính (chính là phụ thuộc hàm).
Bài toán: Cho tập dữ liệu quản lý triển khai các dự án và ngƣỡng sai số
. Tìm ra các phụ thuộc hàm xấp xỉ có sai số không vƣợt quá .
3.1.2. Dữ liệu thử nghiệm
Trong quý I và II của năm 2015, CSDL quản lý triển khai các dự án
lớn. Để thử nghiệm khai phá, ở đây chỉ trích chọn một phần nhỏ của dữ liệu
thực.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
49
Tên dự án Địa điểm dự án Tên phòng ban Tên nhân viên Thời gian
ProjectA TP Hải Dƣơng Giải pháp mạng Quỳnh Anh 7
ProjectB TP Hải Dƣơng Phần mềm ngoại Quỳnh Anh 5
ProjectD Chí Linh Phần mềm nội Quỳnh Anh 8
ProjectD Chí Linh Phần mềm nội Lan Anh 9
ProjectA TP Hải Dƣơng Giải pháp mạng Hồng Anh 6
ProjectB Sao Đỏ Phần mềm ngoại Lan Anh 6
ProjectD Ninh Giang Phần mềm nội Hải Hà 9
ProjectE Kim Thành Chăm sóc KH Hồng Anh 5
Bảng 3.1: Dữ liệu trích chọn để khai phá.
Chuyển đổi dữ liệu để khai phá:
Để chuẩn bị dữ liệu cho khai phá phụ thuộc hàm xấp xỉ, các thuộc tính
đƣợc mã hóa bởi tập số tự nhiên (tức là ánh xạ sang các số tự nhiên).
Thuộc tính Mã
Tên dự án (TenDA) A
Địa điểm dự án (DiadiemDA) B
Tên phòng ban (TenPB) C
Tên nhân viên (TenNV) D
Thời gian (Thoigian) E
Bảng 3.2: Bảng mã hóa các thuộc tính
Tiếp đến, dữ liệu đƣợc tiền xử lý đƣa về dạng Text, ghi trên tệp BANG.txt.
Mỗi giao tác đƣợc mô tả thành một dòng text trong tệp BANG.txt nhƣ sau: Liệt
kê mã giá trị các thuộc tính, các mã cách nhau một dấu cách. Hình 3.1 là tệp
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
50
BANG.txt biểu diễn một phần dữ liệu trong bảng 3.1.
Hình 3.1: Dữ liệu đã mã hóa chuẩn bị cho khai phá
Tệp BANG.txt biểu diễn dữ liệu đã tiền xử lý, chuẩn bị cho khai phá
phụ thuộc hàm xấp xỉ. Kết quả sẽ đƣợc ánh xạ ngƣợc lại để xác định tên thuộc
tính.
3.1.3. Xây dựng chương trình thực nghiệm
Chƣơng trình sử dụng thuật toán để khai phá phụ thuộc hàm xấp xỉ sử
dụng phủ tối thiểu và lớp tƣơng đƣơng, đƣợc trình bày trong chƣơng 2.
Chƣơng trình đƣợc xây dựng trên ngôn ngữ Free Pascal IDE và cài đặt
trên môi trƣờng hệ điều hành Windows 7 bản 32bit. Máy tính thực nghiệm có
cấu hình tối thiểu nhƣ sau:
- Tốc độ CPU: 2.0GHz; Dung lƣợng bộ nhớ RAM: 512MB
- Không gian trống trên ổ cứng: 1GB
Chƣơng trình đƣợc dịch thành tệp AFDMCEC.EXE. Để khởi động
chƣơng trình, nhấp đúp chuột vào biểu tƣợng AFDMCEC.EXE đƣợc đặt ở ổ
C trong thƣ mục ThucNghiem của chƣơng trình.
3.2. Thực nghiệm khai phá phụ thuộc hàm xấp xỉ
Trong hình 3.2 cho thấy ứng với ngƣỡng sai số ε = 0,3 có 8 phụ thuộc
hàm xấp xỉ đƣợc khai phá trên một số giao tác với 05 thuộc tính.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
51
Ở phụ thuộc hàm thứ 7, cho kết quả: AD → B, ánh xạ ngƣợc lại tên
thuộc tính, ta có PTH xấp xỉ: {TenDA, TenNV} → {DiadiemDA}.
Hình 3.2: Giao diện kết quả đƣợc khai phá phụ thuộc hàm xấp xỉ
3.3. Kết quả thực nghiệm
Chƣơng trình ứng dụng khai phá phụ thuộc hàm xấp xỉ đã thực hiện
thành công, cho ta kết quả tìm đƣợc các phụ thuộc hàm biểu diễn mối liên hệ
giữa các thuộc tính với ngƣỡng sai số ε = 0,3.
Kết quả thử nghiệm khai phá dữ liệu trên đã khẳng định những vấn đề
lý thuyết trong khai phá phụ thuộc hàm xấp xỉ đã trình bày ở chƣơng 2.
Kết quả khai phá phụ thuộc hàm xấp xỉ do chƣơng trình thực nghiệm
tìm đƣợc sẽ giúp cho việc thiết kế CSDL quản lý việc triển khai các dự án
đƣợc tốt hơn, cụ thể là giúp cho việc chuẩn hóa, tách lƣợc đồ quan hệ, đƣa về
dạng không dƣ thừa dữ liệu, đảm bảo tính nhất quán dữ liệu, đạt dạng chuẩn
cao hơn.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
52
KẾT LUẬN
1. Những kết quả chính của luận văn
Phụ thuộc hàm biểu diễn mối quan hệ giữa các thuộc tính của một cơ sở dữ
liệu, một phụ thuộc hàm chỉ ra rằng giá trị của một thuộc tính đƣợc xác định
duy nhất bởi giá trị của một số thuộc tính khác. Phụ thuộc hàm đóng vai trò
quan trọng trong chuẩn hóa cơ sở dữ liệu, phát hiện các phụ thuộc hàm cũng có
thể giúp các nhà thiết kế cơ sở dữ liệu tách một lƣợc đồ quan hệ thành nhiều
lƣợc đồ quan hệ đạt dạng chuẩn cao hơn.
Qua quá trình nghiên cứu đề tài “Khai phá phụ thuộc hàm xấp xỉ sử dụng
phủ tối thiểu và lớp tương đương”, luận văn đã đạt đƣợc một số kết quả:
- Tìm hiểu tổng quan về khai phá dữ liệu, khai phá phụ thuộc hàm trong
cơ sở dữ liệu quan hệ, mở rộng khai phá phụ thuộc hàm xấp xỉ và một số vấn đề
về độ đo lỗi của phụ thuộc hàm xấp xỉ.
- Tìm hiểu thuật toán TANE sửa đổi khai phá các phụ thuộc hàm và phụ
thuộc hàm xấp xỉ trong cơ sở dữ liệu, thuật toán AFDMCEC khai phá phụ
thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tƣơng đƣơng. Nhận xét và đánh
giá về độ phức tạp của hai thuật toán.
- Cài đặt chƣơng trình Demo, khai phá các phụ thuộc hàm xấp xỉ sử dụng
phủ tối thiểu và lớp tƣơng đƣơng trên tập dữ liệu quản lý các dự án của Công ty
Ánh Sao, TP Hải Dƣơng.
2. Hƣớng nghiên cứu tiếp theo của luận văn
- Cải tiến chƣơng trình Demo để thực hiện trên cơ sở dữ liệu lớn hơn.
- Nghiên cứu các phƣơng pháp mới để khai phá các phụ thuộc hàm và phụ
thuộc hàm xấp xỉ trong cơ sở dữ liệu có hiệu quả cao hơn.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
53
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] Trần Duy Anh (2007), “Phát hiện các phụ thuộc hàm xấp xỉ theo cách tiếp
cận tập thô”, Tạp chí Tin học và Điều khiển học, T. 23, S. 3, tr. 284 - 295.
[2] Trần Duy Anh (2014), “Biểu diễn phụ thuộc hàm xấp xỉ theo phân hoạch,
ma trận phân biệt được và luật kết hợp”, Tạp chí Tin học và Điều khiển học,
30(2).
[3] Hồ Thuần (chủ biên), Hồ Cẩm Hà (2005), Các hệ cơ sở dữ liệu - Lý thuyết
và thực hành, NXB Giáo dục Việt Nam.
[4] Nguyễn Thanh Thủy (2003), “Phát hiện tri thức và khai phá dữ liệu:
Công cụ, phương pháp và ứng dụng”.
Tiếng Anh:
[4]. Kivinen J., and Mannila H. (1995), “Approximate Inference of Functional
Dependencies From Relations”. Theoretical Computer Science, Vol. 1, No. 49,
pp. 129-149.
[5] Huhtala Y., Karkkainen J., Porkka P., and Toivonen H., (1999). “Tane: An
efficient algorithm for discovering functional and approximate dependencies”.
The Computer Journal, Vol. 42, No. 2, pp. 100-111.
[6] Ronald S.King, James J.Legendre (2003), “Discovery of functional and
approximate dependencies in relational databases”, Journal of applied
mathematics and decision sciences, Vol. 7, No. 1, pp. 49 - 59.
[7] Wenfei Fan and et al (2011), “Discovering conditional functional
dependencies”, Ieee International Conference on Data Engineering, Vol. 23,
No. 5.
[8] J.Atoum (2009), “Mining Approximate Functional Dependencies from
Databases based on Minimal Cover and Equivalenc classes”, European J. of
cientific Research, Vol. 33, No. 2, pp. 338-346.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
54
[9] UCI Machine Learning Repository, http://www.ics.uci.edu /~mlearn/
MLRepository.html.
[10] Han J., and Kamber M. (2012), Data Mining: Concepts and
Techniques, Third Edition, Morgan Kaufmann, Series in Data Management
Systems.
[11] Anupama A Chavan, Vijay Kumar Verma (2013), Functional
Dependency Mining form Relational Database: A Survey, International
Journal of Engineering and Advanced Technology, ISSN: 2249 – 8958,
Volume-2, Issue-6.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
55
PHỤ LỤC
Mã nguồn chƣơng trình thực nghiệm:
uses crt;
Type mang=array[1..8]of string[8];
Var
AFDT:array[1..100] of string[10];
AFDP:array[1..100] of string[10];
EQT:array[1..100] of string[10];
EQP:array[1..100] of string[10];
Can:array[1..100] of string[10];
DL:array[1..50,'A'..'E'] of String[10];
List:array[1..50] of Byte;
R:String[5];
f1:text;
O:mang;
Procedure Nhap;
Var a1,a2:Byte;
a3:string[10];
Begin
assign(f1,'c:\Thucnghiem\BANG.txt');
Reset(f1);
for a1:=1 to 8 do
Begin
readln(f1,a3);
DL[a1,'A']:=a3[1];
DL[a1,'B']:=a3[3];
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn
56
DL[a1,'C']:=a3[5];
DL[a1,'D']:=a3[7];
DL[a1,'E']:=a3[9];
End;
End;
{Thu tuc sinh hoan vi}
Procedure Hoanvi;
Var max,a,i,j:byte;
m,l,o,p,q:char;
e:Real;
Begin
R:='ABCDE';
i:=1;
for m:='A' to 'E' do
begin
Can[i]:=m;
inc(i);
End;
for m:='A' to 'E' do
for l:='A' to 'E' do
if(m begin Can[i]:=m+l; inc(i); End; for m:='A' to 'E' do for l:='A' to 'E' do Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn 57 for o:='A' to 'E' do if(m begin Can[i]:=m+l+o; inc(i); End; for m:='A' to 'E' do for l:='A' to 'E' do for o:='A' to 'E' do for p:='A' to 'E' do if(m begin Can[i]:=m+l+o+p; inc(i); End; Can[i]:='ABCDE'; End; {Thu tuc phan hoach} Procedure Phan_Hoach(X:char;var B:mang); var L:array[1..8]of string[8]; j,dem1,dem2,a,i:byte; M1:mang; DLTG:array[1..8,'A'..'E']of string[8]; c:char; xau,xau1:string[8]; Begin Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn 58 for i:=1 to 8 do M1[i]:=''; dem2:=0;dem1:=1; for dem2:=1 to 8 do Begin xau:=''; for i:=dem1 to 8 do if DL[i,X]<>DL[dem1,X] then begin a:=i; break; end; str(dem1,xau); for i:= dem1+1 to 8 do if DL[i,X]=DL[dem1,X] then Begin Str(i,xau1); xau:=xau+xau1; End; M1[dem1]:=xau; dem1:=a; End; for i:=1 to 7 do for j:=8 downto i+1 do if (pos(M1[j],M1[i])<>0)and(j>i) then M1[j]:=''; B:=M1; End; Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn 59 {Phan hoach hai thuoc tinh} Procedure PH(A,B:char;var C:mang); var M,N:mang; KT:string[8]; TG:array[1..50] of string[8]; i,j,k,k1,k2,k3:word; Begin Phan_Hoach(A,M); Phan_Hoach(B,N); for i:=1 to 50 do TG[i]:=''; for i:=1 to 8 do C[i]:=''; k:=1; for i:=1 to 8 do if M[i]<>'' then Begin for j:=1 to 8 do if N[j]<>'' then Begin KT:=''; for k1:=1 to length(M[i]) do for k2:=1 to length(N[j])do if M[i][k1]=N[j][k2] then KT:=KT+N[j][k2]; TG[k]:=KT; inc(k); End; End; k3:=0; Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn 60 for i:=1 to k do if TG[i]<>'' then Begin k3:=k3+1; C[k3]:=TG[i]; End; End; {Thu tuc tinh cac phu thuoc ham xap xi} Procedure Tinh_Phu_Thuoc_xap_xi; Var max,a,i,j,k,k1,k2,dem1,dem2:byte; i1,j1:byte; e:Real; c,L:Char; Dau:array[1..5] of boolean; TG,Y:String[5]; M,N,M1,N1:mang; RY:string[100]; Begin e:=0.3;R:='ABCDE'; Nhap; Hoanvi; for i:=1 to 100 do Begin AFDT[i]:=''; AFDP[i]:=''; EQT[i]:=''; Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn 61 EQP[i]:=''; End; {Tinh Phu thuoc xap xi voi cac ung vien} for a:=1 to 5 do Begin RY:='';TG:=''; for i:=1 to 5 do dau[i]:=true; for i:=1 to length(R) do for j:=1 to length(Can[a]) do if Can[a][j]=R[i] then dau[i]:=false; for i:=1 to 5 do if dau[i]=true then RY:=RY+R[i]; for k1:=1 to length(RY) do Begin Phan_Hoach(Can[a][1],M); PH(Can[a][1],RY[k1],N); k:=0; for i:=1 to 8 do if M[i]<>'' then Begin max:=0; for j:=1 to 8 do if pos(N[j],M[i])<>0 then if max<=length(N[j]) then max:=length(N[j]); Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn 62 k:=k+max; End; if k=8 then k:=0; if (1-(k/8))<=e then writeln(' ',Can[a],' -> ',RY[k1]); End; End; for a:=6 to 15 do Begin if length(Can[a])>=2 then Begin RY:='';TG:=''; for i:=1 to 5 do dau[i]:=true; for i:=1 to length(R) do for j:=1 to length(Can[a]) do if Can[a][j]=R[i] then dau[i]:=false; for i:=1 to 5 do if dau[i]=true then RY:=RY+R[i]; for i1:=1 to length(Can[a])-1 do PH(Can[a][i1],Can[a][i1+1],M); for j:=1 to length(RY[j]) do Begin PH(Can[a][i1],RY[j],N); k:=0; for i:=1 to 8 do if M[i]<>'' then Begin max:=0; Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn 63 for j1:=1 to 8 do if pos(N[j1],M[i])<>0 then if max max:=length(N[j1]); k:=k+max; End; if k=8 then k:=0; if (1-(k/8)) <= e then writeln(' ',Can[a],' -> ',RY[j]); End; End; End; End; BEGIN clrscr; writeln('Phu thuoc ham xap xi tim duoc la '); Tinh_Phu_Thuoc_Xap_Xi; Readln; END. Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.ltc.tnu.edu.vn