Tải bản đầy đủ (.doc) (41 trang)

đề tài Ứng dụng luật kết hợp trong phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (604.28 KB, 41 trang )

MỤC LỤC
1.2 Những thách thức trong Khai phá dữ liệu 8
1.3 Những vấn đề được chú trọng trong Khai phá dữ liệu 9

1
LỜI NÓI ĐẦU
Trong thời đại ngày nay, Internet phát triển rộng lớn khắp toàn cầu, cùng với
sự bùng nổ của ngành Công nghệ thông tin và những điều kiện phát triển của nó,
các công nghệ lưu trữ dữ liệu và phục hồi dữ liệu ngày càng phát triển nhanh
chóng tạo điều kiện cho các đơn vị thu thập dữ liệu nhiều hơn và tốt hơn. Chính vì
lý do này mà cơ sở dữ liệu ở các cơ quan, doanh nghiệp, đơn vị, trường học ngày
càng nhiều thông tin tiềm ẩn, phong phú và đa dạng; đặc biệt trong việc học tập
các môn học của học viên, các nhà trường đã nhận thức được tầm quan trọng của
việc nắm bắt và xử lý thông tin, sử dụng những tri thức được chiết xuất từ cơ sở dữ
liệu để phục vụ cho việc dự đoán phân loại học viên trong các môn học tiếp theo
trong quá trình học tập của học viên tại nhà trường.
Trước những điều kiện và yêu cầu đặt ra của nhiệm vụ đào tạo, đòi hỏi phải
có những phương pháp nhanh, phù hợp, tự động, chính xác và có hiệu quả để lấy
được thông tin có giá trị. Khai phá dữ liệu là một kỹ thuật được áp dụng rất hiệu
quả phục vụ cho mục đích này; là một khâu trong quá trình khám phá tri thức, khai
phá dữ liệu làm nhiệm vụ trích xuất các thông tin có giá trị tiềm ẩn trong những
kho dữ liệu; hiện nay, kỹ thuật này đang được áp dụng một cách rộng rãi trong rất
nhiều lĩnh vực kinh doanh và đời sống khác nhau như: y tế, marketing, ngân hàng,
viễn thông, Internet,…. Không ai có thể phủ nhận những lợi ích to lớn mà nhờ áp
dụng kỹ thuật khai phá đem lại.
Nhận thấy tầm quan trọng của vấn đề này, trong nội dung bài tập lớn của
nhóm em đã nghiên cứu về kỹ thuật khai phá dữ liệu, trong đó tập trung vào tìm
luật kết hợp của khai phá dữ liệu với mục đích đưa ra tập luật để đưa ra quyết định
trong 1 việc thực tế nào đó.
Nhóm xin chân thành cảm ơn thầy giáo hướng dẫn Đại tá, PGS.TS Nguyễn
Bá Tường đã tận tình hướng dẫn, chỉ bảo, giúp đỡ cho nhóm trong quá trình làm


bài tập lớn, để nhóm có thể hoàn thành tốt bài tập.
2
CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Khai phá dữ liệu
Khai phá dữ liệu là quá trình khai thác những thông tin tiềm ẩn có tính dự
đoán, những thông tin có nhiều ý nghĩa từ những cơ sở dữ liệu lớn, nó được coi
như là một bước trong quá trình khám phá tri thức (Knowledge Discovery in
Databases – KDD). Khai phá dữ liệu là giai đoạn quan trọng nhất trong tiến trình
khám phá tri thức từ cơ sở dữ liệu, các tri thức này có rất nhiều ý nghĩa, là cơ sở hỗ
trợ trong việc ra quyết định trong khoa học và kinh doanh.
Các bước trong quá trình khám phá tri thức:
- Làm sạch dữ liệu (Data cleaning): loại bỏ dữ liệu nhiễu hoặc dữ liệu không
thích hợp.
- Tích hợp dữ liệu (Data Intergration): Tích hợp dữ liệu từ các nguồn khác
nhau như CSDL, kho dữ liệu, file text,
- Trích chọn dữ liệu (data selection): 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 ban đầu (database, data warehouses,…) theo một số
tiêu chí nhất định.
- Biến đổi dữ liệu (data transformation): chuẩn hoá và làm mịn dữ liệu, đưa
dữ liệu về dạng thuận lợi nhất, phù hợp cho việc khai phá bằng cách thực hiện các
thao tác nhóm hoặc tập hợp.
- Khai phá dữ liệu (data mining): là giai đoạn thiết yếu, đây là bước quan
trọng và tốn nhiều thời gian nhất của toàn bộ quá trình khám phá tri thức, đây là
bước áp dụng những kỹ thuật khai phá để khai thác, trích xuất thông tin có ích,
những mẫu điển hình, những mối liên hệ đặc biệt có nhiều giá trị, mang nhiều ý
nghĩa từ dữ liệu.
- Đánh giá mẫu (Pattern Evaluation): đánh giá sự hữu ích của các mẫu biểu
diễn tri thức dựa vào một số phép đo.
3
- Trình diễn dữ liệu (knowledge presentation): sử dụng các kỹ thuật trình

diễn và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được cho người sử
dụng.
Hình 1.1 Các bước trong quá trình khám phá trí thức.
Khai phá dữ liệu là một lĩnh vực liên quan tới rất nhiều ngành học khác như: hệ
Cơ sở dữ liệu, thống kê, trực quan hoá. Tuỳ vào cách tiếp cận được sử dụng, khai
phá dữ liệu còn có thể áp dụng một số kỹ thuật như mạng nơron, lý thuyết tập thô
hoặc tập mờ, biểu diễn tri thức,… So với các phương pháp này, khai phá dữ liệu có
một số ưu thế rõ rệt, cụ thể:
 Phương pháp hệ chuyên gia: phương pháp này khác với khai phá dữ liệu ở
