Tải bản đầy đủ (.pdf) (35 trang)

luận văn thạc sĩ Phương pháp luận kết hợp và ứng dụng

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 (836.65 KB, 35 trang )

ĐẠI HỌC THÁI NGUYÊN

ĐẠI HỌC THÁI NGUYÊN

KHOA CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ THÔNG TIN

LÊ THU HÀ

LÊ THU HÀ

PHƯƠNG PHÁP LUẬN KẾT HỢP
VÀ ỨNG DỤNG
PHƯƠNG PHÁP LUẬN KẾT HỢP
VÀ ỨNG DỤNG
Chuyên ngành: : Khoa học máy tính
Mã số:

60 48 01

Luận văn Thạc sỹ Khoa học máy tính
Luận văn thạc sỹ : Khoa học máy tính

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS VŨ ĐỨC THI

Thái Nguyên - 2009
Thái Nguyên - 2009

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên








MỤC LỤC
LỜI CẢM ƠN...................................................................................................i
DANH MỤC CÁC HÌNH...............................................................................ii
MỞ ĐẦU ....................................................................................................... 3
Chƣơng 1 TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ
DỮ LIỆU....................................................................................................... 6
1.1. Phát hiện tri thức và khai phá dữ liệu ................................................... 6
1.2. Quá trình phát hiện tri thức từ cơ sở dữ liệu ......................................... 7
1.2.1. Xác định vấn đề ............................................................................ 8
1.2.2.Thu thập và tiền xử lý dữ liệu ........................................................ 9
1.2.3. Khai thác dữ liệu ......................................................................... 11
1.2.4. Minh họa và đánh giá.................................................................. 11
1.2.5. Đưa kết quả vào thực tế .............................................................. 11
1.3. Khai phá dữ liệu ................................................................................ 12
1.3.1. Các quan niệm về khai phá dữ liệu ............................................. 12
1.3.2. Nhiệm vụ của khai phá dữ liệu.................................................... 13
1.3.3. Triển khai việc khai phá dữ liệu .................................................. 15
1.3.4. Một số ứng dụng khai phá dữ liệu ............................................... 15
1.3.5. Các kỹ thuật khai phá dữ liệu ...................................................... 17
1.3.6. Kiến trúc của hệ thống khai phá dữ liệu ...................................... 19
1.3.7. Quá trình khai phá dữ liệu........................................................... 21
1.3.8. Những khó khăn trong khai phá dữ liệu ...................................... 22
Chƣơng 2 LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU ................ 25
2.1. Bài toán kinh điển dẫn đến việc khai phá luật kết hợp ....................... 25

2.2. Định nghĩa về luật kết hợp ................................................................. 26
2.3. Một số hướng tiếp cận trong khai phá luật kết hợp ............................ 32
Chƣơng 3 MỘT SỐ THUẬT TOÁN PHÁT HIỆN LUẬT KẾT HỢP .... 35
3.1. Thuật toán AIS .................................................................................. 35
3.2. Thuật toán SETM .............................................................................. 36
3.3. Thuật toán Apriori ............................................................................. 37
3.4. Thuật toán Apriori-TID ..................................................................... 44
3.5.Thuật toán Apriori-Hybrid .................................................................. 46
3.6. Thuật toán FP_growth ....................................................................... 47
3.7. Thuật toán PARTITION [Savasere 95] .............................................. 55
Chƣơng 4 KHAI THÁC LUẬT KẾT HỢP TRONG BÀI TOÁN QUẢN
LÝ THIẾT BỊ TRƢỜNG THPT CHU VĂN AN- THÁI NGUYÊN ....... 58
4.1. Phát biểu bài toán .............................................................................. 58
4.2. Cơ sở dữ liệu của bài toán ................................................................. 59
4.3. Rời rạc các thuộc tính gốc để tạo thành các thuộc tính nhị phân ........ 60
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



4.4. Cơ sở dữ liệu dạng nhị phân .............................................................. 62
4.5. Kết quả khai thác luật kết hợp bằng thuật toán Apriori ...................... 62
4.6. Kết quả khai thác cơ sở dữ liệu quản lý thiết bị Trường THPT Chu Văn
An – Thái Nguyên .................................................................................... 63
KẾT LUẬN ................................................................................................. 64
TÀI LIỆU THAM KHẢO.......................................................................... 66

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên2





MỞ ĐẦU

-

Trong những năm gần đây, sự phát triển mạnh mẽ của công nghệ thông

Dựa trên lý thuyết đã tổng kết được, đi sâu vào tìm hiểu, nghiên cứu
phương pháp luật kết hợp và làm một chương trình thử nghiệm dựa

tin đã làm cho khả năng thu thập và lưu trữ thông tin của các hệ thống thông

trên thuật toán Apriori.

tin tăng nhanh một cách nhanh chóng. Bên cạnh đó, việc tin học hóa một cách

Ý nghĩa khoa học của đề tài:

ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh

-

Đây là phương pháp được nhiều nhà khoa học nghiên cứu và đã có

-

Có thể coi đề tài là một tài liệu tham khảo khá đầy đủ, rõ ràng về các

vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu cần lưu trữ
khổng lồ. Hàng triệu cơ sở dữ liệu đã được sử dụng trong các hoạt động sản

xuất, kinh doanh, quản lý..., trong đó có nhiều cơ sở dữ liệu cực lớn cỡ
Gigabyte, thậm chí là Terabyte.

đóng góp trong thực tiễn.
kiến thức cơ bản trong phương pháp phát hiện luật kết hợp.
Phương pháp nghiên cứu:

Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kỹ
thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành
các tri thức có ích. Từ đó, các kỹ thuật khai phá dữ liệu đã trở thành một lĩnh
vực thời sự của nền CNTT thế giới hiện nay nói chung và Việt Nam nói riêng.
Khai phá dữ liệu đang được áp dụng một cách rộng rãi trong nhiều lĩnh
vực kinh doanh và đời sống khác nhau: marketing, tài chính, ngân hàng và
bảo hiểm, khoa học, y tế, an ninh, internet… Rất nhiều tổ chức và công ty lớn
trên thế giới đã áp dụng kỹ thuật khai phá dữ liệu vào các hoạt động sản xuất
kinh doanh của mình và thu được những lợi ích to lớn.

- Lập kế hoạch, lên qui trình, tiến độ thực hiện.
- Tham khảo nhiều tài liệu có liên quan, tham khảo ý kiến các chuyên
gia trong lĩnh vực nghiên cứu.
Phạm vi nghiên cứu:
Các kiến thức cơ bản nhất về phương pháp phát hiện luật kết hợp
trên cơ sở làm luận văn thạc sỹ.
Các kết quả nghiên cứu đạt được:
- Tổng kết các kiến thức cơ bản nhất của phương pháp khai phá luật
kết hợp.

Mục đích nghiên cứu của đề tài là tìm hiểu về các kỹ thuật khai phá dữ

- Luận văn có thể trở thành một tài liệu tham khảo cho những người


liệu; các vấn đề liên quan đến khai phá luật kết hợp nhằm phát hiện và đưa ra

muốn tìm hiểu về khai phá dữ liệu và phương pháp khai phá luật kết

các mối liên hệ giữa các giá trị dữ liệu trong CSDL và áp dụng chúng vào bài

hợp.

toán quản lý trang thiết bị đồ dùng của trường THPT Chu Văn An – Tỉnh

- Xây dựng một phần mềm thử nghiệm dựa trên thuật toán Apriori.

Thái Nguyên.

Luận văn bao gồm 4 chương, với các nội dung:

Mục tiêu nghiên cứu của đề tài:
-

Chương 1: Trình bày tổng quan về khám phá tri thức và khai phá dữ liệu,

Tổng kết các kiến thức cơ bản nhất liên quan đến phát hiện luật kết

trong đó có đề cập đến khái niệm tri thức, dữ liệu, quá trình khám phá tri

hợp và tìm kiếm tri thức từ dữ liệu.

thức, nhiệm vụ và các kỹ thuật khám phá tri thức.


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên3



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên4




Chương 2: Trình bày về luật kết hợp, trong đó trình bày về các khái niệm,
định nghĩa, tính chất của luật kết hợp.
Chương 3: Trình bày một số kỹ thuật khai thác luật kết hợp.
Chương 4: Cài đặt chương trình tìm luật kết hợp, ứng dụng trong quản lý
trang thiết bị, đồ dùng của trường THPT Chu Văn An – Tỉnh Thái Nguyên.
Luận văn này đã được hoàn thành trong khoảng thời gian không dài.
Tuy nhiên, đã đạt được một số kết quả tốt, tôi đang nghiên cứu để hoàn thiện
và đưa chương trình trong luận văn vào ứng dụng thực tiễn quản lý trang thiết
bị của trường THPT Chu Văn An – Tỉnh Thái Nguyên, rất mong nhận được
sự góp ý của các thầy cô, đồng nghiệp và bạn bè để luận văn và chương trình
được hoàn thiện hơn.

Chƣơng 1
TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU
1.1. Phát hiện tri thức và khai phá dữ liệu
Trong thời đại bùng nổ công nghệ thông tin, các công nghệ lưu trữ dữ
liệu ngày càng phát triển tạo điều kiện cho các đơn vị thu thập dữ liệu tốt hơn.
Đặc biệt trong lĩnh vực kinh doanh, các doanh nghiệp đã nhận thức được tầm
quan trọng của việc nắm bắt và xử lý thông tin, nhằm giúp các chủ doanh
nghiệp trong việc vạch ra các chiến lược kinh doanh kịp thời mang lại những
lợi nhuận to lớn cho doanh nghiệp của mình. Tất cả lí do đó khiến cho các cơ

quan, đơn vị và các doanh nghiệp đã tạo ra một lượng dữ liệu khổng lồ cỡ
Gigabyte thậm chí là Terabyte cho riêng mình.
Khi lưu trữ các dữ liệu khổng lồ như vậy thì chúng ta thấy rằng chắc
chắn chúng phải chứa những giá trị nhất định nào đó. Tuy nhiên, theo thống
kê thì chỉ có một lượng nhỏ của những dữ liệu này (khoảng từ 5% đến 10%)
là luôn được phân tích, số còn lại họ không biết sẽ phải làm gì hoặc có thể
làm gì với chúng nhưng họ vẫn tiếp tục thu thập rất tốn kém với ý nghĩ lo sợ
rằng sẽ có cái gì đó quan trọng đã bị bỏ qua sau này có lúc cần đến nó. Mặt
khác, trong môi trường cạnh tranh, người ta ngày càng cần có nhiều thông tin
với tốc độ nhanh để trợ giúp việc ra quyết định và ngày càng có nhiều câu hỏi
mang tính chất định tính cần phải trả lời dựa trên một khối lượng dữ liệu
khổng lồ đã có. Với những lý do như vậy, 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à Kỹ thuật phát hiện tri thức và
khai phá dữ liệu (KDD - Knowledge Discovery and Data Mining).
Thông thường chúng ta coi dữ liệu như một dãy các bit, hoặc các số và
các ký hiệu, hoặc các “đối tượng” với một ý nghĩa nào đó khi được gửi cho
một chương trình dưới một dạng nhất định. Chúng ta sử dụng các bit để đo

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên5



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên6




