BẢNG CÁC KÍ HIỆU VIẾT TẮT KDD Khám phá tri thức SuppX Độ hỗ trợ tập mục X SuppXY Độ hỗ trợ luật X kéo theo Y ConfXY Độ tin cậy luật X kéo theo Y Minsup Độ hộ trợ tối thiểu Minconf
Trang 1LỜI CẢM ƠN
Để có thể hoàn thành tốt luận văn này, em đã có sự động viên, giúp đỡ của rất nhiều người Trước tiên, em xin bày tỏ lòng kính trọng và sự biết ơn sâu sắc tới TS.Hoàng Thị Lan Giao, người đã hướng dẫn, giúp đỡ và tạo điều kiện cho em trong suốt quá trình làm luận văn Em xin chân thành cảm ơn PGS.TS Trần Văn Lăng, cùng tất cả các Thầy đã tận tình giảng dạy, trang bị cho tôi những kiến thức quý báu trong suốt quá trình học tập và định hướng nghiên cứu khoa học cho tôi Cuối cùng, xin cảm ơn gia đình, bạn bè cùng các đồng nghiệp đã giúp đỡ , động viện và tạo điều kiện để tôi có thể hoàn thành quá trình học tập và hoàn thành tốt luận văn này
Đồng Nai, tháng 07 năm 2012 Học viên: Võ Thành Trung
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan những kết quả được trình bày trong luận văn này là của riêng tôi, không sao chép từ bất kỳ một công trình nào khác Nếu có điều gì không trung thực, tôi xin chịu hoàn toàn trách nhiệm
Học viên
Võ Thành Trung
Trang 3MỤC LỤC
Trang
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
BẢNG CÁC KÍ HIỆU VIẾT TẮT vi
DANH SÁCH CÁC BẢNG vii
DANH SÁCH CÁC HÌNH VẼ viii
MỞ ĐẦU 1
CHƯƠNG 1.CƠ SỞ LÝ THUYẾT 3
1.1.2 Các bước chính trong quá trình khám phá tri thức 3
Hai giai đọan cơ bản của thuật toán khai phá luật kết hợp 10
1.4 Một số thuật toán tìm tập mục phổ biến 10
Trang 41.5.4 Miền khẳng định 26
1.5.5 Thuộc tính cần thiết và không cần thiết 27
CHƯƠNG 2.CÁC PHƯƠNG PHÁP ĐÁNH GIÁ LUẬT 31
Trang 6BẢNG CÁC KÍ HIỆU VIẾT TẮT
KDD Khám phá tri thức
Supp(X) Độ hỗ trợ tập mục X
Supp(XY) Độ hỗ trợ luật X kéo theo Y
Conf(XY) Độ tin cậy luật X kéo theo Y
Minsup Độ hộ trợ tối thiểu
Minconf Độ tin cậy tối thiểu
(U,A) Hệ thống thông tin
T=(U,CD) Bảng quyết định
D Tập thuộc tính quyết định trong hệ thông tin
a Một thuộc tính điều kiện trong tập thuộc tính điều kiện của hệ
thông tin
V a Tập giá trị của thuộc tính điều kiện
U Tập đối tượng (tập tổng thể) trong hệ thông tin
RED Tập rút gọn
CORE(C) Tập lõi
card (X) hay ||X|| Số lượng phần tử có trong X
FP Tree Frequent Pattern Tree
TCCN Trung cấp chuyên nghiệp
RIM Rule Importance Measure
ERIM Enhanced Rule Importance Measure
Trang 7DANH SÁCH CÁC BẢNG
Trang
Bảng 1.2: Giá trị của các thuộc tính trong CSDL giao tác sinh viên 13 Bảng 1.3: Khai phá cây FP bằng cách tạo các cơ sở mẫu điều kiện 19
Bảng 2.10 Các trọng số đối với khái niệm phân cấp của Bảng 2.9 56 Bảng 2.11 Luật sinh ra từ tập dữ liệu được sắp xếp theo phân cấp mức 8 57 Bảng 3.1 Các thuộc tính của dữ liệu kết quả học tập của sinh viên 60
Bảng 3.3 Tập các luật quan trọng theo độ đo RIM 63
Trang 8DANH SÁCH CÁC HÌNH VẼ
Trang Hình 1.1 Mô hình mô tả quá trình khám phá tri thức 4
Hình 1.2 Sinh ra các tập mục ứng viên và các tập mục thường xuyên 15
Hình 1.3.Cây FP ghi đầy đủ thông tin mẫu thường xuyên 19 Hình 1.4 Xấp xỉ tập thí sinh cần xem xét khi thi đại học 26 Hình 2.1 Sự phân loại các độ đo hữu ích của luật 32
Hình 2.4 Cấu trúc các khái niệm trong cấu trúc phân cấp 47
Hình 3.4 Minh họa ứng dụng luật dự báo kết quả tốt nghiệp của sinh viên 68
Trang 9MỞ ĐẦU
Lý do chọn đề tài
Với sự phát triển vượt bật của công nghệ thông tin, các hệ quản trị cơ sở dữ liệu có thể lưu trữ dữ liệu về hoạt động hàng ngày dễ dàng, dẫn đến việc hình thành một khối lượng dữ liệu khổng lồ, đòi hỏi chúng ta, là những người sử dụng phải biết khai thác, chọn lọc dữ liệu có ích cho mình Các tri thức vừa học được có thể vận dụng để cải thiện hiệu quả hoạt động của hệ thống thông tin ban đầu Các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng được thực tế đã làm phát triển một khuynh hướng kỹ thuật mới là Khai phá dữ liệu (Data Mining)
Khai phá dữ liệu đã được ứng dụng rất nhiều trong thực tế, nhất là trong lĩnh vực tài chính và thị trường chứng khoán, thương mại, ý tế, sinh học, bưu chính viễn thôn, nông nghiệp Một trong những chức năng được đề cập nhiều trong khai phá
dữ liệu là khám phá sự kết hợp giữa các mẫu trong dữ liệu hay còn gọi là luật kết hợp Số lượng luật kết hợp cũng tăng theo kích thước cơ sở dữ liệu, vì vậy, nhiều lý thuyết được đưa ra để đánh giá độ quan trọng của luật Trên cơ sở đó lựa chọn các luật phù hợp cho ứng dụng Đây là một hướng nghiên cứu mới và có ý nghĩa
Mục tiêu
Luận văn tập trung nghiên cứu các phương pháp đánh giá độ quan trọng của luật được sinh từ tập cơ sở dữ liệu, trên cơ sở luật kết hợp và lý thuyết tập thô Việc đánh giá độ quan trọng của luật nhằm hỗ trợ ra quyết định đối với một tổ chức, doanh nghiệp, giúp cho quá trình phân tích từ tập dữ liệu được tốt hơn Bên cạnh đó, việc mô phỏng ứng dụng cũng được đặt ra để minh họa cho việc đánh giá này
Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu là các thuật toán khai phá luật kết hợp Đồng thời nghiên cứu hai phương pháp đánh giá độ quan trọng của luật là RIM và ERIM
Trang 10Phương pháp nghiên cứu
Nghiên cứu lý thuyết, phân tích, tổng hợp, mô phỏng, khái quát rút ra những vấn đề cần thiết cho đề tài
Ý nghĩa khoa học và thực tiễn đề tài
Khai phá dữ liệu là sự khám phá hiệu quả những tri thức từ cơ sở dữ liệu lớn,
và nó trở thành một vấn đề nóng cho việc đưa ra các quyết định
Kỹ thuật khai phá luật kết hợp tuy hiệu quả nhưng cũng gặp một số bất lợi đối với việc khai phá các dữ liệu lớn Số luật tăng tỉ lệ thuận với cơ sơ dữ liệu càng làm cho việc tìm kiếm tri thức trở nên khó khăn hơn
Kết hợp với lý thuyết tập thô trong việc đánh giá độ quan trọng của các luật sinh ra phần nào đã giải quyết được vấn đề sinh quá nhiều luật Theo kỹ thuật này các luật được đánh giá với các độ quan trọng khác nhau là độ quan trọng chủ quan
và độ quan trọng khách quan Sự kết hợp này giúp cho các chuyên gia có cái nhìn trực quan hơn trong việc vận dụng các luật thu được áp dụng vào thực tế
Cấu trúc luận văn
Với mục tiêu đó, luận văn được chia làm ba chương
Chương 1: Cơ sở lý thuyết
Trong chương này trình bày tổng quan về khai phá dữ liệu,luật kết hợp và lý thuyết tập thô
Chương 2: Các phương pháp đánh giá luật
Chương này tập trung nghiên cứu các phương pháp đánh giá độ hữu ích của luật, phương pháp RIM,ERIM
Chương 3: Ứng dụng kiểm chứng
Chương này tập trung mô phỏng với dữ liệu kết quả học tập của bậc TCCN ngành kế toán doanh nghiệp tại Trường Cao đẳng Công nghệ Thủ Đức
Trang 11sở dữ liệu nhưng bị che giấu trong các khối dữ liệu
Tri thức ở đây có thể được hiểu là một biểu thức trong một ngôn ngữ nào đó diễn tả một hoặc nhiều mối quan hệ giữa các thuộc tính trong các dữ liệu đó Tri thức có thể được xem như dữ liệu ở mức trừu tượng hóa và tổng quát hóa cao Các ngôn ngữ thường dùng để biểu diễn tri thức trong quá trình phát hiện tri thức từ cơ
sở dữ liệu là các khung, các cây và đồ thị, các luật, các công thức trong logic mệnh đề,
Việc khám phá tri thức thường được áp dụng để giải quyết một loạt những yêu cầu phục vụ những mục đích nhất định Quá trình phát hiện tri thức mang tính chất hướng nhiệm vụ, không phải là phát hiện mọi tri thức mà phát hiện những tri thức phục vụ tốt một nhiệm vụ đề ra Vì vậy, quá trình phát hiện tri thức là một hoạt động tương tác giữa một người sử dụng hoặc một chuyên gia phân tích với các công
cụ tin học
1.1.2 Các bước chính trong quá trình khám phá tri thức
Mục đích của quá trình khám phá tri thức là rút ra được tri thức mới sau một
số bước từ những cơ sở dữ liệu trong thực tế Quá trình này gồm các bước chính sau[2]:
Trang 12Hình 1.1 Mô hình mô tả quá trình khám phá tri thức
Bước 1: Xác định và định nghĩa vấn đề:
- Tìm hiểu lĩnh vực ứng dụng và nhiệm vụ đề ra, xác định các tri thức đã có và các mục tiêu của người sử dụng
- Tạo và chọn lựa cơ sở dữ liệu
Bước 2: Thu nhập và tiền xử lý dữ liệu:
- Xử lý và làm sạch dữ liệu trước: Bỏ đi các dữ liệu tạp bao gồm các lỗi và các dạng không bình thường Xử lý dữ liệu bị mất, chuyển đổi dữ liệu phù hợp
- Rút gọn kích thước dữ liệu nhận được: Nhận ra các thuộc tính hữu ích cho quá trình phát hiện tri thức
Bước 3: Khai phá dữ liệu:
- Chọn nhiệm vụ khai phá dữ liệu
- Lựa chọn các phương pháp khai phá dữ liệu
- Khai phá dữ liệu để rút ra các mẫu, các mô hình
Bước 4: Giải thích kết quả và đánh giá các mẫu, các mô hình tìm được ở bước 3 Bước 5: Sử dụng tri thức phát hiện được
Xác định và định nghĩa vấn đề
Trang 13- Các tri thức phát hiện được tích hợp chặt chẽ trong hệ thống Tuy nhiên để
sử dụng được tri thức đó đôi khi cần đến các chuyên gia trong các lĩnh vực quan tâm vì tri thức rút ra có thể chỉ có tính chất hỗ trợ quyết định
- Tri thức tìm được có thể được sử dụng cho một quá trình khám phá tri thức khác
Như vậy khám phá tri thức gồm 5 bước chính, trong đó khai phá dữ liệu là bước quan trọng nhất, nhờ đó có thể tìm được các thông tin tiềm ẩn trong cơ sở dữ liệu
1.1.3 Khai phá dữ liệu
Khai phá dữ liệu (DM - Data mining): là một giai đoạn quan trọng trong quá trình phát hiện tri thức Về bản chất nó là giai đoạn duy nhất tìm ra được thông tin mới, thông tin tiềm ẩn có trong cơ sở dữ liệu chủ yếu phục vụ cho mô tả và dự đoán Quá trình khai phá dữ liệu bao gồm các bước chính sau:
- Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết
- Xác định các dữ liệu liên quan dùng để xây dựng giải pháp
- Thu thập và tiền xử lý dữ liệu: Thu thập các dữ liệu liên quan và tiền 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 phải một số vấn đề: dữ liệu phải được sao ra nhiều bản (nếu được chiết xuất vào các tệp), quản lý 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, )
- Giải thuật khai phá dữ liệu: 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 có ý nghĩa dưới dạng biểu
diễn tương ứng với các ý nghĩa đó
Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu
Khai phá dữ liệu có khả năng chấp nhận một số kiểu dữ liệu khác nhau, điển hình là:
- Cơ sở dữ liệu quan hệ (Relational database): Cơ sở dữ liệu tác nghiệp được tổ chức theo mô hình dữ liệu quan hệ Hầu hết các hệ quản trị cơ sở dữ liệu hiện nay đều hỗ trợ dạng này như MS SQL Server, Oracle, v.v
Trang 14- Cơ sở dữ liệu đa chiều (Multidimensional structures, data warehouses, data mart) là các kho dữ liệu được tập hợp, chọn lọc từ nhiều nguồn dữ liệu khác nhau Dạng dữ liệu này mang tính lịch sử (tức có tính thời gian) và chủ yếu phục vụ cho quá trình phân tích cũng như là khám phá tri thức nhằm hỗ trợ ra quyết định
- Cơ sở dữ liệu dạng giao tác (Trasactional database): Là dạng cơ sở dữ liệu tác nghiệp nhưng các bản ghi thường là các giao tác Dạng dữ liệu này thường phổ biến trong lĩnh vực thương mại và ngân hàng
- Cơ sở dữ liệu quan hệ - hướng đối tượng (Object-relational database): Là dạng
Cơ sở dữ liệu lai giữa 2 mô hình quan hệ và hướng đối tượng
- Dữ liệu không gian và thời gian (Spatial, temporal and time-series data): là dạng
dữ liệu có tích hợp thuộc tính về không gian (ví dụ dữ liệu về bản đồ) , dữ liệu thời gian (dữ liệu thị trường chứng khoán…)
- Cơ sở dữ liệu đa phương tiện (Multimedia database): Là dạng dữ liệu âm thanh (audio), hình ảnh (Images), phim ảnh (video), Text & WWW,…Dạng dữ liệu này hiện đang rất phổ biến trên Internet do sự ứng dụng rộng rãi của nó
Các ứng dụng của khai phá dữ liệu
Khai phá dữ liệu có nhiều ứng dụng trong thực tiễn, các ứng dụng điển hình có thể liệt kê như là:
- Phân tích dữ liệu và hỗ trợ ra quyết định
- Điều trị trong y học: Mối liên hệ giữa triệu chứng, chuẩn đoán và phương pháp điều trị
- Phân lớp văn bản, tóm tắt văn bản và phân lớp các trang Web
- Tin sinh học: Tìm kiếm, đối sánh các hệ Gene và thông tin di truyền, mối liên hệ giữa một số hệ Gene và một số bệnh di truyền
- Nhận dạng
- Tài chính và thị trường chứng khoán: Phân tích tình hình tài chính và dự báo giá của các cổ phiếu
- Bảo hiểm
Trang 15- Giáo dục
1.2 Luật kết hợp
Khai phá dữ liệu bằng luật kết hợp là một phương pháp quan trọng trong khai phá dữ liệu Nó được ra đời và phát triển mạnh mẽ trong những năm gần đây Lần đầu tiên được Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất năm 1993[14] Sau đó năm 1996 được Rakesh Agrawal, Heikki Mannila, Ramakrishnan Srikant, Hannu Toivonen, A.Inkeri Verkamo tiếp tục phát triển và cải tiến Đến nay những nghiên cứu về luật kết hợp tập trung xây dựng thuật toán khai phá luật kết hợp mới, hiệu quả hoặc cải tiến, phát triển các thuật toán để hiệu quả hơn Ứng dụng điển hình là trong siêu thị, người ta muốn biết rằng trong giỏ hàng mua hàng của khách hàng thì thường mua những món hàng nào đi cùng với nhau Nếu nhà kinh doanh siêu thị biết được thông tin này thì họ sẽ có chiến lược kinh doanh phù hợp để tăng thêm lợi nhuận Ví dụ nếu một luật được khám phá rằng “đa số người mua dao cạo râu thì sẽ mua kem cạo râu” Lúc đó nhà kinh doanh có thể sẽ đưa tủ chứa kem cạo râu lại gần với dao cạo râu hoặc có những hình thức khuyến mãi như mua nhiều kem cạo râu sẽ được tăng dao cạo râu…Không chỉ dừng lại nhưng ứng dụng trong thương mại, luật kết hợp đã có nhưng ứng dụng rộng rãi trong các lĩnh vực khác như y tế, tài chính, thiên văn,…
1.2.1 Một số khái niệm
Tập mục (itemset)
Tập I={i1,i2,…,in} bao gồm n mục phân biệt i1,i2,…,in, mỗi mục (item) được hiểu như là mỗi mặt hàng trong siêu thị hay mỗi thuộc tính trong cơ sở dữ liệu
Trang 16Độ hỗ trợ (Support) của một tập mục X trong tập các giao tác D, kí hiệu: supp(X) là tỷ số giữa các giao tác T (của D) chứa X và tổng số các giao tác của D (hay số phần trăm của các giao tác trong D chứa X)
supp(X) =
Độ hỗ trợ của một tập mục có giá trị giữa 0 và 1, tức là 0≤supp(X)≤1 với mọi tập mục X
Tập mục phổ biến (frequent itemset)
Tập mục X mà thoả mãn điều kiện supp(X) ≥ minsup (với minsup là một giá trị cho trước) được gọi là tập mục phổ biến với độ hỗ trợ cực tiểu minsup
iv) Bao hàm của tập mục không phổ biến cũng là tập mục không phổ biến: Nếu tập B không thỏa mãn độ hỗ trợ tối thiểu trên D, nghĩa là supp(B)<minsup thì mọi tập A chứa B đều là tập mục không phổ biến vì giao tác không chứa B thì chắc chắn không chứa A
1.1.2 Luật kết hợp
Một luật kết hợp là một phát biểu dạng XY, trong đó X và Y là tập mục thoả mãn điều kiện X,YI (X,Y# và XY= Đối với luật kết hợp XY, X gọi là tiên đề, Y gọi là kết quả của luật
Luật kết hợp có 2 thông số quan trọng là độ hỗ trợ và độ tin cậy
D
T X D
Trang 17Độ hỗ trợ của một luật (Support):
Độ hỗ trợ của luật kết hợp XY, ký hiệu l à supp(XY) được xác định như sau: supp(XY) = supp(XY)
Độ hỗ trợ của luật thể hiện phạm vi ảnh hưởng của luật trên toàn bộ cơ sở dữ liệu
Ví dụ 1.1: khi ta nói độ hỗ trợ của luật là 30% có nghĩa là trong tổng giao tác
thì có 30% giáo tác chứa tập XY
Độ tin cậy của một luật (confidence):
Độ tin cậy của một luật kết hợp XY, ký hiệu conf(XY) là số phần trăm các giao tác trong D mà chứa X thì cũng chứa Y Hay đó chính là xác suất có điều kiện P(Y/X) Độ tin cậy của một luật cũng có giá trị giữa 0 và 1
Conf(XY) = P(Y/X) = supp(XY) /supp(X)
Độ tin cậy của luật thể hiện độ chính xác, tính đúng đắn hay khả năng tin cậy của luật trong phạm vi ảnh hưởng của luật (xác định bởi độ hỗ trợ)
Độ tin cậy của luật cho biết mức độ đúng của luật
Ví dụ 1.2: khi ta nói luật XY có độ tin cậy 80% và độ hỗ trợ là 15% nghĩa
là 80% các giao tác hỗ trợ cho X thì cũng hỗ trợ cho Y với tỉ lệ giao tác chứa cả X
và Y trong cơ sở dữ liệu là 15%
1.3 Bài toán tìm luật kết hợp
Vấn đề khó khăn nhất trong việc khai phá luật kết hợp chính là số lượng khổng lồ các luật cần phải xem xét về mặt lí thuyết với cơ sở dữ liệu và tập mục ngày càng lớn Chúng ta biết rằng số lượng luật tăng theo lũy thừa lực lượng của tập mục I Trên thực tế là không cần phải khai thác hết các luật, hay luật nào cũng
sử dụng Các luật tạo ra cần phải được giới hạn bởi một ngưỡng hỗ trợ và một ngưỡng tin cậy nào đó Vì supp(XY ) = supp(XY) nên nếu đặt Z = XY thì supp(XY )≥ minsupZ là tập mục phổ biến
Trang 18Hai giai đọan cơ bản của thuật toán khai phá luật kết hợp
Input: I, D, minsupp, minconf
Output: Các luật thỏa minsupp, minconf
Thuật toán:
1) Tìm tất cả các tập mục phổ biến trong D (tìm tất cả các tập mục có độ hỗ trợ lớn hơn hoặc bằng minsupp)
2) Sinh các luật từ các tập mục phổ biến sao cho độ tin cậy của luật lớn hơn hoặc bằng minconf
1.4 Một số thuật toán tìm tập mục phổ biến [13]
1.4.1 Thuật toán Apriori
Apriori là thuật toán tìm các tập mục phổ biến Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất năm 1993, là nền tảng để phát triển những thuật toán tìm luật kết hợp sau này
Ký hiệu
k-tập mục: tập mục có k phân tử
Lk: tập các k-tập_mục phổ biến (frequent itemset) tức là các tập mục có độ hỗ
trợ lớn hơn hoặc bằng minsupp và có lực lượng bằng k
Ck: tập các k-tập_mục ứng cử (candidate itemset), là các tập mục có lực lượng bằng k
Ý tưởng
Thuật toán Apriori tìm tất cả các tập mục phổ biến Lk thỏa mãn một ngưỡng
hỗ trợ minsupp (ngưỡng hỗ trợ tối thiểu) Cụ thể là trong giai đoạn đầu tiên thuật toán ta xác định các tập mục 1-tập_mục với độ hỗ trợ tương ứng của mỗi tập, nói cách khác ta xác định tập C1 là tập ứng cử của tập mục 1-tập_mục, sau đó lấy những tập mục có độ hỗ trợ lớn hơn hoặc bằng minsupp ta có được tập L1 là tập mục phổ biến 1-tập_mục Trong giai đoạn tiếp theo thuật toán sử dụng các tập mục phổ biến Lk-1 để tìm các tập mục ứng viên Ck bằng phương pháp kết nối và cắt tỉa sẽ được trình bày cụ thể trong thủ tục apriori_gen() dưới đây Sau đó lại
Trang 19dựa vào tập mục ứng viên Ck để xác định các tập mục phổ biến Lk+1 (các tập mục phổ biến có (k+1)-tập_mục) bằng cách bỏ đi những tập mục không thỏa ngưỡng hỗ trợ Qúa trình tiếp tục cho đến khi không sinh ra được tập Lk mới nào nữa từ tập Ck-1
Thuật toán
Đối với thuật toán Apriori các tập mục phổ biến được tính toán thông qua các bước lặp Trong mỗi bước lặp, cơ sở dữ liệu được quét một lần và mọi tập mục phổ biến có cỡ giống nhau được tính toán và đưa vào tập Lk , với k tương ứng là kích cỡ của tập mục
Input: Cơ sở dữ liệu D, ngưỡng hỗ trợ
Trang 20- Các giai đoạn thứ k sau đó (k>1) chia làm 2 pha
o Pha 1: Sinh các tập mục ứng viên Ck từ tập mục phổ biến Lk-1 bằng hàm apriori_generate()
o Pha 2: Quét cơ sở dữ liệu D để tính độ hỗ trợ cho mỗi tập mục ứng viên trong Ck
- L 1 là tập mục phổ biến 1-tập_mục: Đầu tiên xác định mỗi mục riêng lẻ và độ
hỗ trợ tương ứng (tức là tìm C1) sau đó giữ lại những mục có độ hỗ trợ lớn hơn hoặc bằng minsupp (chính là L1)
- Hàm apriori_generate(): Sinh các tập mục ứng viên
// s là tập mục con của ci và lực lượng của s là k-1
If (s∉ Lk-1) then delete ci from Ck;
Return Ck;
Bước nối (join step): Giả sử các mục trong các tập mục đã được sắp xếp
theo thứ tự từ điển như đã nói ở trên, bước này sẽ nối 2 phần tử l1, l2∈Lk-1
có k-2 mục đầu tiên giống nhau thành 1 tập mục có k-tập_mục bằng cách lấy k-2 phần tiền tố giống nhau và hợp với 2 mục thứ k-1 của l1, và l2 Sau đó có
Trang 21thể sắp xếp lại theo thứ tự từ điển, điều kiện là l1[k-1]<l2[k-1] nhằm tránh trường hợp hai tập mục l1 và l2 giống nhau được kết nối với nhau
Bước thu gọn (prune step): Tập mục k-tập_mục sau khi sinh được từ bước
nối, cần kiểm tra tất cả các tập mục con (k-1)-tập_mục của tập mục đó xem
nó có thuộc Lk-1 không Nếu tồn tại một tập con như vậy không thuộc Lk-1 thì
ta phải loại bỏ tập mục k-tập_mục vừa kết nối được Vì tập mục đó chứa tập con không phổ biến thì nó chắc chắn cũng là tập mục không phổ biến (theo tính chất của tập mục phổ biến)
- Hàm subset(C k ,t): Tìm tất cả các mục ứng viên trong Ck có chứa trong giao
tác t
Ví dụ 1.3: Cơ sở dữ liệu giao tác sinh viên D cho ở Bảng 1.1
Bảng 1.1 CSDL giao tác sinh viên
Mã giao tác Danh sách các tập mục T001 I2,I3,I5
T002 I4,I5 T003 I3,I5 T004 I2,I4,I5 T005 I2,I3,I5 T006 I1,I2,I3 T007 I4,I5 T008 I1,I3,I5 T009 I2,I3,I4
Bảng 1.2 Giá trị của các thuộc tính trong CSDL giao tác sinh viên
Trang 22Với 9 giao tác trong CSDL, chúng ta sẽ minh hoạ việc tìm các tập mục thường xuyên thoả độ hỗ trợ tối thiểu là 2 (minsup=2) trong CSDL D ở hình 1.3
Tập mục Tần
suất {I1,I3} 2 {I2,I3} 4 {I2,I4} 2 {I2,I5} 3 {I3,I5} 4 {I4,I5} 3
So sánh tần suất với ngưỡng minsup
Duyệt D
để xác định tần suất của các ứng viên
Trang 23Tập mục Tần
suất
So sánh tần suất với ngưỡng minsup
Tập mục
Tần suất {I2, I3,
I5}
{I2, I3, I5}
1
Hình 1.2 Sinh ra các tập mục ứng viên và các tập mục thường xuyên
1.4.2 Thuật toán FP_Growth
1.4.2.1 Cây các tập phổ biến (FP Tree – Frequent Pattern Tree)
- FP-Tree bao gồm một nút gốc được gán nhãn là Null, mỗi nhánh con là một tập các phần tử phổ biến, và một bảng header tập mục phổ biến
- Mỗi nút trong nhánh bao gồm ba thuộc tính: tên phần tử (item-name) làm nhãn nút, số các giao tác trên đường duyệt đến duyệt nút (count) và các liên kết đến các nút kế tiếp trên cây (node-link) hoặc Null
- Bảng Header có số dòng bằng số tập mục Mỗi dòng chứa 3 thuộc tính: name, item-count, node-link
item-Item-count: Tổng số biến count của tất cả các nút chứa tập mục đó
Node-link: Chỉ đến nút sau cùng được tạo ra để chứa item trong cây
1.4.2.2 Thuật toán FP-Growth
Khai phá các tập mục thường xuyên sử dụng cây FP bằng việc tăng trưởng đoạn mẫu
Thuật toán FP-Growth bao gồm hai thuật toán: thuật toán xây dựng cây FP và thuật toán khai thác dữ liệu với cây FP
A Thuật toán xây dựng cây FP
Xây dựng cây FP-Tree từ CSDL giao tác
Trang 24Thuật toán xây dựng cây FP_Tree
Input: cơ sở dữ liệu và ngưỡng độ hỗ trợ minsup
Output: Cây mẫu thường xuyên FP_Tree
Thuật toán:
- Duyệt D lần đầu để thu được tập F gồm các tập các mục thường xuyên và số hỗ trợ của chúng Sắp xếp các item trong F theo trật tự giảm dần của số hỗ trợ ta được danh sách L
- Tạo nút gốc R và gán nhãn "null"
- Tạo bảng Header có | | dòng và đặt tất cả các node -link chỉ đến null
For each giao tác T D { / / duyệt D lần 2
Chọn các tập mục phổ biến của T đưa vào P;
Sắp các tập mục trong p theo trật tự L;
Gọi Insert_Tree(P, R); }
Procedure InsertTree(P, R ) {
Đặt P=[p|P-p], với p là phần tử đầu tiên và P-p là phần còn lại của danh sách
If R có một con N sao cho N item-name = p then
Trang 25// Tăng biến count của p trong bảng header thêm 1
Tính chất này có cơ sở trực tiếp từ cách xây dựng FP-Tree Nó cho phép dễ dàng tìm ra tất cả các tập phổ biến có chứa ai bằng cách duyệt FP-Tree một lần theo các nút liên kết với ai
Tính chất 2: (Prefix path property) để tìm ra các tập phổ biến từ một nút ai
trên đường đi P, chỉ cần đến đường đi con trước nút ai trên P Và số lần phổ biến của mỗi nút trên đường đi con này phải bằng với số lần phổ biến của nút ai
Dựa trên các tính chất trên, chúng ta có thuật toán tìm các tập phổ biến trên cây FP-Tree
Thuật toán khai phá các tập phổ biến từ FP-Tree
Input: cây FP-Tree của CSDL, ngưỡng minsup
Output: tập các mẫu phổ biến
Phương pháp: gọi FP_Growth(Tree,null)
Procedue FP_Growth(tree, ) {
F=;
If (Tree chứa một đường dẫn đơn P) then {
For mỗi tổ hợp (kí hiệu ) của các nút trong đường dẫn P do {
Phát sinh mẫu p=
Trang 26Support(p) = minsup các nút trong
Xây dựng cơ sở có điều kiện của
Xây dựng FP-Tree có điều kiện Tree của
If Tree Then Gọi FP_Growth(Tree, ) }
Cây FP được xây dựng như sau Đầu tiên, tạo nút gốc của cây với nhãn là
"null" Duyệt CSDL D lần thứ 2 Các mục trong mỗi giao tác được xử lý theo thứ tự
L và một nhánh được tạo cho mỗi giao tác Ví dụ: duyệt giao tác đầu tiên "T001: I2,I3,I5" nó chứa ba nút <I5:1>, <I3:1> và <I2:1>, với I5 được liên kết như là con của nút gốc, I3 được liên kết với I5 và I2 liên kết với I3 Giao tác thứ hai, T002, các mục theo thứ tự L là I5 và I4, kết quả trong một nhánh mà I5 liên kết đến gốc và I4 được liên kết đến I5 Tuy nhiên, nhánh này dùng chung phần đầu I5 với đường đã
có ở giao tác T001 Do đó, chúng ta tăng số đếm của nút I5 lên 1 , tạo nút mới
<I4:1>, liên kết và là con của nút <I5:2> Một cách tổng quát, khi tính đến nhánh đã
Trang 27được thêm đối với một giao tác thì tăng đếm của mỗi nút phía phần đầu chung lên một, các nút đối với các mục tiếp theo phần đầu được tạo và được liên kết cho phù hợp
Để thuận lợi cho việc duyệt cây, một bảng Header được xây dựng để mỗi mục trỏ đến chính số lần xuất hiện của nó theo đường đi của các liên kết nút trên cây Cây thu được sau khi duyệt tất cả các giao tác được thể hiện ở hình 1.3 với các liên kết nút liên quan Bằng cách này, vấn đề khai phá các mẫu thường xuyên trong CSDL được chuyển sang khai phá FP-Tree
Hình 1.3.Cây FP ghi đầy đủ thông tin mẫu thường xuyên
Bảng 1.3 Khai phá cây FP bằng cách tạo các cơ sở mẫu điều kiện
Cây FP được khai phá như sau Bắt đầu từ mỗi mẫu thường xuyên độ dài một, xây dựng mẫu cơ sở điều kiện của nó (một "CSDL con" bao gồm một tập các đường
phần đầu trong cây FP xuất hiện với mẫu phần cuối) Sau đó xây dựng chính cây FP
I4:1 I1:1
I2:2
I3:4 I4:2 I2:1
Trang 28(điều kiện) và thực hiện khai phá đệ quy trên cây Tăng trưởng mẫu đạt được bởi việc nối mẫu hậu tố với các mẫu thường xuyên đã sinh từ một cây FP điều kiện Khai phá cây FP được tóm tắt trong bảng 1.3 và được chi tiết như sau Chúng
ta bắt đầu từ nút cuối cùng trong L, I1 Nút I1 xuất hiện trong hai nhánh <I5, I3,
I1:1>, <I3,I2, I1:1> Do đó, việc tính I1 như cuối của hai đường <I5,I3:l>, <I3,I2:l>,
đó là cơ sở mẫu điều kiện Cây FP điều kiện chứa một đường đơn <I3:2>; không
bao gồm I5 và I2 bởi vì độ hỗ trợ của nó là một ít hơn độ hỗ trợ tối thiểu Đường đơn sinh ra bằng việc kết hợp tất cả các mẫu thường xuyên: {I3,I1:2}
Đối với nút I4, nó là phần cuối của cơ sở mẫu điều kiện: {{I5:2}, {{I5, I2:1}, {I2,I3:1}}, cây FP điều kiện: <I5:3>, <I2:2>, các mẫu thường xuyên được sinh: {I5,I4:3}, {I2,I4:2}
Tương tự, cơ sở mẫu điều kiện của I2 là: {{I5,I3:2}, {I5:1}, {I3:2}}, cây FP
điều kiện: <I5:3,I3:2>, <I3:2>, các mẫu thường xuyên được sinh: {I5,I2:3}, {I3, I2:4},{I5:2,I3,I2:2}
Cuối cùng, cơ sở mẫu điều kiện của I2 là: {I5:4}, cây FP điều kiện: <I5:4>, mẫu thường xuyên được sinh: {I5,I3:4}
1.4.3 Nhận xét về các thuật toán
Chúng ta đã biết, trong rất nhiều trường hợp phương pháp tạo và kiểm tra Apriori giảm đáng kể kích thước của các tập ứng viên Tuy vậy, nó có thể chịu hai chi phí không tầm thường:
1) Có thể cần tạo ra số lượng lớn các tập ứng viên Ví dụ: nếu có 104 1-tập mục thường xuyên, thuật toán Apriori sẽ tạo ra hơn 107 2-tập mục ứng viên Hơn
nữa, để khám phá mẫu thường xuyên cỡ 100 ({a1, ,a100}), nó tạo ra ít nhất 2100
-11 030 tổng số ứng viên
2) Cần quét lặp lại CSDL và kiểm tra một tập lớn ứng viên bằng việc khớp mẫu Chi phí đó quá lớn cho mỗi giao tác trong CSDL để xác định độ hỗ trợ của tập mục ứng viên
Thuật toán tăng trưởng mẫu FP sử dụng chiến thuật chia để trị Đầu tiên, nó nén CSDL biếu diễn các mục thường xuyên vào một cây mẫu thường xuyên và giữ lại thông tin quan hệ của tập mục Sau đó, nó chia CSDL đã nén vào một tập CSDL điều kiện, mỗi tập CSDL đã nén kết hợp với một mục thường xuyên hoặc ''đoạn mẫu" và khai phá riêng biệt mỗi CSDL
Trang 29Phương pháp tăng trưởng FP chuyển vấn đề tìm các mẫu thường xuyên dài về việc tìm kiếm đệ quy mẫu ngắn và sau đó nối với phần cuối Nó sử dụng các mẫu thường xuyên ít nhất như là một phần cuối Phương pháp này giảm chi phí tìm kiếm
Phương pháp tăng trường FP cho thấy nó hiệu quả đối với cả các mẫu thường xuyên ngắn và dài Phương pháp này nhanh hơn phương pháp Apriori
Hai thuật toán trên đều tìm các mẫu thường xuyên để từ đó sinh ra các luật Thuật toán tăng trưởng FP hiệu quả hơn thuật toán Apriori nhưng cài đặt cũng phức tạp hơn Vì vậy, tùy thuộc vào mỗi bài toán mà ta chọn thuật toán phù hợp cho mục đích Nếu bài toán với dữ liệu lớn ta chọn thuật toán tăng trường FP để tối ưu về mặc thời gian ngược lại với bài toán dữ liệu nhỏ thì ta lựa chọn thuật toán Apriori vì cài đặt đơn giản
1.4.4 Thuật toán sinh luật kết hợp
1.4.4.1 Đặt vấn đề
Bài toán: Từ các tập mục phổ biến Z vừa tìm được (bởi thuật toán Apriori) hãy tìm các luật kết hợp X ⇒ Y sao cho X∩Y= , X∪Y=Z và độ tin cậy của luật lớn hơn hoặc bằng ngưỡng tin cậy (confedence( X ⇒ Y ) ≥ minconf ) Có thể hiểu giải thuật tìm luật từ tập mục phổ biến một cách đơn giản như sau:
Input: Cơ sở dữ liệu D, các tập mục phổ biến Z∈ Li, ngưỡng tin cậy minconf
1.4.4.2 Thuật toán sinh luật
Với mỗi tập mục phổ biến l tìm được ta tìm những tập con a khác rỗng của l sao cho với mỗi a ta có a (l-a) mà
Trang 30Thuật toán sinh luật:
Input: Cơ sở dữ liệu D, tập các tập mục phổ biến Lk,minconf
Conf= supp (l k )/ supp (am-1);
If (conf minconf ) then
Ví dụ 1.5: Sinh luật kết hợp: Với CSDL sinh viên cho ở Bảng 1.1 Dữ liệu
chứa tập mục phổ biến là: l={I2,I3,I5} Các luật kết hợp có thể sinh ra từ tập 3-tập mục phổ biến này nhƣ sau:
conf(XY)
Trang 311.5.1 Hệ thống thông tin
Một tập dữ liệu mô tả bởi một bảng, trong đó mỗi hàng biểu diễn "bản ghi" (thể hiện một phần tử, một trường hợp, một sự kiện hay đơn giản là biểu diễn một đối tượng), còn các cột biểu diễn một thuộc tính (một biến, một quan sát, một tính chất,.v.v ) Bảng này được gọi là hệ thông tin
Định nghĩa 1.1 Hệ thông tin là cặp (U,A) trong đó U là một tập hữu hạn khác
rỗng các đối tượng(được gọi là tập vũ trụ các đối tượng) và A là một tập hữu hạn khác rỗng các thuộc tính Với mọi aA ta ký hiệu Va là tập các giá trị của thuộc tính a Mặt khác, nếu uU và aA thì sẽ ký hiệu u(a)Va là giá trị thuộc tính a của đối tượng u
Ví dụ 1.6: Cho một hệ thông tin gồm có 7 đối tượng (mỗi đối tượng ở đây là
một học sinh) và 3 thuộc tính: Điểm trung bình, PTTH, Quận/Huyện
Bảng 1.4 Một ví dụ về hệ thống thông tin
Trang 32u1 5.5 Nguyễn Hữu Huân Thủ Đức
Các đối tượng trên có thể nhận các giá trị tại các thuộc tính là khác nhau hoặc
giống nhau Chẳng hạn, các đối tượng khác nhau u3 và u4, lại có các giá trị thuộc tính giống nhau: đây là trường hợp không phân biệt được các đối tượng nếu chỉ sử dụng thông tin từ các thuộc tính đã cho Khái niệm quan hệ không phân biệt được sẽ được giới thiệu trong phần sau
1.5.2 Bảng quyết định
Bảng quyết định là một hệ thống thông tin có dạng T=(U,A) với A=CD, C∩ D=, trong đó C là tập thuộc tính điều kiện, còn D là tập thuộc tính quyết Trong trường hợp không sợ bị nhầm lẫn, người ta ký hiệu T=(C,D) Lúc đó, trên mỗi tập X
U có một quan hệ tương đương INDX(D) xác định bởi (u,v)INDX(D)
U(D)=V(D) (tức là u(a)=v(a) với mọi aD) Ta ký hiệu họ các lớp tương đương trên X tương ứng với quan hệ là [DX]=[DX1,DX2,…,DX
m] Tương tự, với họ B C ta cũng có quan hệ INDX
(B) và phân hoạch [BX]=[BX1,BX2,…,BXK] INDX(B) được gọi
là quan hệ B-không phân biệt được trên X Khi X=U quan hệ này được viết một cách đơn giản là IND(B) và tập hợp thương tương ứng được ký hiệu là [B]
Ví dụ 1.7: Bảng 1.5 mô tả một bảng quyết định bao gồm 7 đối tượng, một
thuộc tính quyết định là Trúng tuyển và 3 thuộc tính Điểm trung bình, PTTH, Quận/Huyện
Bảng 1.5 Ví dụ về bảng quyết định TuyenSinh
U Điểm trung bình PTTH Quận/Huyện Trúng tuyển
Trang 33u1 5.5 Nguyễn Hữu Huân Thủ Đức Trượt
u4 6.5 Nguyễn Thượng Hiền Tân Bình Trượt
Một tri thức được tổng hợp từ bảng quyết định trên sẽ là luật có dạng “Nếu có
Điểm trung bình là 5.5 và học trường PTTH là Nguyễn Hữu Huân và Quận/Huyện
là Thủ Đức thì Trúng tuyển là trượt” tức là nếu một thí sinh có Điểm trung bình là 5.5 và học trường PTTH là Nguyễn Hữu Huân và Quận/Huyện là Thủ Đức thì sẽ bị
trượt đại học
Có thể thấy cặp hai đối tượng là u3 và u4 vẫn là cặp có các giá trị giống nhau theo thuộc tính điều kiện, nhưng kết quả quyết định đối với hai đối tượng là khác nhau
1.5.3 Xấp xỉ trên và xấp xỉ dưới
Xem từ bảng 1.5 ta nhận thấy rằng khái niệm Đỗ hay Trượt không thể định nghĩa được với các thuộc tính “Điểm trung bình”, “PTTH”, “Quận/Huyện” Vì học sinh u3 và u4 có cùng giá trị các thuộc tính điều kiện “Điểm trung bình”, “PTTH”,
“Quận/Huyện” nhưng học sinh u3 đỗ còn u4 thì trượt Bởi vậy, lý thuyết tập thô đưa
ra định nghĩa hai tập, gọi là xấp xỉ dưới và xấp xỉ trên Xấp xỉ dưới trong trường hợp bảng 1.5 là tập tất cả các học sinh có thể phân biệt được kết quả trúng tuyển rõ ràng, xấp xỉ trên là tập các học sinh không thể phân biệt được kết quả trúng tuyển Cho bảng quyết định T=(C,D) và B C, X U Xấp xỉ dưới và xấp xỉ trên của tập X tương ứng với B, ký hiệu theo thứ tự là và được định nghĩa như sau:
(1) Tập B-xấp xỉ dưới của X, kí hiệu là , là tập = {x U | [x]B X}
(2) Tập B-xấp xỉ trên của X, kí hiệu là , là tập = {xU | [x]B X }
Trang 34Tập hợp là tập các đối tượng trong U sử dụng các thuộc tính trong B ta có thể biết chắc chắn được chúng là các phần tử của X (tập có thể được gọi là tập chắc chắn)
Tập hợp là tập các đối tượng trong U sử dụng các thuộc tính trong B ta chỉ
có thể nói rằng chúng có thể là các phần tử của X (tập có thể được gọi là tập khả năng)
với [x]B là lớp tương đương chứa phần tử x của quan hệ IND(B)
Tập BNB(X) = - được gọi là B-vùng biên của X, do vậy chúng ta
không thể xác định được các đối tượng đó có thuộc X hay không
Tập U \ được gọi là B-vùng ngoài của X bao gồm các đối tượng chắc
chắn không thuộc X
Một tập được gọi là thô nếu vùng biên của nó là không rỗng, ngược lại ta nói tập này là rõ
Ví dụ 1.8: Xét bảng quyết định cho trong bảng 1.5 Giả sử W={x | Trúng
tuyển(x) = Trượt} Ta thu được vùng xấp xỉ dưới CW= {u1,u6}, xấp xỉ trên ̅ = {u1,u3,u4,u6}, vùng biên BNC(W)={ u3,u4} và vùng biên ngoài U - ̅ = {u2,u5,u7}
Do đó mà tập kết quả xem xét là thô vì vùng biên là không rỗng
1.5.4 Miền khẳng định
Miền khẳng định của phân hoạch U/D đối với C, kí hiệu POSC(D) là tập tất cả các phần tử của U mà có thể được phân loại duy nhất thành khối của phân hoạch
U/D bằng cách sử dụng thuộc tính C và có thể ký hiệu là POSC(D)
POSC(D) được định nghĩa như sau:
POSC(D)=X [D]CX
Khi đó POSC(D) được gọi là C-miền khẳng định của D Nói cách khác,
uPOSC(D) nếu và chỉ nếu u(C)=v(C) kéo theo u(D)=v(D) với mọi vU
Ví dụ 1.9: Xét bảng quyết định cho trong bảng 1.5 Giả sử Giả sử W={x |
Trúng tuyển(x) = Trượt} = {u1,u4,u6}
X B
X B
X B
X B
X
B B X
X B
Trang 351.5.5 Thuộc tính cần thiết và không cần thiết
Một thuộc tính cC đƣợc gọi là không cần thiết trong T nếu
POSC(D)=POSC\{c}(D) Ngƣợc lại, c đƣợc gọi là cần thiết Ta nói bảng quyết định T=(C,D) là độc lập nếu mọi thuộc tính cC đều cần thiết trong T
Ví dụ 1.10: Xét bảng quyết định cho trong bảng 1.5, ta có:
- POSC(D)=CWTrƣợt CWĐỗ = {u1,u6} {u2,u5,u7} ={u1 ,u2,u5,u6,u7}
- POSC\{Điểm trung bình} (D)={u1,u6}{u2,u5,u7}={u1 ,u2,u5,u6,u7}
- POSC\{PTTH} (D)={u1,u6}{u2,u7}={u1 ,u2,u6,u7}
- POSC\{Quận/Huyện} (D)={u1,u6}{u2,u5,u7}={u1 ,u2,u5,u6,u7}
Vậy ta có kết luận:
- Thuộc tính “Điểm trung bình”,”Quận/Huyện”} không cần thiết trong T
- Thuộc tính “PTTH” cần thiết trong T
1.5.6 Rút gọn và lõi
Một hệ thông tin (hay một bảng quyết định) thể hiện tri thức về các đối tƣợng trong thế giới thực Tuy nhiên nó có thể bị dƣ thừa thông tin ít nhất trong 2 khả năng sau:
- Các đối tƣợng giống nhau hoặc không phân biệt đƣợc có thể xuất hiện nhiều lần trong bảng
- Một số thuộc tính có thể là dƣ thừa theo nghĩa khi bỏ đi các thuộc tính này thì thông tin do bảng quyết định cung cấp mà chúng ta quan tâm sẽ không bị mất mát
Trang 36Với trường hợp thứ nhất, việc nhận biết các lớp tương đương là xu hướng tự nhiên của việc giảm bớt dữ liệu: chỉ cần sử dụng một đối tượng đại diện cho mỗi lớp tương đương Việc ghi lại dữ liệu sẽ được thực hiện chỉ từ một đối tượng của mỗi lớp tương đương là cần thiết để miêu tả toàn bộ lớp
Trong phần này chúng ta nghiên cứu tiếp cận cho loại dư thừa thông tin trong trường hợp thứ hai Đó là xu hướng chỉ giữ lại những thuộc tính mà bảo toàn quan
hệ không phân biệt được và đó bảo toàn khả năng xấp xỉ tập hợp trong một hệ thống thông tin Những thuộc tính còn lại mà khi vứt bỏ chúng đi không ảnh hưởng đến sự phân lớp, đó là những thuộc tính dư thừa Còn lại các tập con các thuộc tính và chúng là tối thiểu gọi là các tập rút gọn
Tập các thuộc tính R C được gọi là tập rút gọn của C nếu T’ = (U, R D) là độc lập và POSR(D) = POSC(D)
Tập tất cả các thuộc tính điều kiện cần thiết trong T được gọi là lõi, kí hiệu là CORE(C) và được xác định như sau:
CORE(C) = RED(C) Trong đó, RED(C) là tập tất cả các rút gọn của C
Lõi là tập hợp tất cả các thuộc tính cần thiết trong T, lõi được chứa trong tất cả các rút gọn, và lõi có khả năng là tập rỗng
Ví dụ 1.11: Xét bảng quyết định trong Bảng 1.5, tập thuộc tính rút gọn và
thuộc tính lõi biểu diễn như sau:
U Điểm trung bình PTTH Quận/Huyện Trúng tuyển
u4 6.5 Nguyễn Thượng Hiền Tân Bình Trượt
Trang 37Xét R1={Điểm trung bình, PTTH}
Ta có: POSR1 (D)={u1 ,u2,u5,u6,u7}=POSC(D)
Suy ra tập rút gọn R1 = {Điểm trung bình, PTTH}
Ta xét R2={PTTH,Quận/Huyện}
u1 Nguyễn Hữu Huân Thủ Đức Trượt
u3 Nguyễn Thượng Hiền Tân Bình Đỗ
u4 Nguyễn Thượng Hiền Tân Bình Trượt
Ta có: POSR2 (D)={u1 ,u2,u5,u6,u7}=POSC(D)
Tập thuộc tính lõi CORE = R1R2= {Điểm trung bình, PTTH} {PTTH, Quận/Huyện} = {PTTH}
1.6 Kết luận chương 1
Trong chương này đã trình bày được khái quát các nội dung về phát hiện tri thức, các quá trình phát hiện tri thức, mối quan hệ giữa khai phá dữ liệu và phát hiện tri thức Tìm hiểu được các khái niệm về tập mục phổ biến, về luật kết hợp
Trang 38cùng với các khái niệm về độ hỗ trợ, ngƣỡng hỗ trợ, độ tin cậy, ngƣỡng tin cậy của luật kết hợp, các thuật toán tìm tập mục phổ biến trong bài toán khai phá luật kết hợp và tổng quan về lý thuyết tập thô
Trang 39CHƯƠNG 2
CÁC PHƯƠNG PHÁP ĐÁNH GIÁ LUẬT
Hầu hết các thuật toán tìm luật kết hợp từ trước đến giờ đều dùng các độ đo khách quan làm điều kiện lọc trong quá trình tìm luật Các độ đo khách quan đó là
độ tin cậy, độ hỗ trợ Các độ đo này mang ý nghĩa về mặt thống kê Theo thuật toán Apriori, việc tìm luật được thực hiện theo một cách thức hết sức tự nhiên-mẫu nào thỏa đúng các chỉ số có ý nghĩa thống kê thì đó được xem như là một luật Thuật toán cho ra một tập rất lớn các luật Điều quan trọng là làm sao biết được, trong một tập khổng lồ các luật này, luật nào thật sự giúp ích được cho người sử dụng Đây thật sự là một vấn đề khó khăn cần phải giải quyết
Thông thường, tập luật có được sau khi thuật toán khai phá thực hiện gồm các loại luật sau:
- Luật là thừa vì đã được hàm chứa từ những luật khác trong tập luật khai phá được
- Luật thể hiện điều mà người ta đã biết từ lâu do có kinh nghiệm trong quá trình làm việc
- Những sự kết hợp vô nghĩa
- Luật thể hiện những tri thức thật sự mới mẻ và có ích
Phải khẳng định một điều rằng con người không thể phân tích luật một cách thủ công, tức là rà xét bằng mắt trong hàng nghìn các luật tìm được luật nào là có ích cho mình Cần giảm thiểu số lượng luật tìm được trước khi người dùng ứng dụng mà vẫn đảm bảo không mất thông tin và luật tìm được thực sự là hữu ích đối với người dùng Số các luật đáng được quan tâm này phải nhỏ chấp nhận được Có thể vài luật cho đến vài chục luật Và nếu có thể các luật này cần trình bày cho người dùng theo thứ tự giảm dần về mức độ quan tâm của người dùng đối với chúng Việc trình bày các luật cho người dùng theo yêu cầu nói trên là quá trình sắp xếp luật Việc tìm ra các luật thật sự có ý nghĩa cho người dùng gọi làm quá trình tìm luật hữu ích
Trang 40Hầu hết các thuật toán khai phá luật kết hợp đã có đều đơn thuần dựa vào dữ liệu Các thuật toán này đều không dựa vào tri thức của người sử dụng về lĩnh vực Thực tế, kinh nghiệm và trực giác trong quá trình làm việc của con người ngày càng được tích lũy, phát triển và trở thành những dữ kiện vô giá cho bài toán khai phá dữ liệu
Hiện tại đã có nhiều người quan tâm đến việc tìm sự hữu ích của luật nhưng những cách tiếp cận được đề xuất còn rời rạc và còn phụ thuộc nhiều vào lĩnh vực ứng dụng Như vậy, sau giai đoạn khai phá luật, việc ứng dụng luật quả thật còn là một khó khăn
Trong chương này giới thiệu về một số độ đo phổ biến nhất trong các ứng dụng phát hiện luật như độ đo Lift, Cosine(gọi chung là độ đo hữu ích của luật); và một số độ đo dựa vào lý thuyết tập thô do nhóm tác giả Jiye Li đề xuất: độ đo quan trọng của luật(RIM), độ đo quan trọng cải tiến(ERIM)
2.1 Độ đo hữu ích của luật [8][12]
Một luật được xem là hữu ích khi luật đó thỏa mãn một yêu cầu cụ thể của một lớp người dùng trong một lĩnh vực cụ thể
Như vậy, một luật có hữu ích hay không là do người dùng luật đánh giá Không thể đưa ra một định nghĩa tổng quát cho tính hữu ích của luật vì các lý do sau:
- Thứ nhất, quan niệm về tính hữu ích của luật của những người sử dụng trong các lĩnh vực khác nhau là khác nhau
- Thứ hai, đối với một CSDL cho trước và một tập các luật đã tìm được trên CSDL đó, các người dùng khác nhau quan tâm đến các vấn đề khác nhau
- Thứ ba, ngay cả đối với cùng một người dùng, tại các thời điểm khác nhau anh
ta có thể quan tâm đến các vấn đề khác nhau Điều mà người đó quan tâm tùy thuộc vào mục đích mà hiện tại họ cần giải quyết
Dù vậy, đã có rất nhiều độ đo được đề nghị nhằm lượng giá độ hữu ích của luật Nhìn chung, các độ đo đó được chia ra làm 2 loại:
- Độ đo khách quan (Objective measure) là độ đo phụ thuộc vào cấu trúc của