chỗ các ví dụ của hệ chuyên gia thường ở mức chất lượng cao hơn nhiều so
với các dữ liệu trong cơ sở dữ liệu và chúng thường chỉ bao hàm được các
trường hợp quan trọng. Ngoài ra, các chuyên gia sẽ xác nhận giá trị và tính
hữu ích của các mẫu phát hiện được.
 So sánh với phương pháp học máy, khai phá dữ liệu có lợi thế hơn ở chỗ,
khai phá dữ liệu có thể sử dụng với các cơ sở dữ liệu chứa nhiều nhiễu, dữ
liệu không đầy đủ hoặc biến đổi liên tục. Trong khi đó, phương pháp học
4
máy chủ yếu được áp dụng trong các cơ sở dữ liệu đầy đủ, ít biến động và
tập dữ liệu không quá lớn.
 Phương pháp thống kê là một trong những nền tảng lý thuyết của Khai phá
dữ liệu nhưng phương pháp thống kê còn tồn tại một số điểm yếu mà Khai
phá dữ liệu đã khắc phục được:
 Các phương pháp thống kê chuẩn không phù hợp với các kiểu dữ liệu
có cấu trúc trong rất nhiều các cơ sở dữ liệu.
 Các phương pháp thống kê hoạt động hoàn toàn theo dữ liệu, nó
không sử dụng tri thức sẵn có về lĩnh vực.
 Kết quả phân tích của thống kê có thể sẽ rất nhiều và khó có thể làm
rõ được.
 Phương pháp thống kê còn có sự hướng dẫn của người dùng để xác
định phân tích dữ liệu như thế nào và ở đâu.

Các kỹ thuật khai phá dữ liệu được chia làm 2 nhóm chính:
- Kỹ thuật khai phá dữ liệu mô tả: mô tả về các tính chất hoặc các đặc tính
chung của dữ liệu trong CSDL, các kỹ thuật này gồm có: phân cụm (clustering),
tóm tắt (sumerization), trực quan hoá (visualization), phân tích sự phát triển và độ
lệch (Evolution and deviation analyst), phân tích luật kết hợp (association rules),…
- Kỹ thuật khai phá dữ liệu dự đoán: đưa ra các dự đoán dựa vào các suy
diễn trên dữ liệu hiện thời, các kỹ thuật này gồm có: phân lớp (classification), hồi
quy (regression),…
Các bài toán chính trong khai phá dữ liệu: 3 bài toán thông dụng và phổ biến
nhất là:
- Bài toán phân lớp dữ liệu và hồi quy: Mục tiêu của phương pháp phân lớp
dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu. Quá trình phân lớp dữ liệu
thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình để phân lớp.
+ Xây dựng mô hình: một mô hình sẽ được xây dựng trên việc phân tích các
mẫu dữ liệu sẵn có. Mỗi mẫu tương ứng với một lớp, được quyết định bởi một
thuộc tính gọi là thuộc tính lớp. Các mẫu dữ liệu này còn được gọi là tập dữ liệu
5
huấn luyện. Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước
khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát,
khác với phân cụm dữ liệu là học không có giám sát.
+ Sử dụng mô hình để phân lớp dữ liệu: trước hết ta tính toán độ chính xác
của mô hình. Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để dự
đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai.
Phương pháp hồi quy khác với phân lớp dữ liệu ở chỗ, hồi quy dùng để dự
đoán về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng để dự đoán về các giá
trị rời rạc.
- Bài toán phân cụm (clustering/segmentation): Mục tiêu chính của phương
pháp phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào
các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng còn các đối
tượng thuộc các cụm khác nhau sẽ không tương đồng. Phân cụm dữ liệu là một ví

dụ của phương pháp học không giám sát. Không giống như phân lớp dữ liệu, phân
cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luỵện. Vì
thế, có thể coi phân cụm dữ liệu là một cách học bằng quan sát (learning by
observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example).
Với phương pháp này ta không thể biết kết quả các cụm thu được sẽ thế nào khi
bắt đầu quá trình, do đó luôn cần một chuyên gia về lĩnh vực đó để đánh giá các
cụm thu được. Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phân
đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web…
Ngoài ra, phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lý cho
các thuật toán khai phá dữ liệu khác.
- Bài toán luật kết hợp: là dạng biểu diễn tri thức ở dạng khá đơn giản, mục
tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ
liệu trong CSDL. Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật kết hợp tìm
được, ví dụ: “75% học viên học tốt môn cấu trúc dữ liệu và giải thuật thì học tốt
môn lập trình hướng đối tượng, 30% sinh viên học tốt cả môn cấu trúc dữ liệu và
giải thuật và môn lập trình hướng đối tượng”. Ở đây, “học tốt môn cấu trúc dữ liệu
6
và giải thuật” là vế trái của luật, “học tốt môn lập trình hướng đối tượng” là vế phải
của luật, con số 75% là độ tin cậy của luật, con số 30% là độ hỗ trợ của luật. Độ hỗ
trợ và độ tin cậy là 2 độ đo đặc trưng và quan trọng của luật. Chúng tương ứng
phản ánh sự hữu ích và sự chắc chắn của luật đã khám phá. Độ hỗ trợ 30% có
nghĩa là 30% của tất cả các học viên đã phân tích chỉ ra rằng học viên đồng thời
học tốt cả hai môn cấu trúc dữ liệu và giải thuật và môn lập trình hướng đối tượng.
Độ tin cậy 75% có nghĩa là 75% các học viên học tốt môn cấu trúc dữ liệu và giải
thuật cũng học tốt môn lập trình hướng đối tượng.
Ngoài ra còn một số bài toán khác như:
- Bài toán khai phá chuỗi theo thời gian (sequential/temporal patterns):
tương tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian
- Bài toán mô tả khái niệm (concept description & summarization): tập trung
vào việc mô tả, tổng hợp và tóm tắt khái niệm. Ví dụ: tóm tắt văn bản, mô tả khái