lường các thông tin và xem nó như là các dữ liệu đã được lọc bỏ các dư thừa,
được rút gọn tới mức tối thiểu để đặc trưng một cách cơ bản cho dữ liệu.

Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các sự
kiện và các mối quan hệ giữa chúng. Các mối quan hệ này có thể được hiểu
ra, có thể được phát hiện, hoặc có thể được học. Nói cách khác, tri thức có thể
được coi là dữ liệu có độ trừu tượng và tổ chức cao.

- Khai phá dữ liệu (Data mining): Các kỹ thuật được áp dụng để trích
xuất thông tin có ích hoặc các mẫu điển hình trong dữ liệu.
- Đánh giá mẫu (Pattern evaluation): Đánh giá mẫu hoặc tri thức đã thu
được.
- Trình diễn dữ liệu (Knowledge Presentation): Biểu diễn những tri thức
khai phá được cho người sử dụng.

Phát hiện tri thức trong các cơ sở dữ liệu là một qui trình nhận biết các
5. Đưa kết quả vào
thực tiễn

mẫu hoặc các mô hình trong dữ liệu với các tính năng: hợp thức, mới, khả ích,
và có thể hiểu được. Còn khai thác dữ liệu là một bước trong qui trình phát

4. Minh họa và đánh
giá tri thức

hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số

3. Khai thác dữ liệu–trích
ra các mẫu/mô hình

qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô
hình trong dữ liệu. Nói một cách khác, mục đích của phát hiện tri thức và khai


2. Thu thập và tiền
xử lý dữ liệu

phá dữ liệu chính là tìm ra các mẫu và/hoặc các mô hình đang tồn tại trong
các cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng “núi” dữ liệu.
Nhiều người coi khai phá dữ liệu và khám phá tri thức trong cơ sở dữ
liệu là như nhau. Tuy nhiên trên thực tế, khai phá dữ liệu chỉ là một bước thiết
yếu trong quá trình phát hiện tri thức trong cơ sở dữ liệu.

1. Hiểu và xác định
vấn đề

Hình 1.1. Quá trình khám phá tri thức từ cơ sở dữ liệu
Hình 1.1 mô tả 5 giai đoạn trong quá trình khám phá tri thức từ cơ sở dữ

1.2. Quá trình phát hiện tri thức từ cơ sở dữ liệu

liệu. Mặc dù có 5 giai đoạn như trên xong quá trình khám phá tri thức từ cơ sở

Quá trình phát hiện tri thức có thể chia thành các bước như sau:

dữ liệu là một quá trình tương tác và lặp di lặp lại theo chu trình liên tục kiểu

- Làm sạch dữ liệu (Data cleaning): Loại bỏ dữ liệu nhiễu hoặc dữ liệu

- Tích hợp dữ liệu (Data integration): Tích hợp dữ liệu từ các nguồn khác

nước. Đây là một quá trình biện chứng mang tính chất khoa học của lĩnh vực
phát hiện tri thức và là phương pháp luận trong việc xây dựng các hệ thống


nhau.
- Chọn dữ liệu (Data Selection): Chọn những dữ liệu liên quan trực tiếp
đến nhiệm vụ.

phát hiện tri thức.
1.2.1. Xác định vấn đề

- Chuyển đổi dữ liệu (Data Transformation): Chuyển dữ liệu về những
dạng phù hợp cho viẹc khai phá.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên7

xoáy trôn ốc, trong đó lần lặp sau hoàn chỉnh hơn lần lặp trước. Ngoài ra, giai
đoạn sau lại dựa trên kết quả thu được của giai đoạn trước theo kiểu thác

không thích hợp.

Đây là một quá trình mang tính định tính với mục đích xác định được lĩnh
vực yêu cầu phát hiện tri thức và xây dựng bài toán tổng kết. Trong thực tế,



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên8




các cơ sở dữ liệu được chuyên môn hóa và phân chia theo các lĩnh vực khác

khử các trường hợp trùng lặp dữ liệu và thống nhất các ký hiệu. Chẳng


nhau như sản phẩm, kinh doanh, tài chính, … Với mỗi tri thức phát hiện được

hạn, một khách hàng có thể có nhiều bản ghi do việc nhập sai tên hoặc

có thể có giá trị trong lĩnh vực này nhưng lại không mang nhiều ý nghĩa đối

do quá trình thay đổi một số thông tin cá nhân gây ra và tạo sự lầm

với một lĩnh vực khác. Vì vậy mà việc xác định lĩnh vực và định nghĩa bài

tưởng có nhiều khách hàng khác nhau.

toán giúp định hướng cho giai đoạn tiếp theo thu thập và tiền xử lý dữ liệu.

- Xử lý các giá trị khuyết: Tính không đầy đủ của dữ liệu có thể gây ra
hiện tượng dữ liệu chứa các giá trị khuyết. Đây là hiện tượng khá phổ

1.2.2.Thu thập và tiền xử lý dữ liệu
Các cơ sở dữ liệu thu được thường chứa rất nhiều thuộc tính nhưng lại

biến. Thông thường, người ta có thể lựa chọn các phương pháp khác

không đầy đủ, không thuần nhất, có nhiều lỗi và các giá trị đặc biệt. Vì vậy,

nhau để thực hiện việc xử lý các giá trị khuyết như: bỏ qua các bộ có

giai đoạn thu thập và tiền xử lý dữ liệu trở nên rất quan trọng trong quá trình

giá trị khuyết, điểm bổ sung bằng tay, dùng một hằng chung để điền


phát hiện tri thức từ cơ sở dữ liệu. Có thể nói rằng giai đoạn này chiếm từ

vào giá trị khuyết, dùng giá trị trung bình của mọi bản ghi cùng lớp

70% đến 80% giá thành trong toàn bộ bài toán.

hoặc dùng các giá trị mà tần suất xuất hiện lớn.

Người ta chia giai đoạn thu thập và tiền xử lý dữ liệu thành các công

- Xử lý nhiễu và các ngoại lệ: Thông thường, nhiễu dữ liệu có thể là

đoạn như: lựa chọn dữ liệu, làm sạch, làm giàu, mã hóa dữ liệu. Các công

nhiễu ngẫu nhiên hoặc các giá trị bất thường. Để làm sạch nhiễu, người

đoạn được thực hhiện theo trình tự đưa ra được một cơ sở dữ liệu thích hợp

ta có thể sử dụng phương pháp làm trơn nhiễu hoặc dùng các giải thuật

cho các giai đoạn sau. Tuy nhiên, tùy từng dữ liệu cụ thể mà quá trình trên

phát hiện ra các ngoại lệ để xử lý.

được điều chỉnh cho phù hợp vì người ta đưa ra một phương pháp cho mọi

c. Làm giàu dữ liệu: Việc thu thập dữ liệu đôi khi không đảm bảo tính
đầy đủ của dữ liệu. Một số thông tin quan trọng có thể thiếu hoặc không đầy


loại dữ liệu.
a. Chọn lọc dữ liệu: Đây là bước chọn lọc các dữ liệu có liên quan

đủ. Chẳng hạn, dữ liệu về khách hàng lấy từ một nguồn bên ngoài không có

trong các nguồn dữ liệu khác nhau. Các thông tin được chọn lọc sao cho có

hoặc không đầy đủ thông tin về thu nhập. Nếu thông tin về thu nhập là quan

chứa nhiều thông tin liên quan tới lĩnh vực cần phát hiện tri thức đã xác định

trọng trong quá trình khai thác dữ liệu để phân tích hành vi khách hàng thì rõ

trong giai đoạn xác định vấn đề.

ràng là ta không thể chấp nhận đưa các dữ liệu khuyết thiếu vào được.

b. Làm sạch dữ liệu:Dữ liệu thực tế, đặc biệt dữ liệu lấy từ nhiều nguồn

Quá trình làm giàu bao cũng bao gồm việc tích hợp và chuyển đổi dữ

khác nhau thường không đồng nhất. Do đó cần có biện pháp xử lý để đưa về

liệu. Các dữ liệu từ nhiều nguồn khác nhau được tích hợp thành một kho

một cơ sở dữ liệu thống nhất phục vụ cho khai thác. Nhiệm vụ làm sạch dữ

thống nhất. Các khuôn dạng khác nhau của dữ liệu cũng được quy đổi, tính

liệu thường bao gồm:


toán lại để đưa về một kiểu thống nhất, tiện cho quá trình phân tích. Đôi khi,

- Điều hòa dữ liệu: Công việc này nhằm giảm bớt tính không nhất quán

một số thuộc tính mới có thể được xây dựng dựa trên các thuộc tính cũ.

do dữ liệu lấy từ nhiều nguồn khác nhau. Phương pháp thông thường là

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên9



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10




d. Mã hóa: Các phương pháp dùng để chọn lọc, làm sạch, làm giàu dữ

Quá trình phát hiện tri thức có thể được tiến hành theo các bước trên.

liệu sẽ được mã hóa dưới dạng các thủ tục, chương trình hay tiện ích nhằm tự

Ngoài ra trong quá trình khai thác người ta có thể thực hiện các cải tiến, nâng

động hóa việc kết xuất, biến đổi và di chuyển dữ liệu. Các hệ thống con đó có

cấp cho phù hợp.


thể được thực thi định kỳ làm tươi dữ liệu phục vụ cho việc phân tích.

1.3. Khai phá dữ liệu

1.2.3. Khai thác dữ liệu

1.3.1. Các quan niệm về khai phá dữ liệu

Giai đoạn khai thác dữ liệu được bắt đầu sau khi dữ liệu đã được thu

Sau đây là một số quan niệm về khai phá dữ liệu:

thập và tiến hành xử lý. Trong giai đoạn này, công việc chủ yếu là xác định
được bài toán khai thác dữ liệu, tiến hành lựa chọn phương pháp khai thác

Khai phá dữ liệu là tập hợp các thuật toán nhằm chiết xuất những thông
tin có ích từ kho dữ liệu khổng lồ.

phù hợp với dữ liệu có được và tách ra các tri thức cần thiết.

Khai phá dữ liệu được định nghĩa như một quá trình phát hiện mẫu

Thông thường, các bài toán khai thác dữ liệu bao gồm: các bài toán

trong dữ liệu. Quá trình này có thể là tự động hay bán tự động, song phần

mang tính chất mô tả - đưa ra những tính chất chung nhất của các dữ liệu, các

nhiều là bán tự động. Các mẫu được phát hiện thường hữu ích theo nghĩa: các


bài toán khai thác dự báo – bao gồm cả việc thực hiện các suy diễn trên dữ

mẫu mang lại cho người sử dụng một lợi thế nào đó, thường là lợi thế về kinh

liệu. Tùy theo bài toán xác định được mà ta lựa chọn các phương pháp khai

tế.

thác dữ liệu cho phù hợp.

Khai phá dữ liệu giống như quá trình tìm ra và mô tả mẫu dữ liệu. Dữ
liệu như là một tập hợp của các vật hay sự kiện, còn đầu ra của quá trình khai

1.2.4. Minh họa và đánh giá
Các tri thức phát hiện từ cơ sở dữ liệu cần được tổng hợp dưới dạng các
báo cáo phục vụ cho các mục đích hỗ trợ quyết định khác nhau.
Do nhiều phương pháp khai thác có thể được áp dụng nên các kết quả
có mức độ tốt/xấu khác nhau. Việc đánh giá các kết quả thu được là cần thiết,

phá dữ liệu như là những dự báo của các vật hay sự kiện mới.
Khai phá dữ liệu được áp dụng trong các cơ sở dữ liệu quan hệ, giao
dịch, cơ sở dữ liệu không gian, cũng như các kho dữ liệu phi cấu trúc, mà
điển hình là World Wide Web.