niệm,…
Những công cụ khai phá dữ liệu có thể dự đoán những xu hướng trong tương
lai và do đó cho phép doanh nghiệp ra những quyết định kịp thời được định hướng
bởi tri thức mà khai phá dữ liệu mang lại.
Những ứng dụng điển hình của khai phá dữ liệu:
 Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis and decision support)
 Text mining & Webmining: phân lớp văn bản và các trang Web, tóm tắt văn
bản, tìm kiếm thông tin,…
 Tin – sinh: tìm kiếm, đối sánh các quan hệ gen và thông tin di truyền, mối
liên hệ giữa một số hệ gen và một số bệnh di truyền,…
 Điều trị y học: (medical treatment): mối liên hệ giữa triệu chứng, chẩn đoán
và phương pháp điều trị (chế độ dinh dưỡng, thuốc men,…)
 Tài chính và thị trường chứng khoán (finance & stock market): phân tích
tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường
chứng khoán,…
7
Những ứng dụng thực tế:
+ Ngành bảo hiểm y tế Australia đã dựa vào việc chẩn đoán bệnh trong y tế
dựa trên kết quả xét nghiệm và đã phát hiện ra nhiều trường hợp xét nghiệm không
hợp lý, tiết kiệm được 1 triệu USD/năm.
+ Trang Web mua bán qua mạng Amazon.com cũng tăng doanh thu nhờ áp
dụng khái phá dữ liệu trong việc phân tích sở thích mua bán của khách hàng.
+ Bitish Telecom đã phát hiện ra những nhóm người thường xuyên gọi cho
nhau bằng mobile và thu lợi hàng triệu USD.
1.2 Những thách thức trong Khai phá dữ liệu
• CSDL có kích thước lớn: Các CSDL có tới hàng trăm bảng, mỗi bảng hàng
trăm trường, số lượng bản ghi cỡ hàng triệu, kích thước các CSDL dạng này
ở mức gigabyte.
• Số chiều dữ liệu nhiều: Một vấn đề rất khó khăn khi giải quyết các bài toán
KPDL là số chiều của dữ liệu rất lớn (số thuộc tính, số biến). Việc gia tăng

số chiều khiến các thuật toán tìm kiếm trong không gian tìm kiếm nếu
không được mở rộng thì rất khó đạt được hiệu quả.
• Over-fitting: Với các hệ thống KPDL theo mô hình học có giám sát, tức là
học quy nạp thì rất có thể diễn ra tình trạng hệ thống học vẹt, trên tập dữ
liệu huấn luyện thì kết quả rất tốt, nhưng trên tập kiểm tra thì kết quả rất tồi.
Đây là một vấn đề mang tính bản chất cố hữu của các hệ thống học máy.
• Sự thay đổi dữ liệu và tri thức: Sự thay đổi nhanh chóng của dữ liệu có thể
làm cho các hệ thống KPDL đã được xây dựng trước đó hoạt động không
chính xác. Các thuộc tính đầu vào của các hệ KPDL trong quá trình thực tế,
có thể bị chỉnh sửa, loại bỏ….
• Dữ liệu nhiễu, dữ liệu không đầy đủ: Vấn đề xử lý dữ liệu không đầy đủ
và lẫn nhiễu đã trở thành một phần trong toàn bộ quá trình KPDL. Vấn đề
này càng trở nên nghiêm trọng khi dữ liệu của các ứng dụng thực tế có tỷ lệ
lỗi lên đến 20%.
8
• Mối quan hệ phức tạp giữa các lĩnh vực: Cấu trúc hình cây và thuộc tính
hoặc giá trị, mối quan hệ giữa các thuộc tính, thuộc tính ẩn, có tính trừu
tượng cao… đòi hỏi phải có những thuật toán đủ mạnh để giải quyết.
• Khả năng giải thích: Một số hệ thống KPDL yêu cầu tính giải thích những
tri thức rút được từ dữ liệu. Những tri thức này được mô tả dưới dạng các
tập luật, hoặc mô hình đồ thị, ngôn ngữ tự nhiên hay sử dụng các kỹ thuật
trực quan hoá dữ liệu và tri thức….
• Khả năng tích hợp với các hệ thống khác: Hệ thống để đạt được hiệu quả
và khả năng cao nhất thì phải được tích hợp với các hệ thống khác, ví dụ
như các hệ sensor đầu thu dữ liệu, các công cụ bảng tính, trực quan dữ liệu.
1.3 Những vấn đề được chú trọng trong Khai phá dữ liệu
KPDL là một lĩnh vực mới, do đó đang còn rất nhiều vấn đề chưa đuợc nghiên
cứu một cách trọn vẹn. Sau đây là một số hướng nghiên cứu đã và đang thu hút
được sự chú ý của các nhà tin học.
• OLAM (OnLine Analytical Mining) - Sự tích hợp giữa CSDL, kho dữ liệu,

và KPDL. Hiện nay một số hệ quản trị CSDL như Oracle, MS SQL Server,
DB2 đã tích hợp tính năng xây dựng kho dữ liệu và phân tích trực tuyến
(OLAP). Những nhà nghiên cứu trong lĩnh vực CSDL mong muốn có một
sự tích hợp giữa CSDL, kho dữ liệu và KPDL.
• Khám phá được nhiều dạng tri thức khác nhau từ nhiều kiểu dữ liệu.
• Tính hiệu quả, tính chính xác, độ phức tạp tính toán, khả năng mở rộng và
tích hợp, xử lý nhiễu và dữ liệu không đầy đủ, tính hữu dụng (ý nghĩa) của
tri thức.
• Kết hợp KPDL với tri thức cơ sở.
• Vấn đề song song hóa và phân tán quá trình KPDL.
• Ngôn ngữ truy vấn trong KPDL (Data Mining Query Language – DMQL):
cung cấp cho người sử dụng một ngôn ngữ hỏi thuận tiện tương tự như SQL
đối với CSDL quan hệ.
9
• Biểu diễn và trực quan hóa tri thức khai phá được sao cho gần gũi với người
sử dụng. Tri thức có thể biểu diễn đa chiều, đa tầng để sử dụng tri thức hiệu
quả hơn.
10
CHƯƠNG II: CÁC THUẬT TOÁN TÌM LUẬT KẾT HỢP
3.1 Luật kết hợp
Được đưa ra bởi Agrawal vào năm 1993.
Nó là một mô hình khai phá dữ liệu quan trọng được nghiên cứu một cách
rộng rãi trên cơ sở dữ liệu.
Phân tích luật kết hợp là một trong những phương pháp của khai phá dữ liệu,
nhiệm vụ của phương pháp này là phân tích dữ liệu trong cơ sở dữ liệu nhằm phát
hiện và đưa ra những mối liên hệ giữa các giá trị dữ liệu, cụ thể là tìm tần số mẫu,
mối kết hợp, sự tương quan hay các cấu trúc nhân quả giữa các tập đối tượng trong
các cơ sở dữ liệu giao tác, cơ sở dữ liệu quan hệ và những kho thông tin khác, kết
quả thu được đó chính là các tập luật kết hợp.
Tính hiểu được: dễ hiểu

Tính sử dụng đươc: cung cấp thông tin thiết thực
Tính hiệu quả: đã có những thuật toán khai thác hiệu quả
Phương pháp này được sử dụng đầu tiên cho phân tích giỏ hàng siêu thị để
tìm những mặt hàng nào được mua cùng nhau bởi các khách hàng và mối liên hệ
giữa chúng.
Một số hướng tiếp cận trong khai thác luật kết hợp: lĩnh vực khai thác luật
kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau.
Một số hướng chính rất được quan tâm như:
- Luật kết hợp nhị phân (binary association rule): là hướng nghiên cứu đầu
tiên của luật kết hợp. Theo dạng luật kết hợp này thì các items chỉ được quan tâm
có hay không xuất hiện trong cơ sở dữ liệu giao dịch, chứ không quan tâm về mức
độ hay tần suất xuất hiện. Thuật toán tiêu biểu nhất cho khai phá theo dạng luật
này là thuật toán Apriori.
- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative &
categorial association rule): các cơ sở dữ liệu thực tế thường có các thuộc tính đa
dạng như nhị phân, số,… chứ không nhất quán ở một dạng nào cả. Vì vậy, để khai
thác luật kết hợp với các cơ sở dữ liệu này, các nhà nghiên cứu đề xuất một số
11
phương pháp rời rạc hoá nhằm chuyển dạng luật này về dạng nhị phân để có thể áp
dụng các thuật toán đã có.
- Luật kết hợp tiếp cận theo hướng tập thô (mining association rules base on
rough set): tìm kiếm luật kết hợp dựa trên lý thuyết tập thô.
- Luật kết hợp nhiều mức (multi – level association rules): cách tiếp cận luật
kết hợp này sẽ tìm kiếm thêm những luật có dạng: mua máy tính ⇒ mua hệ điều
hành Window & mua phần mềm diệt vi rút.
- Luật kết hợp mờ (fuzzy association rules): với những khó khăn gặp phải
khi rời rạc hoá các thuộc tính số, các nhà nghiên cứu đề xuất luật kết hợp mờ khắc
phục hạn chế đó và chuyển luật kết hợp về một dạng gần gũi hơn.
- Luật kết hợp với thuộc tính được đánh trọng số (associaton rule with
weighted items): các thuộc tính trong cơ sở dữ liệu thường không có vai trò như

nhau. Có một số thuộc tính quan trọng và được chú trọng hơn các thuộc tính khác.
Vì vậy, trong quá trình tìm kiếm luật các thuộc tính được đánh trọng số theo mức
độ xác định nào đó. Nhờ vậy, ta thu được những luật “hiếm” (những luật có độ hỗ
trợ thấp nhưng mang nhiều ý nghĩa).
- Khai thác luật kết hợp song song (parallel mining of association rule): Nhu
cầu song song hoá và xử lý phân tán là cần thiết vì kích thước dữ liệu ngày càng
lớn nên đòi hỏi tốc độ xử lý phải được đảm bảo.
3.1.1 Một số khái niệm liên quan
Gọi I= {i
1
, i
2
,…,i
m
} là tập hợp các item.
Transaction (Giao dịch) t: t là tập hợp các items và t ⊆ I
Transaction Database (cơ sở dữ liệu giao dịch) T: tập hợp các giao dịch T =
{t
1
, t
2
,…, t
n
}
Ví dụ: các giao dịch giỏ hàng siêu thị:
t
1
: {bread, cheese, milk}
t
2