giúp tạo cơ sở cho những quyết định chiến lược. Thông thường chúng được

Khám phá tri thức là quá trình nhận biết các mẫu hoặc các mô hình

tổng hợp, so sánh bằng các biểu đồ và được kiểm nghiệm, tin học hóa. Công


trong dữ liệu với các tính chất: Đúng đắn, mới, khả ích và có thể hiểu được.

việc này thường là của các chuyên gia, các nhà phân tích và quyết định.

Khai phá dữ liệu là một bước trong quá trình khám phá tri thức bao gồm các

1.2.5. Đƣa kết quả vào thực tế

thuật toán khai phá dữ liệu chuyên dùng dưới một số quy định về hiệu quả

Các kết quả của quá trình phát hiện tri thức có thể được đưa vào ứng

tính toán chấp nhận được để tìm ra các mẫu và các mô hình trong dữ liệu.

dụng trong những lĩnh vực khác nhau. Do các kết quả có thể là các dự báo

Như vậy, mục đích của khám phá tri thức và khai phá dữ liệu là tìm ra

hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết

các mẫu hoặc mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị

định nhằm tự động hóa quá trình này.

khuất bởi số lượng dữ liệu khổng lồ.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11




Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12




hợp được hiểu theo nghĩa: Biết trước các tính chât X, vậy các tính chất

1.3.2. Nhiệm vụ của khai phá dữ liệu
Các bài toán liên quan đến khai phá dữ liệu về bản chất là các bài toán

Y là những tính chất nào?

thống kê. Điểm khác biệt giữa các kỹ thuật khai phá dữ liệu và các công cụ

 Lập mô hình dự báo, bao gồm hai nhiệm vụ: Hoặc là phân nhóm dư

phục vụ tính toán thống kê mà chúng ta đã biết là ở khối lượng cần tính toán.

liệu vào một hay nhiều lớp dữ liệu đã xác định từ trước, hoặc là sử

Một khi dữ liệu đã trở nên khổng lồ thì những khâu như: thu thập dữ liệu, tiền

dụng các trường đã cho trong một cơ sở dữ liệu để dự báo sự xuất hiện

xử lý và xử lý dữ liệu đều đòi hỏi phải được tự động hóa. Tuy nhiên ở công

(hoặc không xuất hiện) của các trường hợp khác.


đoạn cuối cùng, việc phân tích kết quả sau khi đã khai phá dữ liệu vẫn luôn là
công việc của con người.

 Phân tích đối tượng ngoài cuộc: Một cơ sở dữ liệu có thể có thể chứa
các đối tượng không tuân theo mô hình dữ liệu. Các đối tượng dữ liệu

Do là một lĩnh vực đa ngành, khai phá dữ liệu thu hút các lĩnh vực khoa

như vậy gọi là các đối tượng ngoài cuộc. Hầu hết các phương pháp khai

học khác như trí tuệ nhân tạo, cơ sở dữ liệu, hiển thị dữ liệu, marketing, toán

phá dữ liệu đều coi các đối tượng ngoài cuộc là nhiễu và loại bỏ chúng.

học, vận trù học, tin sinh học, nhận dạng mẫu, tính toán thống kê …

Tuy nhiên trong một số ứng dụng, chẳng hạn như phát hiện nhiễu thì sự

Điều mà khai phá dữ liệu có thể làm rất tốt là phát hiện ra những giả

kiện hiếm khi sảy ra lại được chú ý hơn những gì thường xuyên gặp

thuyết mạnh trước khi sử dụng những công cụ tính toán thống kê. Mô hình dự

phải. Sự phân tích dữ liệu ngoài cuộc được coi như là phai phá các đối

báo sử dụng kỹ thuật phân cụm (Crustering) để chia nhóm các sự vật, sự kiện

tượng ngoài cuộc. Một số phương pháp được ứng dụng để phát hiện đối


sau đó rút ra các luật nhằm tìm ra đặc trưng cho mỗi nhóm và cuối cùng đề

tượng ngoài cuộc: Sử dụng các hình thức kiểm tra mang tính thống kê

nghị một mô hình. Ví dụ, những bạn đọc đăng ký dài hạn của một tạp chí có

trên cơ sở một phân phối dữ liệu hay một mô hình xác suất cho dữ liệu,

thể phân nhóm dựa theo nhiều tiêu chí khác nhau (lứa tuổi, giới tính, thu

dùng các độ đo khoảng cách mà theo đó các đối tượng có một khoảng

nhập…), sau đó tạp chí căn cứ vào đặc trưng riêng của từng nhóm để đề ra

cách đáng kể đến cụm bất kỳ khác được coi là đối tượng ngoài cuộc,

mức phí thu trong năm sao cho phù hợp nhất.

dùng các phương pháp dựa trên độ lệch để kiểm tra sự khác nhau trong

Chúng ta thấy, những nhiệm vụ cơ bản nhất của khai phá dữ liệu là:

những đặc trưng chính của các nhóm đối tượng.

 Phân cụm, phân loại, phân nhóm, phân lớp. Nhiệm vụ là trả lời câu hỏi:

 Phân tích sự tiến hóa: Phân tích sự tiến hóa thực hiện việc mô tả và mô

Một dữ liệu mới thu thập sẽ thuộc về nhóm nào? Quá trình này thường


hình hóa các quy luật hay khuynh hướng của những đối tượng mà ứng

được thực hiện một cách tự động.

xử của chúng thay đổi theo thời gian. Phân tích sự tiến hóa có thể bao

 Khai phá luật kết hợp. Nhiệm vụ là phát hiện ra những mối quan hệ

gồm cả đặc trưng hóa, phân biệt, tìm luật kết hợp, phân lớp hay phân

giống nhâu của các bản ghi giao dịch. Luật kết hợp X=>Y có dạng tổng

cụm dữ liệu liên quan đến thời gian, phân tích dữ liệu theo chuỗi thời

quát là: Nếu một giao dịch đã sở hữu các tính chất X thì đồng thời nó

gian, so sánh mẫu theo chu kỳ và phân tích dữ liệu dựa trên tính tương

cũng sở hữu các tính chất Y, ở một mức độ nào đó. Khai phá luật kết

tự.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14





Những năm gần đây, người ta quan niệm khai phá dữ liệu (Đôi khi còn

1.3.3. Triển khai việc khai phá dữ liệu
Nhóm các tác giả Cabena et al. đề nghị triển khai quá trình khai phá

dùng thuật ngữ khám phá dữ liệu hay phát hiện tri thức) là một quá trình phân
tích dữ liệu từ các viễn cảnh khác nhau và rút ra các thông tin bổ ích – những

dữ liệu theo 5 bước:
Bước 1: Xác định rõ mục tiêu thương mại cần khai phá.

thông tin có thể dùng để tăng lợi nhuận, cắt giảm chi phí hoặc cả hai mục

Bước 2: Chuẩn bị dữ liệu (Thu thập, tiền xử lý, chuyển đổi khuôn dạng dữ

đích. Phần mềm khai phá dữ liệu là một công cụ phân tích dùng để phân tích
dữ liệu. Nó cho phép người sử dụng phân tích dữ liệu theo nhiều góc nhìn

liệu nếu thấy cần thiết)
Bước 3: Khai phá dữ liệu (Chọn thuật toán thích hợp)

khác nhau, phân loại dữ liệu thao những quan điểm riêng biệt và tổng kết các

Bước 4: Phân tích kết quả thu được (Xem có gì thú vị không?)

mối quan hệ đã được bóc tách. Xét về khía cạnh kỹ thuật, khai phá dữ liệu là


Bước 5: Tiêu hóa các tri thức thu lượm được (Nhằm đề ra kế hoạch khai

một quá trình tìm kiếm các mối tương quan giữa các mẫu ẩn chứa trong hàng
chục trường dữ liệu của một cơ sở dữ liệu quan hệ cỡ lớn.

thác các thông tin mới)
Một tác giả khác cũng nói tới quy trình 5 bước của khai phá dữ liệu, với

Hiện nay, kỹ thuật khai phá dữ liệu đ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ư:

quan điểm gần giống như trên:
1. Chiết xuất, biến đổi và nạp dữ liệu vào hệ thống kho dữ liệu.

- Thương mại: Phân tích dữ liệu bán hàng và thi trường, phân tích đầu tư,

2. Lưu trữ và quản trị dữ liệu trong một cơ sở dữ liệu nhiều chiều

quyết định cho vay, phát hiện gian lận, …

3. Xác định mục tiêu cần khai phá (Sử dụng các công cụ phân tích về mặy

- Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân
tích kết quả thử nghiệm, …

tác nghiệp)
4. Sử dụng các phần mềm phân tích dữ liệu để khai phá dữ liệu

- Thông tin khoa học: dự báo thời tiết, CSDL sinh học: Ngân hàng gen, …


5. Thể hiện kết quả khai phá dưới khuôn dạng hữu ích hay bảng biểu,đồ thị

khoa học địa lý: dự báo động đất, …
- Trong y tế, marketing, ngân hàng, viễn thông, du lịch, internet…

1.3.4. Một số ứng dụng khai phá dữ liệu
Ở thập kỷ 90 của thế kỷ XX, người ta coi khai phá dữ liệu là quá trình

Và những gì thu được thật đáng giá. Điều đó được chứng minh bằng thực

phân tích cơ sở dữ liệu nhằm phát hiện ra các thông tin mới và giá trị, thường

tế: Chẩn đoán bệnh trong y tế dựa trên kết quả xét nghiệm đã giúp cho bảo

thể hiện dưới dạng các mối quan hệ chưa biết đến giữa các biến số. Những

hiểm y tế phát hiện ra nhiều trường hợp xét nghiệm không hợp lý, tiết kiệm

phát hiện này được sử dụng nhằm tăng thêm tính hiệu quả của doanh nghiệp

được nhiều kinh phí mỗi năm; trong dịch vụ viễn thông đã phát hiện ra những

trong khi phải cạnh tranh trên thương trường. Nhờ phân tích các dữ liệu liên

nhóm người thường xuyên gọi cho nhau bằng mobile và thu lợi hàng triệu

quan đến khách hàng, doanh nghiệp có khả năng dự báo trước một số hành vi

USD; IBM Suft-Aid đã áp dụng khai phá dữ liệu vào phân tích các lần đăng


ứng xử của khách hàng.

nhập Web vào các trang liên quan đến thị trường để phát hiện sở thích khách
hàng, từ đó đánh giá hiệu quả của việc tiếp thị qua Web và cải thiện hoạt động

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16




của các Website; trang Web mua bán qua mạng Amazon cũng tăng doanh thu

các ứng dụng về phân đoạn thị trường, phan đoạn khách hàng, nhận dạng

nhờ áp dụng khai phá dữ liệu trong việc phân tích sở thích mua bán của khách

mẫu, phan loại trang Web… Ngoài ra phân cụm dữ liệu còn có thể được sử

hàng.

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.

1.3.5. Các kỹ thuật khai phá dữ liệu


b. Phân lớp dữ liệu:

Thường được chia thành hai nhóm chính:

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

- Kỹ thuật khai phá dữ liệu mô tả: Có nhiệm vụ mô tả về các tính chất
hoặc các đặc tính chung của dữ liệu tring cơ sở dữ liệu hiện có. Các kỹ