: {apple, eggs, salt, yogurt}

t
n
: {biscuit, eggs, milk}
12
Định nghĩa 3.1: Một luật kết hợp là một quan hệ có dạng X ⇒ Y, trong đó
X, Y ⊆ I là các tập item gọi là itemsets và X ∩ Y = ∅. Ở đây X (vế trái luật) được
gọi là tiền đề, Y (vế phải luật) là mệnh đề kết quả.
Hai thông số quan trọng của luật kết hợp là độ hỗ trợ (s) và độ tin cậy (c).
Định nghĩa 3.2: Độ hỗ trợ (support) của luật kết hợp X ⇒ Y là tỷ lệ % các
giao dịch có chứa X, Y với tổng số giao dịch có trong cơ sở dữ liệu.
Độ hỗ trợ (tần số) thể hiện trong bao nhiêu phần trăm dữ liệu thì những điều
ở vế trái và vế phải cùng xảy ra.
Độ hỗ trợ tối thiểu (minsup):
- Cao: ít tập phần tử (itemset) phổ biến
ít luật hợp lệ thường xuất hiện
- Thấp: nhiều luật hợp lệ hiếm xuất hiện
Định nghĩa 3.3: Độ tin cậy (confidence) của luật X ⇒ Y là tỷ lệ % của số
giao dịch có chứa X, Y với số giao dịch có chứa X.
Độ tin cậy (độ mạnh) thể hiện nếu vế trái xảy ra thì có bao nhiêu khả năng
vế phải xảy ra.
Độ tin cậy thối thiểu (mincof):
- Cao: ít luật nhưng tất cả “gần như đúng”
- Thấp: nhiều luật, phần lớn rất “không chắc chắn”.
Giá trị tiêu biểu: minsup = 2% – 10%, mincof = 70% – 90%
Việc tìm các luật từ cơ sở dữ liệu chính là việc tìm tất cả các luật có độ hỗ
trợ và độ tin cậy lớn hơn ngưỡng của độ hỗ trợ và độ tin cậy do người sử dụng xác
định trước. Các ngưỡng của độ hỗ trợ và độ tin cậy được ký hiệu là minsup và
mincof.

 một itemset là một tập hợp các item
Ví dụ: X = {milk, bread, cereal} là một itemset
 Một k-itemset là tập có k items
 Tập item phổ biến (hay tập item lớn) là tập hợp các item có độ hỗ trợ lớn
hơn hay bằng minsup.
13
 Tập item dự kiến (hay tập ứng cử viên) là tập hợp các item cần được xem
xét có phải là tập item phổ biến không.
Ví dụ: Phân tích giỏ hàng
Giỏ hàng này có 5 giao dịch (cột TID), mỗi giao dịch có các mặt hàng (cột
Items). Giả sử ta có luật sau:
{Milk, Diaper} ⇒ {Beer}
TID Items
1 Bread, Milk
2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
5 Bread, Milk, Diaper, Coke
Bảng 3.1: Nội dung giỏ hàng
Trong đó {Milk, Diaper} là vế trái của luật còn được gọi là tiền đề
(antecedent), {Beer} là vế phải của luật còn được gọi là kết luận (consequent).
Gọi độ hỗ trợ của luật là s, độ tin cậy của luật là c; ta có:
( )
Milk,Diaper,Beer
2
s = = = 0.4
|T | 5

( )
( )

Milk,Diaper,Beer
2
c = = = 0.67
3
Milk,Diaper


với:
 |T|: tổng số giao dịch

( )
, ,Milk Diaper Beer∂
: số giao dịch có chứa cả tiền đề và kết luận, tức có
chứa đồng thời (Milk, Diaper, Beer)

( )
,Milk Diaper∂
: số giao dịch có chứa phần tiền đề (Milk, Diaper)
3.1.2 Ứng dụng của luật kết hợp
14
Luật kết hợp là một dạng luật khá đơn giản nhưng mang lại rất nhiều ý
nghĩa, tri thức đem lại bởi luật kết hợp có một sự khác biệt cơ bản so với thông tin
thu được từ các câu lệnh truy vấn thông thường. Đó thường là những tri thức,
những mối liên hệ chưa được biết trước và mang tính dự báo đang tiềm ẩn trong dữ
liệu. Những tri thức này không đơn giản chỉ là kết quả của các phép nhóm, tính
tổng hay sắp xếp mà là kết quả của một quá trình tính toán phức tạp và tốn nhiều
thời gian.
Thông tin mà luật kết hợp đem lại là rất đáng kể và hỗ trợ không nhỏ trong
quá trình ra quyết định. Tìm kiếm được những luật kết hợp “quý hiếm” và mang
nhiều thông tin từ CSDL tác nghiệp là một trong những hướng tiếp cận chính của

lĩnh vực khai phá dữ liệu.
Luật kết hợp được ứng dụng trong nhiều lĩnh vực: Phân tích bán hàng trong
siêu thị, cross-marketing, thiết kế catalog, loss-leader analysis, gom cụm, phân lớp,

3.2 Thuật toán chung cho luật kết hợp
 Trong lần duyệt đầu tiên, độ hỗ trợ của mỗi tập riêng biệt được tính toán và
mỗi tập phổ biến được xác định.
 Trong mỗi lần duyệt sau đó, các tập item phổ biến được xác định trong lần
duyệt trước được sử dụng để tạo ra các tập mới được gọi là các tập ứng cử
viên.
 Độ hỗ trợ của mỗi tập ứng cử viên được tính toán và các tập phổ biến được
xác định
 Tiến trình này cứ tiếp tục cho đến khi không có tập phổ biến mới nào được
tìm thấy.
3.3 Một số thuật toán tìm luật kết hợp
15
3.3.1 Thuật toán AIS
Các tập ứng cử viên được tạo ra và được tính toán nhanh khi cơ sở dữ liệu
được duyệt qua.
 Với mỗi giao dịch, nó được xác định khi các tập item phổ biến của lần duyệt
trước được kết hợp trong giao dịch này
 Các tập ứng cử viên mới được tạo ra qua mở rộng những tập phổ biến này
với các item khác trong giao dịch này.
Hạn chế: Tạo ra các tập ứng cử viên nhưng không tỉa, vì vậy nó kiểm tra rất
nhiều các ứng cử viên.
Ví dụ: minsup = 2
Hình 3.1 Ví dụ về thuật toán AIS
Giả mã:
16
1) L

1
= {large 1-itemsets};
2) for (k = 2; L
k-1
≠ ∅; k++) do begin
3)
k
C
= ∅;
4) forall transactions t ∈ D do begin
5)
t
L
= subset (
tL
k
,
1−
) ; // large itemsets contained in
t
6) forall large itemsets
tt
Ll ∈
do begin
7)
t
C
= 1-extensions of
t
l

contained in t; // candidates in
t
8) forall candidates
t
Cc ∈
do
9) if (
k
Cc∈
) then
add 1 to the count of
c
in the corresponding entry in
k
C
else
add
c
to
k
C
with a count of 1
10) end
11)
k
L
= {
k
Cc∈
|

c
.count ≥ minsup};
12) end
13) Answer =

k
k
L
;
3.3.2 Thuật toán SETM
Kiểu SQL, các tập ứng cử viên được tạo ra sử dụng các phép kết hợp và
cũng có chứa các TID. Thuật toán này được đề cập qua việc mong muốn sử dụng
SQL để tính toán các tập item lớn. Giống như AIS, thuật toán SETM cũng tạo ra
các ứng cử viên dựa trên các giao dịch đọc từ CSDL. Theo đó, nó tạo ra và tính
toán mọi tập ứng cử viên mà thuật toán AIS tạo ra. Tuy nhiên, để sử dụng phép
toán kết hợp chuẩn SQL cho việc tạo ứng cử viên, SETM tách riêng việc tạo ứng
cử viên từ việc tính toán. Nó ghi một bản copy của tập ứng cử viên cùng với TID
của các giao dịch tạo ra trong một cấu trúc tuần tự. Kết thúc của lần duyệt, tính
toán độ hỗ trợ của tập ứng cử viên được xác định qua việc sắp xếp và kết hợp
những cấu trúc tuần tự này.
17
SETM nhớ cácTID của các giao dịch cùng với tập ứng cử viên. Để tránh cần
một phép toán tập con, nó sử dụng thông tin này để xác định tập item lớn được
chứa trong giao dịch được đọc.
kk
CL ⊆
và được kết hợp qua việc xoá các ứng cử
viên không thoả mãn độ hỗ trợ nhỏ nhất. Giả sử rằng CSDL được lưu trữ trong
TID theo thứ tự, SETM có thể tìm thấy một cách dễ dàng các tập lớn được chứa
trong một giao dịch trong lần duyệt tiếp theo qua việc sắp xếp

k
L
trên TID. Thực
tế, nó cần tới thăm mọi thành phần của
k
L
của một lần trong thứ tự TID và việc tạo
ra ứng cử viên được thực hiện sử dụng phép toán trộn kết hợp quan hệ. Nhược
điểm của cách tiếp cận này chủ yếu là kích thước của tập ứng cử viên
k
C
. Với mỗi
tập ứng cử viên, tập ứng cử viên hiện thời có rất nhiều mục giống với số các giao
dịch trong đó tập ứng cử viên được thể hiện. Ngoài ra, khi chúng ta đã sẵn sàng để
tính độ hỗ trợ cho tập ứng cử viên tại cuối của lần duyệt,
k
C
có thứ tự sai và cần
được sắp xếp lại trên tập items. Sau khi tính toán và tỉa những tập ứng cử viên nhỏ
không thoả mãn độ hỗ trợ nhỏ nhất, tập kết quả
k
L
cần sắp xếp theo cách khác trên
TID trước khi nó được sử dụng cho việc tạo các ứng cử viên trong lần duyệt tiếp
theo.
Ví dụ:
Hình 3.2 Ví dụ về thuật toán SETM
Giả mã:
18
1)

1
L
= {large 1-itemsets};
2)
1
L
= {Large 1 – itemsets together with the TIDs in which they appear, sorted on
TID};
3) for (k = 2;
1−k
L
≠ ∅; k++) do begin
4)
k
C
= ∅;
5) forall transactions
t
∈ D do begin
6)
t
L
= {
TIDtTIDlLl
k
|
1
=∈

}; // large (k-1) – itemsets contained in