các mẫu dữ liệu. Quá trình phân lớp dữ liệu thường gồm hai bước: Xây dựng
mô hình và sử dụng mô hình để phân lớp dữ liệu.

thuật này gồm có: Phân cụm (clustering), tóm tắt (summerization), trực

- Bước 1: Một mô hình sẽ được xây dựng dựa trên việc phân tích các

quan hóa (visualiztation), phân tích sự phát triển và độ lệch (evolution

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

and deviation analyst), phân tích luật kết hợp (association rules) …

bởi một thuộc tính gọi là thuộc tính lớp. Các lớp dữ liệu này còn được

- Kỹ thuật khai phá dữ liệu dự đoán: Có nhiệm vụ đưa ra các dự đoán

gọi là lớp dữ liệu huấn luyện (training data set). Các nhãn lớp của tập

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ó:


dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mô hình.

Phân lớp (classification), hồi quy (regession)…

- Bước 2: Sử dụng mô hình để phân lớp dữ liệu. Trước hết, chúng ta phải

Tuy nhiên, chỉ có một số phương pháp thông dụng nhất là: Phân cụm dữ

tính độ chính xác của mô hình. Nếu độ chính xác là chấp nhận được,

liệu, phân lớp dữ liệu, phương pháp hồi quy và khai phá luật kết hợp

mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu

a. Phân cụm dữ liệu:

khác trong tương lai.

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

Ví dụ về việc sử dụng phương pháp phân lớp trong khai phá dữ liệu là ứng

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

dụng phân lớp các xu hướng trong thị trường tài chính và ứng dụng 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

xác định các đối tượng đáng quan tâm trong cơ sở dữ liệu ảnh lớn.


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

c. Phương pháp hồi quy:

không có thầy. Không giống như phân lớp dữ liệu, phân cụm dữ liệu không

Phương pháp hồi quy khác với phân lớp dữ liệu ở chỗ: Hồi quy dùng để

đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện. Vì thế có thể coi

dự đoán về các giá trị liên tục còn phân lớp dữ liệu chỉ dùng để dự đoán về

phân cụm dữ liệu là một cách học bằng quan sát (learning by observation),

các giá trị rời rạc.

trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example). Trong

Hồi quy là một hàm học ánh xạ mục dữ liệu thành một biến dự đoán có

phương pháp này bạn không thể biết kết quả các cụm thu được sẽ thế nào khi

giá trị thực. Có rất nhiều ứng dụng khai phá dữ liệu với nhiệm vụ hồi quy,

bắy đầu quá trình. Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó

chẳng hạn như khả năng đánh giá tử vong của bệnh nhân khi biết các kết quả

để đánh giá các cụm thu được. Phân cụm dữ liệu được sử dụng nhiều trong


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18




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

giữa người sử dụng hoặc cơ sở tri thức, những mẫu đáng quan tâm được đưa

hàm chi tiêu quảng cáo.

cho người dùng hoặc lưu trữ như là tri thức mới trong cơ sở tri thức.

d. Khai phá luật kết hợp:
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ệ

Giao diện người dùng

giữa các giá trị dữ liệu trong cơ sở dữ liệu. Mẫu đầu ra của giải thuật khai phá
dữ liệu là luật kết hợp tìm được. Chẳng hạn, phân tích cơ sở dữ liệu bán hàng

Đánh giá mẫu


nhân được thông tin về những khách hàng mua máy tính có khuynh hướng
mua phần mềm quản lý tài chính trong cùng lần mua được miêu tả trong luật

Mô tả khai phá dữ liệu
Cơ sở tri thức

kết hợp sau: “Máy tính=>Phần mềm quản lý tài chính” (Độ hỗ trợ: 2%, độ tin
cậy: 60%)

CSDL hay kho dữ liệu phục vụ

Độ hỗ trợ và độ tin cậy là hai độ đo của sự đáng quan tâm của luật.
Chúng phản ánh sự hữu ích vá sự chắc chắn của luật đã khám phá. Độ hỗ trợ
2% có nghĩa là 2% của tất cả các vụ đang phân tích chỉ ra rằng máy tính và
phần mềm quản lý tài chính là đã được mua cùng nhau. Còn độ tin cậy 60%

Cơ sở dữ liệu

Kho dữ liệu

Hình 1.2 Kiến trúc của hệ thống khai phá dữ liệu

có nghĩa là: 60% các khách hàng mua máy tính cũng mua phần mềm. Khai
Kiến trúc của hệ thống khai phá dữ liệu (Hình 1.2) có các thành phần như sau:

phá luật kết hợp được thực hiện qua hai bước:
Bước 1: Tìm tất cả các tập mục phổ biến, một tập mục phổ biến được

kho dữ liệu … Các kỹ thuật làm sạch dữ liệu, tích hợp, lọc dữ liệu có


xác định qua tính hỗ trợ và thỏa mãn độ hỗ trợ cực tiểu
Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, các luật

thể thực hiện trên dữ liệu
- Cơ sở dữ liệu hoặc kho dữ liệu phục vụ: Là kết quả lấy dữ liệu có liên

phải thỏa mãn độ hỗ trợ cực tiểu và độ tin cậy cực tiểu.
Phương pháp này được sử dụng rất hiệu quả trong các lĩnh vực như
maketing có chủ đích, phân tích quyết định, quản lý kinh doanh, phân tích giá

quan trên cơ sở khai phá dữ liệu của người dùng.
- Cơ sở tri thức: Đó là lĩnh vực tri thức được sử dụng để hướng dẫn việc
tìm hoặc đánh giá các mẫu kết quả thu được

thị trường …

- Mô tả khai phá dữ liệu: Bao gồm tập các modul chức năng để thực hiện

1.3.6. Kiến trúc của hệ thống khai phá dữ liệu
Như đã trình bày ở trên, khai phá dữ liệu là một giai đoạn trong quá
trình phát hiện tri thức từ số lượng lớn dữ liệu lưu trữ trong các cơ sở dữ liệu,
kho dữ liệu hoặc các nơi lưu trữ khác. Bước này có thể tương tác lẫn nhau

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19

- Cơ sở dữ liệu, kho dữ liệu: Đó là một hoặc tuyển tập các cơ sở dữ liệu,




các nhiệm vụ mô tả đặc điển, kết hợp, phân lớp, phân cụm dữ liệu…
- Đánh giá mẫu: Thành phần này sử dụng các độ đo và tương tác với
modul khai phá dữ liệu để tập trung vào tìm các mẫu quan tâm.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20




- Giao diện người dùng: Đây là modul giữa người dùng và hệ thống khai

Sau đó 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. Cho phép người dùng tương tác với hệ thống trên cơ sở

phá dữ liệu để tìm được các mẫu có ý nghĩa dưới dạng biểu diễn tương ứng

những truy vấn hay tác vụ, cung cấp thông tin cho việc tìm kiếm.

(luật kết hợp, cây quyết định …)
Kết quả thu được mẫu phải có đặc điểm mới. Độ mới có thể được đối

1.3.7. Quá trình khai phá dữ liệu
Các thuật toán khai phá dữ liệu thường được mô tả như những chương

sánh tương ứng với độ thay đổi trong dữ liệu hoặc bảng tri thức. Thường thì

trình hoạt động trực tiếp trên tệp dữ liệu. Với phương pháp máy học và thống


độ đo mới của mẫu được đánh giá bằng một hàm logic hoặc hàm độ đo mới.

kê trước đây, thường thì bước đầu tiên các thuật toán nạp toàn bộ tệp dữ liệu

Ngoài ra mẫu còn có khả năng sử dụng tiềm ẩn.

vào bộ nhớ. Khi chuyển sang các ứng dung công nghiệp liên quan đến việc

Với thuật toán và nhiệm vụ khai phá dữ liệu khác nhau thì dạng mẫu

khai thác các kho dữ liệu lớn, mô hình này không thể đáp ứng bởi vì không

chiết xuất được cũng rất đa dạng.

thể nạp hết dữ liệu vào bộ nhớ mà còn khó có thể chiết xuất ra những tệp đơn

1.3.8. Những khó khăn trong khai phá dữ liệu

giản để phân tích.

Việc nghiên cứu và ứng dụng kỹ thuật khai phá dữ liệu gặp nhiều khó

Quá trình khai phá dữ liệu (Hình 1.3) bắt đầu bằng cách xác định chính

khăn, nhưng không phải là không giải quyết được mà chúng cần được tìm

xác vấn đề cần giải quyết. Tiếp đến là xác định dữ liệu liên quan dùng để xây

hiểu để có thể phát triển tốt hơn. Những khó khăn phát sinh trong khai phá dữ


dựng giải pháp. Bước tiếp theo là thu thập các dữ liệu liên quan và xử lý

liệu chính là dữ liệu trong thực tế thường động, không đầy đủ, lớn và bị nhiễu.

chúng thành dạng sao cho thuật toán khai phá có thể hiểu được.

Trong trường hợp khác, người ta không biết cơ sở dữ liệu có chứa thông tin
cần thiết cho việc khai thác hay không và làm thế nào để giải quyết sự dư thừa

Xác định
nhiệm
vụ
Xác định
dữ liệu
liên quan

thông tin không thích hợp này.
- Dữ liệu lớn: Hiện nay các cơ sở dữ liệu với hàng trăm trường và bảng,
Thu thập
và tiền
xử lý dữ
liệu

hàng triệu bản ghi với kích thước rất lớn, có thể lên đến GB. Các

Thuật
toán khai
phá dữ
liệu


phương pháp giải quyết hiện nay là đưa ra một ngưỡng cho cơ sở dữ
liệu, lấy mẫu, các phương pháp tính xấp xỉ, xử lí song song.
Mẫu

- Kích thước lớn: không chỉ có số lượng bản ghi mà số các trường trong
cơ sở dữ liệu cũng nhiều. Vì vậy mà kích thước của bài toán trở nên lớn
làm tăng không gian tìm kiếm. Hơn nữa, nó cũng làm tăng khả năng

Dữ liệu trực tiếp

một thuật toán khai phá dữ liệu có thể tìm thấy các mẫu giả. Biện pháp
khắc phục là làm giảm kích thước tác động của bài toán và sử dụng các

Hình 1.3. Quá trình khai phá dữ liệu

tri thức biết trước để xác định các biến không phù hợp.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
22




- Dữ liệu động: Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội
dung của chúng thay đổi liên tục. Chẳng hạn như các biến trong cơ sở


cũng là vấn đề thường xảy ra trong cơ sở dữ liệu kinh doanh. Các thuộc
tính quan trọng có thể sẽ bị thiếu dữ liệu không được chuẩn bị.

dữ liệu của ứng dụng đã cho chũng có thể bị thay đổi, bị xóa hoặc là

- Quá phù hợp: Khi một thuật toán tim kiếm tham số tốt nhất cho một mô

tăng lên theo thời gian. Dữ liệu có thể thay đổi theo thời gian và việc

thình nào đó sử dụng một tập dữ liệu hữu hạn, nó có thể sẽ bị tình trạng

khai phá dữ liệu bị ảnh hưởng bởi thời điểm quan sát dữ liệu, do đó có

“quá độ” dữ liệu (nghĩa là tìm kiếm quá mức cần thiết gây ra hiện

thể làm cho mẫu khai thác được trước đó mất giá trị. Vấn đề này được

tượng chỉ phù hợp với dữ liệu đó mà không có khả năng đáp ứng cho

giải quyết bằng giải pháp tăng trưởng để nâng cấp các mẫu và coi

các dữ liệu lạ), làm cho mô hình hoạt động rất kém đối với các dữ liệu

những thay đổi như là cơ hội để khai thác bằng cách sử dụng nó để tìm

thử. Các giải pháp khắc phục như đánh giá chéo, thực hiện theo nguyên

kiếm các cẫu bị thay đổi.


tắc nào đó hoặc sử dụng các biện pháp thống kê khác.

- Các trường dữ liệu không phù hợp: Một đặc điểm quan trọng khác là

- Khả năng biểu đạt mẫu: Trong rất nhiều ứng dụng, điều quan trọng là

tính không thích hợp của dữ liệu – nghĩa là mục dữ liệu trở thành

những điều khai thác được phải càng dễ hiểu với con người càng tốt. Vì

không thích hợp với trọng tâm hiện tại của việc khai thác. Bên cạnh đó,

vậy, các giải pháp thường bao gồm việc diễn tả dưới dạng đồ họa, xây

tính ứng dụng của một thuộc tính đối với một tập con của cơ sở dữ liệu

dựng cấu trúc luật với các đồ thị có hướng, biểu diễn bằng ngôn ngữ tự

cũng là một vấn đề đôi khi cũng liên quan dến độ phù hợp.

nhiên và kỹ thuật khác nhằm biểu diễn các tri thức và dữ liệu.

- Các giá trị bị thiếu: Sự có mặt hay vắng mặt của giá trị các thuộc tính

- Sự tương tác với người sử dụng các tri thức sẵn có: Rất nhiều công cụ

dữ liệu phù hợp có thể ảnh hưởng đến việc khai phá dữ liệu. Trong hệ

và phương pháp khai phá dữ liệu không thực sự tương tác với người


thống tương tác, sự thiếu vắng dữ liệu quan tọng có thể dẫn tới yêu cầu

dùng và không dễ dàng kết hợp cùng với các tri thức đã biết trước đó.

cho giá trị của nó hoặc kiểm tra để xác định giá trị của nó. Hoặc cũng

Việc sử sụng tri thức miền là rất quan trọng trong khai phá dữ liệu. Đã

có thể sự vắng mặt của dữ liệu được coi như một điều kiện, thuộc tính

có nhiều biện pháp nhằm khắc phục vấn đề này như sử dụng cơ sở dữ

bị mất có thể được xem như một giá trị trung gian và gía trị không biết.

liệu suy diễn để phát hiện tri thức, những tri thức này sau đó được sử

- Các trường dữ liệu bị thiếu: Một quan sát không đầy đủ cơ sở dữ liệu có
thể làm cho dữ liệu có giá trị bị xem như có lỗi. Việc quan sát cơ sở dữ

dụng để hướng dẫn cho việc tìm kiếm khai phá dữ liệu hoặc sử dụng sự
phân bố xác suất dữ liệu trước đó như một dạng mã hóa tri thức có sẵn.

liệu phải phát hiện được toàn bộ các thuộc tính có thể dùng để thuật
toán khai phá dữ liệu có thể áp dụng để giải quyết bài toán. Giả sử ta có
các thuộc tính để phân biệt các tình huống đáng quan tâm. Nếu chúng
không làm được điều đó thì có nghĩa là đã có lỗi trong dữ liệu. Đây

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
23




Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
24




2.2. Định nghĩa về luật kết hợp

Chƣơng 2
LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU
2.1. Bài toán kinh điển dẫn đến việc khai phá luật kết hợp

Định nghĩa:
Cho I={I1, I2, .., Im} là tập hợp của m tính chất riêng biệt. Giả sử D là

Bài toán giỏ mua hàng trong siêu thị.

CSDL, với các bản ghi chứa một tập con T các tính chất (có thể coi như T 

Giả định chúng ta có rất nhiều mặt hàng, ví dụ như “bánh mì”,

I), các bản ghi đều có chỉ số riêng. Một luật kết hợp là một mệnh đề kéo theo

“sữa”,…(coi là tính chất hoặc trường). Khách hàng khi đi siêu thị sẽ bỏ vào

có dạng XY, trong đó X, Y  I, thỏa mãn điều kiện XY=. Các tập hợp

giỏ mua hàng của họ một số mặt hàng nào đó, và chúng ta muốn tìm hiểu các


X và Y được gọi là các tập hợp tính chất (itemset). Tập X gọi là nguyên nhân,

khách hàng thường mua các mặt hàng nào đồng thời, thậm chí chúng ta không

tập Y gọi là hệ quả.

cần biết khách hàng cụ thể là ai. Nhà quản lý dùng những thông tin này để

Có 2 độ đo quan trọng đối với luật kết hợp: Độ hỗ trợ (support) và độ

điều chỉnh việc nhập hàng về siêu thị, hay đơn giản là để bố trí sắp xếp các

tin cậy (confidence), được định nghĩa như phần dưới đây.

mặt hàng gần nhau, hoặc bán các mặt hàng đó theo một gói hàng, giúp cho

Định nghĩa: Độ hỗ trợ

khắc đỡ mất công tìm kiếm.

Định nghĩa 2.1: Độ hỗ trợ của một tập hợp X trong cơ sở dữ liệu D là tỷ số

Bài toán này hoàn toàn có thể áp dụng trong các lĩnh vực khác. Ví dụ:

giữa các bản ghi T  D có chứa tập X và tổng số bản ghi trong D (hay là phần

- Giỏ hàng = văn bản. Mặt hàng = từ. Khi đó, những từ hay đi cùng nhau

trăm của các bản ghi trong D có chứa tập hợp X), ký hiệu là support(X) hay


sẽ giúp ta nhanh chóng tìm ra các lối diễn đạt, hay các khái niệm có

supp(X) (support sẽ tự sinh ra khi cài thuật toán)

mặt trong văn bản.

Supp(X)=

- Giỏ hàng = văn bản. Mặt hàng = câu. Khi đó, những văn bản có nhiều

|{ T  D: Y  X}|
| D|

câu giống nhau giúp phát hiện ra sự đạo văn, hay những “website đúp”

Ta có: 0  supp(X)  1 với mọi tập hợp X.

(mirror website).

Định nghĩa 2.2: Độ hỗ trợ của một luật kết hợp XY là tỷ lệ giữa số lượng

Khai phá luật kết hợp được môt tả như sự tương quan của các sự kiện-

các bản ghi chứa tập hợp X  Y, so với tổng số các bản ghi trong D - Ký hiệu

những sự kiện xuất hiện thường xuyên một các đồng thời. Nhiệm vụ chính

supp(XY)


của khai phá luật kết hợp là phát hiện ra các tập con cùng xuất hiện trong một

Supp(XY)=

khối lượng giao dịch lớn của một cơ sở dữ liệu cho trước. Nói cách khác,

|{ T  D: T  X  Y}|
| D|

thuật toán khai phá luật kết hợp cho phép tạo ra các luật mô tả các sự kiện xảy

Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là coc

ra đồng thời (một cách thường xuyên) như thế nào. Các thuật toán này trải

50% tổng số bản ghi chứa X  Y. Như vậy, độ hỗ trợ mang ý nghĩa thống kê

qua 2 pha: pha đầu là đi tìm các sự kiện xảy ra thường xuyên, pha hai là tìm

của luật.

luật.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
25



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
26





Trong một số trường hợp, chúng ta chỉ quan tâm đến những luật có độ

Việc khai thác các luật kết hợp từ cơ sở dữ liệu chính là việc tìm tất cảc

hỗ trợ cao (Ví dụ như luật kết hợp xét trong cửa hàng tạp phẩm). Nhưng cũng

các luật có độ hỗ trợ và độ tin cậy do người sử dụng xác định trước. Các

có trường hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn cần quan tâm (ví dụ luật

ngưỡng của độ hỗ trợ và độ tin cậy được ký hiệu là minsup và mincof.

kết hợp liên quan đến nguyên nhân gây ra sự đứt liên lạc ở các tổng đài điện

Ví dụ: Khi phân tích giỏ hàng của người mua hàng trong một siêu thị ta

thoại)

được luật kiểu như: 85% khách hàng mua sữa thì cũng mua bánh mì, 30% thì

Định nghĩa: Độ tin cậy

mua cả hai thứ. Trong đó: “mua sữa” là tiền đề còn “mua bánh mì ” là kết

Định nghĩa 2.3: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng


luận của luật. Con số 30% là độ hỗ trợ của luật còn 80% là độ tin cậy của luật.

các bản ghi trong D chứa X  Y với số bản ghi trong D có chứa tập hợp X. Ký

Chúng ta nhận thấy rằng tri thức đem lại bởi luật kết hợp dạng trên có

hiệu độ tin cậy của một luật là conf(r). Ta có 0  conf(r)  1

sự khác biệt rất nhiều so với những thông tin thu được từ các câu lệnh truy
vấn dữ liệu thông thường như SQL. Đó là những tri thức, những mối liên hệ

Nhận xét: Độ hỗ trợ và độ tin cậy có xác suất sau:
Supp(XY)=P(X  Y)

chưa biết trước và mang tính dự báo đang tiềm ẩn trong dữ liệu. Những tri

Conf (XY) = P(Y/X)=supp(X  Y)/supp(X)

thức này không đơn giản là kết quả của phép nhóm, tính tổng hay sắp xếp mà
là của một quá trình tính toán khá phức tạp.

Có thể định nghĩa độ tin cậy như sau:
Định nghĩa 2.4: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng
các bản ghi của tập hợp chứa X  Y, so với tổng số các bản ghi chứa X.
Nói rằng độ tin cậy của một luật là 90%, có nghĩa là có tới 90% số bản

Định nghĩa: Tập hợp
Định nghĩa 2.5: Tập hợp X được gọi là tập hợp thường xuyên (Frenquent
itemset) nếu có supp(X)  minsup, với minsup là ngưỡng độ hỗ trợ cho trước.


ghi chứa X chứa luôn cả Y. Hay nói theo ngôn ngữ xác suất là: “ Xác suất có

Kí hiệu các tập này là FI

điều kiện để sảy ra sự kiện Y đạt 85%”. Điều kiện ở đây chính là: “Xảy ra sự

Tính chất 2.1: Giả sử A,B  I là hai tập hợp với AB thì supp(A)  supp(B)

kiện X”.

Như vậy, những bản ghi nào chứa tập hợp B thì cũng chứa tập hợp A

Như vậy, độ tin cậy của luật thể hiện sự tương quan (correlation) gữa X
và Y. Độ tin cậy đo sức nặng của luật, và người ta hầu như chỉ quan tâm đến

Tính chất 2.2: Giả sử A, B là hai tập hợp, A,B  I, nếu B là tập hợp thường
xuyên và AB thì A cũng là tập hợp thường xuyên.

những luật có độ tin cậy cao. Một luật kết hợp đi tìm các nguyên nhân dẫn tới

Thật vậy, nếu B là tập hợp thường xuyên thì supp(B)  minsup, mọi tập

hỏng hóc của hệ thống tổng đài, hay đề cập đến những mặt hàng thường hay

hợp A là con của tập hợp B đều là tập hợp thường xuyên trong cơ sở dữ liệu

được khách hàng mua kèm với mặt hàng chính mà độ tin cậy thấp sẽ không

D vì supp(A)  supp(B) (Tính chất 2.1)


có ích cho công tác quản lý.