t
7) forall large itemsets
tt
Ll ∈
do begin
8)
t
C
= 1-extensions of
t
l
contained in t; // candidates in
t
9)
k
C
+= {<
t
.TID,
c
|
t
Cc∈
>};
10) end
11) end
12) sort
k
C
on itemsets;

13) delete all itemsets
k
Cc∈
for which
c
.count < minsup giving
k
L
;
14)
=
k
L
{<
l
.itemset, count of
l
in
k
L
|
k
Ll ∈
>};// combined with step 13
15) sort
k
L
on TID;
16) end
17) Answer =


k
k
L
;
3.3.3 Thuật toán Apriori
a. Ý tưởng
Dùng các tập phổ biến kích thước (k - 1) để tạo các tập phổ biến kích thước
k ( hay nói cách khác: tạo ra các tập phổ biến có 1 item, tập 2 items tạo từ tập 1
item,…, tập k items từ tập k-1 items). Sau đó xây dựng luật từ tập phổ biến k items
tìm được.
b. Đặc điểm
 Mỗi tập item được tạo ra phải được tính toán độ hỗ trợ và độ tin cậy.
19
 Các tập ứng cử viên được tạo ra chỉ sử dụng các tập phổ biến của lần duyệt
trước đó mà không cần xem xét các giao dịch trong CSDL.
 Tập item phổ biến của lần duyệt trước được kết hợp với bản thân nó
để tạo ra các tập item có kích thước lớn hơn 1.
 Mỗi tập item được tạo ra mà có một tập con không phải là phổ biến
thì xoá bỏ. Các tập item còn lại là các tập ứng cử viên.
 Các tập item phổ biến có 1 tính chất rất quan trọng là: mọi tập item phổ biến
thì tất cả các tập item con của nó đều là phổ biến.
 Nhờ tính chất này, nếu ta gặp một tập không phổ biến thì tất cả những tập
nào chứa tập này đều không phổ biến và ta có thể loại bỏ chúng, không cần
xét đến.
Ví dụ:
Hình 3.3 Ví dụ minh hoạ tính chất”mọi tập item phổ biến thì các
tập con của nó đều là phổ biến”
20
null