Tính chất 2.3: Giả sử A, B là hai tập hợp, A  B và A là tập hợp không
thường xuyên thì B cũng là tập hợp không thường xuyên

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
27



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
28




Định nghĩa 2.6: Một tập mục X được gọi là đóng (closed) nếu không có tập

(frequent patterm) dài có từ 15 đến 20 items) thì tập FI, thậm chí cả tập FCI

cha nào của X có cùng độ hỗ trợ với nó, tức là không tồn tại một tập mục X’

trở nên rất lớn và hầu hết các phương pháp truyền thống phải đếm quá nhiều

nào mà X’X và t(X) = t(X’) (với t(x) và t(X’) tương ứng là tập các giao

tập mục mới có thể thực hiện được. Các thuật toán dựa trên thuật toán Apriori

chứa tập mục X và X’). Ký hiệu tập phổ biến đóng là FCI.


– đếm tất cả 2k tập con của mỗi k- itemsets mà chúng quét qua, và do đó

Định nghĩa 2.7: Nếu X là phổ biến và không tập cha nào của X là phổ biến,

không thích hợp với các itemsets dài được. Các phương pháp khác sử dụng

ta nói rằng X là một tập phổ biến lớn nhất (maximally frequent itemset). Ký

“lookaheads” để giảm số lượng tập mục được đếm. Tuy nhiên, hầu hết các

hiệu tập tất cả các tập phổ biến lớm nhất là MFI. Dễ thấy MFI  FCI  FI.

thuật toán này đều sử dụng tìm kiếm theo chiều rộng, ví dụ: tìm tất cả các k –

Khai phá luật kết hợp là công việc phát hiện ra (tìm ra, khám phá, phát
hiện) các luật kết hợp thỏa mãn các ngưỡng độ hỗ trợ () và ngưỡng độ tin

itemsets trước khi tính đến các (k+1) – itemsets.
Cách làm này hạn chế hiệu quả của lookaheads, vì các mẫu phổ biến dài

cậy () cho trước. Bài toán khai phá luật kết hợp được chia thành hai bài toán

hơn mà hữu ích vẫn chưa được tìm ra.

nhỏ, hay như người ta thường nói, việc giải bài toán trải qua hai pha:

Thuật toán 1 – Thuật toán cơ bản:

Pha 1: Tìm tất cả các tập phổ biến (tìm FI) trong CSDL T.


Input: I, D, , 

Pha 2: Sử dụng tập FI tìm được ở pha 1 để sinh ra các luật tin cậy

Output: Các luật kết hợp thỏa mãn ngưỡng độ hỗ trợ , ngưỡng độ tin cậy .

(interesting rules). Ý tưởng chung là nếu gọi ABCD và AB là các tập mục

Algorithm:

phổ biến, thì chúng ta có thể xác định luật AB  CD với tỷ lệ độ tin cậy:

1) Tìm tất cả các tập hợp các tính chất có độ hỗ trợ không nhỏ hơn ngưỡng .

conf =

2) Từ các tập hợp mới tìm ra, tạo ra các luật kết hợp có độ tin cậy không nhỏ

sup p( ABCD)
sup p( AB)

hơn .

Nếu conf  minconf thì luật được giữ lại (và thỏa mãn độ hỗ trợ tối
thiểu vì ABCD là phổ biến).

Ví dụ minh họa:
Xét 4 mặt hàng (tính chất) trong một cửa hàng thực phẩm với CSDL

Trong thực tế, hầu hết thời gian của quá trình khai thác luật kết hợp là

thực hiện ở pha 1. Nhưng khi có những mẫu rất dài (mẫu chứa nhiều mục)

các giao dịch thuộc loại nhỏ, chỉ có 4 giao dịch (giỏ mua hàng), cho trong các
bảng sau:

xuất hiện trong dữ liệu, việc sinh ra toàn bộ các tập phổ biến (FI) hay các tập

Giao dịch

Mua hàng gì?

đóng (FCI) là không thực tế. Hơn nữa, có nhiều ứng dụng mà chỉ cần sinh tập

T1

Bánh mì, Bơ, Trứng

phổ biến lớn nhất (MFI) là đủ, như khám phá mẫu tổ hợp trong các ứng dụng

T2

Bơ, Trứng, Sữa

sinh học.

T3



T4


Bánh mì, Bơ

Có rất nhiều nghiên cứu về các phương pháp sinh tất cả các tập phổ
biến và tập phổ biến lớn nhất một cách có hiệu quả. Khi các mẫu phổ biến
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
29



Bảng 2.1. Giao dịch mua hàng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
30




Cho trước 2 ngưỡng  = 40% và  = 60%

Agrawal đã chỉ ra việc duyệt các tập hợp các tính chất để tính ra
ngưỡng độ hỗ trợ của chúng và đánh giá có vượt ngưỡng  cho trước hay

Ta tính độ hỗ trợ của các tập hợp các tính chất.
Tập hợp

Tập các

Tỷ lệ

Độ hỗ


Vượt ngưỡng độ

không, tốn rất nhiều thời gian tính toán (độ phức tạp hàm mũ). Còn một khi

trợ

hỗ trợ 40%

đã xác định xong các tập hợp thỏa mãn điều kiện trên (gọi là các tập hợp xuất

bản ghi
Bánh mì

{1,4}

2/4

50%

Đúng

hiện thường xuyên) thì việc KPLKH đỡ tốn thời gian hơn. Agrawal đề nghị



{1,2,3,4}

4/4


100%

Đúng

một thuật toán như sau.

Trứng

{1,2}

2/4

50%

Đúng

Sữa

{2}

1/4

25%

Sai

xuyên):

Bánh mì, Bơ


{1,4}

2/4

50%

Đúng

Input: I, D, , , S

Bánh mì, Trứng

{1}

1/4

25%

Sai

Output: Các luật kết hợp thỏa mãn ngưỡng độ hỗ trợ , ngưỡng độ tin cậy .

Bánh mì, Sữa

{}

0/4

0%


Sai

Algorithm:

Bơ, Trứng

{1,2}

2/4

50%

Đúng

1) Lấy ra một tập xuất hiện –thường xuyên S S, và một tập con X  S.

Bơ, Sữa

{2}

1/4

25%

Sai

2) Xét luật kết hợp có dạng X  (S X), đánh giá độ tin cậy của nó xem

Trứng, Sữa


{2}

1/4

25%

Sai

có nhỏ hơn  hay không.

Bánh mì, Bơ, Trứng

{1}

1/4

25%

Sai

Thực chất, tập hợp S mà ta xét đóng vai trò của tập hợp giao S = X Y,

0%

Sai

Bánh mì, Bơ, Sữa

Thuật toán 2- Tìm luật kết hợp khi đã biết các tập hợp thƣờng


và do X  (S – X) = , nên coi như Y= S – X.

{}

0/4

Bánh mì, Trứng, Sữa

{}

0/4

0%

Sai

Các thuật toán xoay quanh KPLKH chủ yếu nêu ra các giải pháp để đẩy

Bơ, Trứng, Sữa

{2}

1/4

25%

Sai

nhanh việc thực hiện mục 1 của Thuật toán 1. Chương sau ta điểm qua một số


Bánh mì, Bơ, Trứng, Sữa

{}

0/4

0%

Sai

thuật toán.

Bảng 2.2. Tính độ hỗ trợ cho các tập hợp chứa các mặt hàng

2.3. Một số hƣớng tiếp cận trong khai phá 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

Luật kết hợp

Tỷ lệ

Độ tin cậy

Vượt ngưỡng độ tin cậy 60%

triển theo nhiều hướng khác nhau. Có những đề xuất nhằm cải tiến thuật toán,

Bánh mì  Bơ

2/4


50%

Sai

có đề xuất tìm kiếm những luật có ý nghĩa hơn v.v… và có một số hướng

Bơ  Bánh mì

2/2

100%

Đúng

chính sau đây:

Bơ  Trứng

2/2

100%

Đúng

Trứng  Bơ

2/4

50%


Sai

- 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ỉ

Bảng 2.3. Các luật kết hợp và độ tin cậy của chúng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
31



được quan tâm là có hay không xuất hiện trong cơ sở dữ liệu giao tác
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
32




(Transaction database) chứ không quan tâm về mức độ hay tần xuất

- Khai thác luật kết hợp song song (parallel mining of association rule):

xuất hiện. Thuật toán tiêu biểu nhất của khai phá dạng luật này là thuật

Nhu cầu song song hóa và xử lý phân tán là cần thiết vì kích thước dữ

toán Apriori.

liệu ngày càng lớn nên đòi hỏi tốc độ xử lý phải được đảm bảo.


- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (Quantitative and

Trên đây là những biến thể của khai phá luật kết hợp cho phép ta tìm

categorial association rule): các cơ sở dữ liệu thực tế thường có các

kiếm luật kết hợp một cách linh hoạt trong những cơ sở dữ liệu lớn. Bên cạnh

thuộc tính đa dạng (như nhị phân, số, mục (categorial)...) chứ không

đó các nhà nghiên cứu còn chú trọng đề xuất các thuật toán nhằm tăng tốc quá

nhất quán ở một dạng nào cả. Vì vậy để khai phá luật kết hợp với các

trình tìm kiếm luật kết hợp trong cơ sở dữ liệu.