AB AC AD AE BC BD BE CD CE DE
A B C D E
ABC ABD ABE AC D ACE ADE BCD BCE BDE CDE
ABC D ABCE ABDE ACDE BCDE
ABCDE
thấy tập
không phổ
biến
Không
phải làm
Ở ví dụ trên đây khi ta phát hiện được “AB” là tập không phổ biến, khi đó
tất cả các tập chứa AB (ABC, ABD, ABE, ABCD, ABCE, ABDE, ABCDE) ta đều
không cần xét.
c. Quy trình thuật toán
Qua 2 bước:
Bước 1: Tìm tập item phổ biến
Tìm tất cả các tập item dự kiến sau đó thực hiện tính toán độ hỗ trợ cho từng
tập dự kiến đó. Loại bỏ những tập item dự kiến có độ hỗ trợ nhỏ hơn minsup (độ
hỗ trợ tối thiểu được cho bởi người dùng). Cứ làm như vậy, cuối cùng ta có được
tập item phổ biến lớn nhất.
Bước 2: Tạo luật kết hợp
Từ các tập con của tập phổ biến lớn nhất ta xây dựng luật và tính độ tin cậy
của luật. Loại bỏ những luật có độ tin cậy nhỏ hơn minconf (độ tin cậy tối thiểu
được cho bởi người dùng). Cuối cùng ta có được những luật có độ hỗ trợ và độ tin
cậy thoả mãn điều kiện cho trước.
Cụ thể:
b.1 Xác định các tập item phổ biến.
 Xác định các tập ứng cử viên (C
k
)

 Xác định các tập phổ biến (F
k
) dựa vào các tập ứng cử viên
Xác định C
k
:
- Tìm các tập ứng cử viên 1 item
- Quét cơ sở dữ liệu để xác định độ hỗ trợ của các tập ứng cử viên. Tại vòng
thứ k ( k >1), các tập ứng cử viên được xác định dựa vào các tập phổ biến đã xác
định tại vòng (k-1) sử dụng hàm Apriori_gen().
Nội dung hàm Apriori_gen()
+ F
k-1
được kết nối với chính nó thu được C
k
+ Hàm Apriori_gen() xoá tất cả các tập item từ kết quả kết nối mà có 1 số
tập con (k-1) không có trong F
k-1
. Sau đó nó trả về tập item phổ biến kích thước k
còn lại.
21
Ví dụ (về cách thức hoạt động của hàm Apriori_gen()):
Giả sử sau khi thực hiện ta thu được các tập phổ biến 3 item như sau, bước
tiếp theo ta tìm các tập phổ biến 4 item.
F
3
= {{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {1, 3, 5}, {2, 3, 4}}
Giải: Trước hết ta tìm C
4
, thực hiện kết nối các F

3
với nhau ta thu được C
4
, kết quả
sau khi kết nối ta được:
C
4
= {{1, 2, 3, 4}, {1, 3, 4, 5}}
Tiến hành tỉa C
4
, kết quả sau khi tỉa:
C
4
= {{1, 2, 3, 4}}
bởi vì {1, 4, 5} là tập con của {1, 3, 4, 5} và {1, 4, 5} không có trong F
3
do
đó {1, 3, 4, 5} bị loại bỏ
Xác định F
k
:
Sau khi xác định được các tập ứng cử viên C
k
, thuật toán quét từng giao dịch
trong cơ sở dữ liệu để xác định độ hỗ trợ của các tập ứng cử viên để tìm F
k
. Những
tập ứng cử viên nào có độ hỗ trợ nhỏ hơn minsup sẽ bị loại bỏ, những tập ứng cử
viên có độ hỗ trợ lớn hơn hoặc bằng minsup được giữ lại (những tập item đó gọi là
các tập item phổ biến). Quá trình xác định các tập item phổ biến sẽ kết thúc khi

không xác định được thêm tập item phổ biến nào nữa.
Ví dụ: Tìm tập item phổ biến
Xét cơ sở dữ liệu giao dịch D có 5 giao dịch (ở cột TID, đó là 10, 20, 30,
40), mỗi giao dịch có các items tương ứng, độ hỗ trợ tối thiểu cho phép là Min_sup
= 2. Đầu tiên ta tìm các tập ứng cử viên 1 item: ta thực hiện quét CSDL D, tìm
được các tập 1 item, tính toán độ hỗ trợ của chúng, sau đó so sánh với độ hỗ trợ tối
thiểu cho phép, giữ lại những tập 1 item có độ hỗ trợ lớn hơn Min_sup, loại bỏ
những tập item có độ hỗ trợ nhỏ hơn Min_sup, ta thu được tập phổ biến 1 items.
Từ tập phổ biến 1 items ta tìm tập phổ biến 2 items: nối các item của tập phổ biến
1 item với nhau để được tập ứng cử viên 2 items, tính toán độ hỗ trợ cho chúng,
loại bỏ những tập item có độ hỗ trợ nhỏ hơn Min_sup ta được tập phổ biến 2 items.
Tiếp tục, ta tìm tập phổ biến 3 items từ tập phổ biến 2 item: nối tập phổ biến 2
22
items với nhau, sử dụng hàm Apriori_gen() ta được tập ứng cử viên 3 items, tính
toán độ hỗ trợ cho chúng, loại bỏ những tập items có độ hỗ trợ nhỏ hơn Min_sup,
cuối cùng ta thu được tập phổ biến lớn nhất 3 items.
Chú ý: từ lần tìm tập ứng cử viên thứ 3 trở đi, ta phải áp dụng hàm Apriori_gen()
Hình 3.4 Ví dụ tìm tập phổ biến với thuật toán Apriori
b.2 Sinh các luật kết hợp từ các items phổ biến.
 Tìm các tập con không rỗng h của tập item phổ biến f ∈ F
 Với mỗi tập con h tìm được, ta xuất ra dạng luật h ⇒ (f-h) nếu tỷ lệ
sup ( )
min
sup ( )
port f
cof
port h

Ví dụ sinh luật kết hợp: Giả sử {2, 3, 4} là tập phổ biến, độ hỗ trợ 50%
- Các tập con không rỗng của {2, 3, 4} là: {2, 3}; {2, 4}; {3, 4}; {2}; {3};

{4}, độ hỗ trợ tương ứng là 50%, 50%, 75%, 75%, 75%, 75%.
- Các luật kết hợp được sinh ra là:
2, 3 ⇒ 4 độ tin cậy (confidence): 100%
2, 4 ⇒ 3 độ tin cậy : 100%
3, 4 ⇒ 2 độ tin cậy : 67%
2 ⇒ 3, 4 độ tin cậy : 67%
3 ⇒ 2, 4 độ tin cậy : 67%
4 ⇒ 2, 3 độ tin cậy : 67%
- Tất cả các luật đều có độ hỗ trợ là 50%.
23
Giả mã thuật toán Apriori:
I: tập item
T: tập giao dịch
s
min
: độ hỗ trợ tối thiểu
c
min
: độ tin cậy tối thiểu
C
k
: tập ứng cử viên k item
F
k
: tập phổ biến k item
R: tập luật
function apriori (I, T, s
min
, c
min

, k
max
) (*thuật toán cho luật kết hợp*)
begin
k := 1; (*tìm tập phổ biến*)
C
k
:=

i

I
{i} ;
F
k
= prune (C
k
, T, s
min
) ;
While F
k
≠ ∅ and k ≤ k
max
do
begin
C
k+1
:= candidates (F
k

) ;
F
k+1
:= prune (C
k+1
, T, s
min
);
k := k+1;
end
R := ∅ ; (*tạo luật kết hợp*)
forall f ∈
j
k
j
F
2=

do
begin
m := 1;
H
m
=

i

f
{i} ;
repeat

forall h ∈ H
m
do
If
min
)(
)(
c
hs
fs

Then R := R

{[h ⇒ (f-h)]} ;
24
Else H
m
:= H
m
– {h} ;
H
m+1
:= candidates (H
m
) ;
m := m+1 ;
until H
m
= ∅ or m ≥ |f| ;
end

rerturn R;
end (* apriori*)
*************************
function candidates (F
k
) (*tạo tập ứng cử viên*)
begin
C := ∅ ;
forall f
1
, f
2
∈ F
k

with f
1
= {i
1
, i
2
, …, i
k-1
, i
k
} ;
and f
2
= {i
1

, i
2
,…, i
k-1
, i’
k
} ;
and i
k
< i’
k
do begin
F := f
1
∪ f
2
= {i
1,…,
i
k-1
, i
k
, i’
k
} ;
if ∀ i ∈ f : f – {i} ∈ F
k

then C := C ∪ {f} ;
end

return C;
end (* candidates *)
**************************
function prune(C, T, s
min
); (*tỉa các tập ứng cử viên không phổ biến*)
begin
forall c∈C do
s(c) :=0 ;
forall t∈ T do
forall c∈C do
25

×