cơ sở dữ liệu này các nhà nghiên cứu đề xuất một số phương pháp rời
rạc hóa 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 rule 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 ruls): với cách tiếp cận
luật kết hợp thế này sẽ tìm kiếm thêm những luật có dạng: mua máy
tính PC  mua hệ điều hành Window AND mua phần mềm văn phòng
Microsoft Office,…
- Luật kết hợp mờ (fuzzy association rule): Với những khó khăn gặp phải
khi rời rạc hóa 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ố (association rules 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” (tức là có độ hỗ trợ thấp nhưng mang nghiều ý
nghĩa).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
33



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
34




else

Chƣơng 3
MỘT SỐ THUẬT TOÁN PHÁT HIỆN LUẬT KẾT HỢP

add c và Ck và tăng biến đếm tương ứng thêm 1;

10. End
11. Lk = { c  Ck | c.count  minsup}

3.1. Thuật toán AIS

Thuật toán do Agrwal đề nghị năm 1993. Thuật toán này chú trọng
khai phá luật kết hợp có dạng X Y, với Y là tập hợp chỉ bao gồm 1 tính

12. End
13. Trả lời = k Lk ;

chất (tập hợp 1 phần tử). Thuật toán tìm cách xây dựng dần dần các tập ứng

Thuật toán được áp dụng tỏ ra thành công cho cơ sở dữ liệu của các

cử viên cho “chức vụ” tập hợp xuất hiện  – thường xuyên. Với cách đánh số

công ty bán lẻ hàng hóa và đã tìm ra các luật kết hợp đề cập đến mối quan hệ

thứ tự từ điển cho từng tính chất, việc bổ sung phần tử cho tập ứng cử viên

giữa hành vi ứng xử mua hàng của khách hàng với 63 gian hàng của công ty,

tránh được trùng lặp, do vậy tiết kiệm tối đa thời gian tính toán.

sau khi nghiên cứu 46.873 giao dịch mua hàng.

Số lượng các tập ứng cử viên quá nhiều có thể gây ra hiện tượng tràn bộ

3.2. Thuật toán SETM

nhớ. Thuật toán đề nghị một phương án quản lý bộ nhớ hợp lý đề phòng

Thuật toán do Houtsma đề nghị năm 1995. Thuật toán này cũng sử dụng


trường hợp này: không cho phép các ứng cử viên chiếm bộ nhớ, mà ghi thẳng

kỹ thuật bổ sung dần dần từng phần tử (từ tập hợp 1 phần tử) nhằm tìm kiếm

chúng vào đĩa ở chế đồ thường trực (disk-resident).

các tập hợp ứng cử viên. Một cải tiến đáng kể là Thuật toán đề nghị lưu lại cả

Dưới đây là nội dung chủ yếu của Thuật toán AIS:

ID của giao dịch cùng với tập hợp ứng cử viên. Agrawal đã chỉ ra, Thuật toán

Input: CSDL D, minsup

này không những không có phương án quản lý bộ nhớ mà nó còn giả định

Output: các tập mục phổ biến

nhét toàn bộ tập hợp ứng cử viên của bước trước vào bộ nhớ để bước sau tiện

1. L1 = { các tập mục phổ biến};

bề sử dụng. Sarawagi đã chỉ ra Thuật toán này không hiệu quả.

2. for (k=2; Luật kết hợpk-1   ; k++ ) do begin

Thuật toán SETM được mô tả hình thức như sau:

3. Ck = ;


Input: CSDL D, minsup

4. forall các giao dịch t  D do begin

Output: Các tập mục phổ biến

5. Lt = Subset(Lk-1,t); // các tập mục phổ biến thuộc Lk-1 chứa trong giao

1. L1 = {các tập mục phổ biến};
2. L1’={các tập mục phổ biến cùng các TID của nó được sắp xếp theo

dịch t
6. forall các tập mục phổ biến lt  Lt B do begin

TID};

7. Ct = tăng thêm một mục có trong giao dịch t;

3. for (k=2; Luật kết hợpk-1   ; k++ ) do begin

8. forall các ứng cử viên c  Ct do

4. Ck = ;

9. if (c  Ck) then

5. forall các giao dịch t  D do begin

add tăng biến đếm của c thêm 1 cho mục tương ứng của C k
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

35



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
36




6. Lt = (l  L’k-1 | l.TID = t.TID); // các tập có (k - l) mục phổ biến trong

2/ Bước 2: Ta tiến hành ghép đôi các phần tử của L1 (không cần để ý
đến thứ tự), được tập C2, tạp gọi là tập các ứng cử viên có 2 phần tử. Sở dĩ

giao dịch t
7. forall các tập mục phổ biến lt  Lt do begin

chỉ gọi là “ứng cử viên”, vì chưa chắc chúng đã là  – thường xuyên. Sau khi

8. Ct = tăng lt thêm một mục có trong giao dịch t; //Các ứng cử viên có

kiểm tra (dùng định nghĩa), ta lọc ra được các tập hợp  – thường xuyên có 2
phần tử. Ký hiệu tập hợp này là L2.

trong t
9. C’k +={<t.TID, c>| c  Ct};

3/ Bước 3: Với chứ ý đã nêu (về tính chất tăng dần của các tập hợp  –


10. end

thường xuyên ), ta tiến hành tìm các ứng cử viên có 3 phần tử (lấy từ L1). Gọi

11. end

nó là tập C3. Lưu ý là nếu {A, B, C} muốn là “ứng cử viên” thì các tập 2 phần

12. Sort C’k theo các tập mục;

tử {A, B},{B,C},{C, A } đều phải là  – thường xuyên, tức là chúng đều là

13. delete các mục c  C’k có c.count
phần tử của tập L2. Ta đi “kiểm tra tư cách đại biểu” trong tập C3 và lọc ra

14. Lk ={<l.itemset, countof l in L’k > | l  Lk'}; //kết hợp với bước 13

được tập các tập hợp  – thường xuyên có 3 phần tử. Tập hợp này được ký

15. Sort L’k theo TID;

hiệu là L3.
4/ Bước 4: Ta tiến hành tìm các ứng cử viên có n phần tử. Gọi tập của

16. end
17. Trả lời = k Lk ;

chúng là tập Cn và từ đây, lọc ra Ln là tập tập các tập hợp  – thường xuyên có
n phẩn tử.


3.3. Thuật toán Apriori
Thuật toán do Agrawal đề nghị năm 1994, được Cheung đánh giá mang

Thuật toán này có giúp ích được gì, ta cùng nhau xem xét ví dụ sau:

tính chất lịch sử trong lĩnh vực KPLKH, vì đã vượt xa tầm của các thuật toán

Câu lệnh SQL sau đây tạo cặp, xử lý 10 triệu giỏ mua hàng, mỗi giỏ

quen thuộc trong lĩnh vực này. Thuật toán dựa trên một nhận xét khá đơn giản

mua hàng trung bình có 10 mặt hàng, với giả thiết siêu thị có khoảng 100.000

là bất kỳ tập hợp con nào của tập xuất hiện  – thường xuyên cũng là tập xuất

mặt hàng:

hiện  – thường xuyên. Do đó, trong quá trình đi tìm các tập ứng cử viên, nó

SELECT b1.item b2.item COUNT(*)

chỉ cần dùng đến các tập ứng cử viên vừa xuất hiện ở bước ngay trước đó, chứ

FROM Baskets b1, Baskets b2

không cần dùng đến tất cả các tập ứng cử viên (cho đến thời điểm đó). Nhờ

WHERE b1.BID = b2.BID AND b1.item

vậy, bộ nhớ được giải phóng đáng kể.

GROUP BY b1.item , b2. item

1/ Bước 1: cho trước ngưỡng độ hỗ trợ 0    1. Tìm tất cả các mặt
hàng xuất hiện  – thường xuyên. Để ý rằng, một siêu thị có thể có tới

HAVING COUNT(*) >= s;
Câu lệnh WHERE đảm bảo các cặp ghép không bị đúp 2 lần (vì ta
không cần để ý đến tứ tự các phần tử).

100.000 mặt hàng. Tập hợp tìm được ký hiệu là L1.

Câu lệnh HAVING đả bảo các tập hợp chọn ra là  – thường xuyên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
37



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
38




Nhận xét: Khi ghép Baskets với chính nó, mỗi giỏ ta có 45 cách chế ra các

From Lk-1 is p, Lk-1 is q

cặp ứng viên [do (10*9)/2=45], và do có 10 triệu giỏ mua hàng, nên ta phải


Where p.I1 = q.I1 and….and p.Ik-2 = q.Ik-2 and p.Ik-1 < q.Ik-1

xét 45x10 trường hợp để lọc ra các cặp  – thường xuyên.

//Bước tỉa bớt

7

Trong khi đó nếu sử dụng Thuật toán Apriori, trước hết ta giảm được

Forall itemsets c Ck do

đáng kể kích thước của Baskets, vì ở bước 1 ta đi tìm các phần tử (mặt hàng)

Forall (k-1)- subsets s of c do

xuất hiện  – thường xuyên.

If (s is not of Lk-1) then

SELECT *

Delete c from Ck
Hàm sau đây có nhiệm vụ rà soát từng tính chất và đo đếm xem giá đỡ

FROM Baskets
GROUP BY item

của nó bằng bao nhiêu. Nói cách khác, ở bước đầu tiên Agrawal dùng hàm


HAVING COUNT (*) >= s;

count() để tìm ra các tập hợp xuất hiện  – thường xuyên có 1 phần tử.

Sự giảm kích thước của Baskets chưa phải là điểm cốt yếu. Điểm cốt
yếu là khi ta kết hợp để tìm cặp, ta sẽ giảm được bình phương lần.

Function count(C:a set of itemsets, D: database)
begin
for each transaction T  D =  Di do

Cốt lõi của thuật toán Apriori là hàm apriori_gen() do Agrawal đề nghị
năm 1994. Hàm này hoạt động theo 2 bước, bước 1- tập hợp Lk-1 tự kết nối

begin

(join) với chính nó để tạo ra tập ứng cử viên Ck. Sau đó hàm apriori_gen()

forall subsets x T do

loại bỏ các tập hợp có một hợp con (k-1) phần tử không nằm trong Lk-1 (vì
chúng không thể là tập hợp xuất hiện  – thường xuyên, theo như nhận xét

if x  C then x.count++;

end
end

ban đầu).


Dưới đây là toàn bộ Thuật toán Apriori

Method: apriori_gen() [Agrwal1994]

Thuật toán 3- Apriori [Agrawal1994]

Input: Lớp các tập hợp xuất hiện  – thường xuyên có (k-1) phần tử, ký hiệu

Input: I, D, 

là Lk-1

Output: L

Output: Lớp các tập hợp xuất hiện  – thường xuyên có k phần tử, ký hiệu là

Algorithm:

Luật kết hợp

//Apriori Algorithm prposed by Agrawal R., Srikant, R. [Agrawal1994]

// Bước tự kết nối

//procedure LargeItemsets

Ii = Items i

1) C1: = I; // Tập ứng cử viên có 1 phần tử


Insert into Ck

2) Sinh ra L1 bằng cách tính tần số xuất hiện của mặt hàng trong các giao
dịch;

Select p.I1, p.I2,…, p.Ik-1, q.Ik-1
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
39



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
40




3) for (k=2; Lk-1  ; k++) do begin

C1

C1

//Tạo ra các tập ứng cử viên

Tập 1 phần tử

Quét


// Các tập ứng cử viên có k phần tử được sinh ra từ các tập (k-1)- phần tử

{Bánh mì}

bộ

xuất hiện  – thường xuyên.

{Bơ}

để tính độ {Bơ}

{Trứng}

hỗ trợ

4) Ck = apriori-gen( Lk-1 );

toàn Tập hợp

// Tính độ hỗ trợ cho Ck

Độ hỗ trợ

Tập hợp

Độ tin cậy

50%


{Bánh mì}

50%

100%

{Bơ}

100%

{Trứng}

50%

{Trứng}

50%

{Sữa}

25%

CSDL {Bánh mì}

{Sữa}
C2

5) Count (Ck, D)

C2


Tập 2 phần tử

6) Lk = {c  Ck| c.count  }

Tập hợp

{Bánh mì,

7) end
8) L:= k Lk

{Bánh mì,

Bơ}

Bơ}

{Bánh mì,

{Bánh mì,

Bảng 3.1 dưới đây minh họa áp dụng thuật toán cho ví dụ 2 ( =40%)

L1

Trứng}

Trứng}


{Bơ,

{Bơ, Trứng}

L2
Độ hỗ trợ Tập hợp
50%

Độ tin cậy

{Bánh mì, 50%
Bơ}

25%

{Bơ,

50%

Trứng}
50%

Trứng}

C3

Quét

Tập 3 phần tử


bộ



toàn C3

L3

CSDL Tập hợp

Độ hỗ trợ

để tính độ 

Tập hợp

Độ tin cậy



hỗ trợ

Bảng 3.1.
Dùng thuật toán Apriori tính ra các tập hợp xuất hiện  – thường xuyên
Bản thân Agrawal đưa ra nhận xét: thuật toán Apriori hiệu quả hơn so
với AIS và SETM. Trong một ví dụ minh họa, ở bước thứ tư, thuật toán
Apriori lược bỏ hết, chỉ còn giữ lại một tập ứng cử viên duy nhất, trong khi cả
hai thuật toán kia vẫn đề nghị tới 5 ứng cử viên. Do đó, để đạt được kết quả
như Apriori, hai thuật toán kia chắc chắn phải cần đến những tính toán bổ trợ.


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
41



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
42




Thuật toán Apriori cải tiến cũng giải quyết 2 tình huống “xấu”, đó là khi

Các vector biểu diễn nhị phân cho các tập 2 thuộc tính có dạng sau:

Ck hoặc Lk-1 to quá, không chứa đủ trong bộ nhớ tính toán. Khi đó, cần tu

{A,B} {A,C} {A,D} {A,E} {B,C} {B,D} {B,E} {C,D} {C,E} {D,E}

chỉnh lại hàm apriori_gen() một chút.

1

0

1

1

0


1

1

0

0

1

*Thuật toán Apriori nhị phân:

0

0

0

0

1

0

1

0

1


0

Thuật toán Apriori nhị phân sử dụng các vector bit cho các thuộc tính,

1

0

1

1

0

1

1

0

0

1

vector nhị phân n chiều ứng với n giao tác trong cơ sở dữ liệu. Có thể biểu

1

1


0

0

1

0

1

0

1

0

diễn cơ sở dữ liệu bằng một ma trận nhị phân trong đó dòng thứ I tương ứng

1

1

1

1

1

1


1

1

1

1

với giao tác (bản ghi) ti và cột thứ j tương ứng với mục (thuộc tính ) ij. Ma

0

0

0

0

1

1

0

1

0

0


trận biểu diễn cơ sở dữ liệu ví dụ cho bảng dưới:
TID

A

B

C

D

E

1

1

1

0

1

1

2

0


1

1

0

1

3

1

1

0

1

1

4

1

1

1

0


1

5

1

1

1

1

1

6

0

1

1

1

0

trợ tối thiểu MinSupp=50% (cho trước) nên bị loại.
Các vector biểu diễn nhị phân cho các tập 3 thuộc tính có dạng:

Bảng 3.2. Ma trận biểu diễn cơ sở dữ liệu

Các vector biểu diễn nhị phân cho các tập 1 thuộc tính có dạng sau:
{A} Vector {B} Vector {C} Vector {D} Vector {E}

Bảng 3.4. Vector biểu diễn nhị phân cho các tập 2 thuộc tính
Các vector biểu diễn cho thấy {A,C}, {C,D} có độ hỗ trợ 33% nhỏ hơn độ hỗ

Vector

{A,B,D}

{A,B,E}

{B,C, E}

{B,D,E}

1

1

0

1

0

0

1


0

1

1

0

1

0

1

1

0

1

1

1

1

0

0


0

0

Bảng 3.5. Vector biểu diễn nhị phân cho các tập 3 thuộc tính
Các vector biểu diễn nhị phân cho các tập 4 thuộc tính có dạng:

1

1

0

1

1

0

1

1

0

1

{A,B,C,D}

{A,B,C,E}


{A,C,D,E}

{B,C,D,E}

0

0

0

0

0

0

0

0

0

0

0

0

1


1

0

1

1

1

1

1

0

1

1

1

1

1

1

0


1

0

0

0

1

1

1

0

1

1

1

1

0

0

0


0

Bảng 3.3. Vector biểu diễn nhị phân cho tập 1 thuộc tính

Bảng 3.6. Vector biểu diễn nhị phân cho các tập 4 thuộc tính

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
43



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
44




For all candidates c Ct do

3.4. Thuật toán Apriori-TID
Thuật toán Apriori-TID là phần mở rộng theo hướng tiếp cận cơ bản
của thuật toán Apriori. Thay vì dựa vào cơ sở dữ liệu thô thuật toán AprioriTID biểu diễn bên trong mỗi giao dịch bởi các candidate hiện hành.
Như ta đã thấy, thuật toán Apriori đòi hỏi phải quét toàn bộ cơ sở dữ
liệu để tính độ hỗ trợ cho các tập hợp ứng cử viên ở mỗi bước. Đây là một sự
lãng phí lớn. Dựa trên tư tưởng ước đoán và đánh giá độ hỗ trợ, Agrawal đề
nghị cải tiến Apriori theo hướng chỉ phải quét cơ sở dữ liệu lần đầu tiên, sau
đó tính độ hỗ trợ cho các tập hợp 1 phần tử. Từ bước thứ hai trở đi, Thuật
toán Apriori-TID nhờ lưu trữ song song cả ID của giao dịch và các ứng cử
viên, có thể đánh giá, ước lượng độ hỗ trợ mà khỏi phải quét lại toàn bộ cơ sở

dữ liệu.

c.count++;
if (C1) then Ck  Ck   t.TID,C t 
end
Luật kết hợp= {c  Ck | c.count  minsup};
end
Answer = k Lk
Sự khác nhau giữa Apriori và AprioriTID là: cơ sở dữ liệu không được
sử dụng để đếm các support sau lần đầu tiên quét qua cơ sở dữ liệu. Vì sau lần
quét đầu tiên các 1-itemset đã được sinh (các L1), các L1 này được dùng để
lọc ra các giao dịch của cơ sở dữ liệu bất kỳ item nào là không phổ biến và
những giao dịch trong C1 chỉ chứa những item không phổ biến. Kết quả đó

Nội dung thuật toán Apriori-TID
Input: Tập các giao dịch D, minsup

được đưa vào C 2 và sử dụng lần quét đó. Vì vậy kích thước của C 2 là khá nhỏ

Output: Tập Answer gồm các tập mục thường xuyên trên D

hơn so với C1 .
Sự giống nhau của hai thuật toán này là đều sử dụng bước cắt tỉa trong

Method:
L1= {large 1 – itemset};

hàm Apriori_gen()

C1 = database D;


3.5.Thuật toán Apriori-Hybrid
Thuật toán Apriori-Hybrid được coi như kết hợp giữa Thuật toán

for (k=2; Lk-1  ; k++) do

Apriori và thuật toán Apriori-TID.

begin

Trong thuật toán Apriori-Hybrid, được sử dụng khi tổ chức lặp và

Ck   ;

chuyển sang Apriori-TID khi đã chắc chắn rằng tập C k đã vào bộ nhớ chính.

For all entries t  Ck 1 do

Thuật toán Apriori-Hybrid được coi là tốt hơn so với Apriori và AprioriTID.

begin

Nhờ có nhận xét tinh tế là thuật toán Apriori chạy khá nhanh ở những

//Xác định các candidate itemset

bước đầu tiên, còn thuật toán Apriori-TID chạy nhanh ở những bước sau (và

//được chứa trong giao dịch với định danh t.TID
C1  c  Ck (c-c[k])  t.set_of_itemset  (c-c[k-1])  t.set_of_itemset;


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
45



đáng buồn là chạy khá chậm ở những bước đầu tiên), Agrawal đề nghị
phương án lai ghép: không nhất thiết phải chạy tất cả các bước cùng một thuật
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
46




toán giống nhau. Những bước đầu tiên, ông cho chạy thuật toán Apriori, sau

Thứ nhất, thuật toán sử dụng cấu trúc cây mẫu thường xuyên FP_Tree

đó khi tập các ứng cử viên khá lớn, sắp chứa đầy trong bộ nhớ tính toán, mới

để nén dữ liệu. Cấu trúc FP_Tree là mở rộng của cấu trúc cây prefix. Những

dùng thuật toán Apriori-TID.

nút trong cây là các mục có độ dài là 1, được gán nhãn bởi tên mục và được

Srikant đưa ra thêm một nhận xét: thời gian chuyển từ thuật toán
Apriori sang thuật toán Apriori-TID tương đối “đắt” (tốn kém), và thuật toán
lai ghép Apriori-Hybrid chỉ tỏ ra hiệu quả khi sự chuyển mạch này diễn ra ở


sắp xếp theo tần suất xuất hiện của các mục để các mục có số lần xuất hiện
nhiều thì sẽ chia sẻ nhiều hơn.
Thứ hai, khai thác phát triển từng đoạn mẫu dựa trên FP_Tree, bắt đầu

gần cuối quá trình tìm kiếm tập xuất hiện  – thường xuyên.

từ mẫu thường xuyên có kích thước 1 và chỉ kiểm tra trên cơ sở mẫu phụ

3.6. Thuật toán FP_growth

thuộc (conditional pattern base), khởi tạo FP_Tree của mẫu phụ thuộc, thực

Như ta đã biết thuật toán Apriori là một bước đột phá về khai thác các
tập mục thường xuyên bằng cách sử dụng kỹ thuật tỉa để rút gọn kích thước
của các tập mục ứng cử. Tuy nhiên, trong trường hợp số tập mục nhiều, tập
mục dài hoặc ngưỡng độ hỗ trợ nhỏ thì thuật toán gặp phải hai chi phí lớn:
4

- Sinh ra số lượng khổng lồ các tập mục ứng cử. Ví dụ nếu có 10 tập mcụ 17

mục thường xuyên thì sẽ sinh ra hơn 10 tập mục 2- mục ứng cử và thực
hiện kiểm tra xem tập mục nào thường xuyên. Hơn nữa, để phát hiện ra các

hiện khai thác đệ quy trên cây này. Mẫu kết quả nhận được qua việc kết nối
mẫu hậu tố với mẫu mới được sinh ra từ FP_Tree phụ thuộc.
Thứ ba, dùng kỹ thuật tìm kiếm phân hoạch không gian tìm kiếm và
chia để trị để chia nhiệm vụ khai thác thành những nhiệm vụ nhỏ hơn và giới
hạn lại các mẫu làm giảm không gian tìm kiếm.
Cây mẫu thường xuyên
Cây mẫu thường xuyên là cây có cấu trúc được định nghĩa như sau:


tập mục thường xuyên có kích thước n, thuật toán phải kiểm tra 2 -2 các

Định nghĩa: FP_Tree bao gồm nút gốc có nhãn “Null”, tập các cây non prefix

tập mục thường xuyên tiềm ẩn.

như là cây con của nút gốc và một bảng tiêu đề các mục thường xuyên.

n

- Phải duyệt qua cơ sở dữ liệu nhiều lần. Số lần duyệt cơ sở dữ liệu của thuật

Mỗi nút của cây con prefix có 3 trường: Item_name, count, nút liên kết

toán Apriori bằng độ dài của tập mục thường xuyên dài nhất tìm được.

(node link); với item_name là nhãn của nút, count là số giao tác mà mục này

Trong trường hợp tập mục thường xuyên dài và cơ sở dữ liệu lớn thì không

xuất hiện, node_link dùng để liên kết với nút tiếp theo trong cây nếu có cùng

thể thực hiện được. Thuật toán Apriori phù hợp với cơ sở dữ liệu thưa, còn

Item_name hay Null nếu không có.
Mỗi lối vào trong bảng tiêu đề có hai trường: Item_name và node_link,

với cơ sở dữ liệu dạy thì thuật toán kém hiệu quả.
Để khắc phục những chi phí lớn của thuật toán Apriori năm 2000 Jiawei


node_link trỏ tới nút đầu tiên trong FP_Tree có chứa nhãn Item_name.

Han, Jian pei và Yiwen Yin đã đưa ra thuật toán mới được gọi là FP_growth

Ví dụ: Cho cơ sở dữ liệu với các giao tác và các mục thường xuyên trong mỗi

để tìm tập mục thường xuyên bằng cách không sinh các tập mục ứng cử từ

giao tác được sắp xếp giảm dần theo độ hỗ trợ (minsup = 3/5) được thể hiện

các tập mục thường xuyên trước mà vẫn hiệu quả bằng cách sử dụng ba kỹ

trong bảng sau:

thuật sau:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
47



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
48




×