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

ỨNG DỤNG CHO BÀI TOÁN PHÂN TÍCH HÀNH VI MUA SẮM CỦA KHÁCH HÀNG TRONG CÁC SIÊU THỊ

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 (625.72 KB, 45 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH MÔN:
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
ĐỀ TÀI:
XÂY DỰNG ỨNG DỤNG CHO BÀI TOÁN PHÂN TÍCH HÀNH VI MUA
SẮM CỦA KHÁCH HÀNG TRONG CÁC SIÊU THỊ
Ging viên phụ trách: GS, TSKH. HOÀNG KIẾM
Học viên thực hiện: Lê Phước Vinh
TP. HỒ CHÍ MINH, THÁNG 10/2014
MỤC LỤC
MỤC LỤC 2
DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT 3
Chương 1 – KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 4
Chương 2-KHAI THÁC TẬP PHỔ BIẾN & LUẬT KẾT HỢP 15
Chương 3- XÂY DỰNG ỨNG DỤNG CHO BÀI TOÁN PHÂN TÍCH HÀNH VI
MUA SẮM CỦA KHÁCH HÀNG TRONG CÁC SIÊU THỊ 33
DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
STT Từ viết tắt Giải nghĩa
1 CSDL Cơ sở dữ liệu
2 I Tập các mục dữ liệu
3 Minsup Độ hỗ trợ tối thiểu
4 Minconf Độ tin cậy tối thiểu
5 KDD Knowledge Discovery in Database
6 TID Định danh của giao tác
7 T Giao tác
8 k-itemset Một itemset có k items
9 L
k
Tập phổ biến k-itemsets
10 C


k
Tập ứng viên k-itemsets
11
kC
Tập ứng viên k-itemsets mà tập giao tác có chứa nó.
Chương 1 – KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU
1.1 Khám phá tri thức và khai phá dữ liệu
“Khám phá tri thức là quá trình tìm ra những tri thức, đó là những mẫu tìm ẩn,
trước đó chưa biết và là thông tin hữu ích đáng tin cậy”. Còn khai phá dữ liệu (KPDL)
là một bước quan trọng trong quá trình khám phá tri thức, sử dụng các thuật toán
KPDL chuyên dùng với một số qui định về hiệu qu tính toán chấp nhận được để chiết
xuất ra các mẫu hoặc các mô hình có ích trong dữ liệu. Nói một cách khác, mục đích
của khám phá tri thức và KPDL chính là tìm ra các mẫu hoặc mô hình đang tồn tại
trong các cơ sở dữ liệu (CSDL) nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu [1].
Khám phá tri thức từ CSDL là một quá trình sử dụng các phương pháp và công
cụ tin học, trong đó con người là trung tâm của quá trình. Do đó, con người cần phi
có kiến thức cơ bn về lĩnh vực cần khám phá để có thể chọn được tập con dữ liệu tốt,
từ đó phát hiện các mẫu phù hợp với mục tiêu đề ra. Đó chính là tri thức, được rút ra
từ CSDL, thường để phục vụ cho việc gii quyết một loạt nhiệm vụ nhất định trong
một lĩnh vực nhất định. Tuy vậy, quá trình khám phá tri thức mang tính chất hướng
nhiệm vụ vì không phi là mọi tri thức tìm được đều áp dụng vào thực tế được.
Để có được những thông tin quý báu chúng ta phi tìm ra các mẫu có trong tập
CSDL trước. Việc đánh giá các mẫu được tìm thấy cũng là một điều thú vị và tất yếu
có tính chất quyết định đến sự sử dụng hay không sử dụng chúng. Đầu ra của một
chương trình là khám phá những mẫu có ích được gọi là tri thức. Tri thức được khám
phá có các đặc điểm chính:
- Kiến thức cao cấp: 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ó. Quá trình để tìm ra kiến
thức như vậy không phi từ những phương pháp thống kê cổ điển mà mà nó được
được đúc kết từ các kinh nghiệm đã có, được thể hiện trong dữ liệu, những kết qu đó

có thể lĩnh hội được.
- Độ chính xác: Dù cho những mẫu khai phá thật sự có trong CSDL hay không
thì việc đo lường trị giá của chúng là bắt buộc phi có. Chúng ta sẽ chỉ sử dụng những
mẫu nào có độ chính xác càng cao thì hiệu qu công việc đạt được càng lớn, những
mẫu có độ chính xác chưa được xác định rõ ràng hoặc không cao thì không nên sử
dụng chúng.
4
- Tính hấp dẫn: Khám phá tri thức được coi là lý thú vì nó có thể vạch ra các xu
hướng một cách hoàn thiện. Đó là những điều mới lạ hay những quy trình tìm năng,
hữu ích ẩn chứa từ trong dữ liệu trước đó.
- Tính hiệu qu: thời gian chạy của thuật toán khám phá tri thức trên CSDL lớn
có thể dự tính và chấp nhận được. Dữ liệu là tập hợp những bộ thông tin chính xác và
quá trình khám phá tri thức được xem là sự lọc bỏ các dư thừa, được rút gọn tới mức
tối thiểu chỉ để lại các đặc trưng cơ bn cho dữ liệu. Tri thức được tìm thấy 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ệ trong 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ếu khám phá tri thức là toàn bộ quá trình chiết xuất tri thức từ các CSDL thì
KPDL là giai đoạn chủ yếu của quá trình đó. KPDL là một quá trình phát hiện các mẫu
mới, thường bao gồm việc thử tìm mô hình phù hợp với tập dữ liệu và tìm kiếm các
mẫu từ tập dữ liệu theo mô hình đó. Sử dụng các kỹ thuật và các khái niệm của các
lĩnh vực đã được nghiên cứu từ trước như: học máy, nhận dạng, thống kê, hồi quy, xếp
loại, phân nhóm, các mô hình đồ thị, các mạng Bayes,… Hầu hết các CSDL đều chứa
rất nhiều các mẫu mới và có ích, tuy nhiên mẫu có giá trị với mục tiêu đặt ra phi là
những mẫu không tầm thường. Để các mẫu trở nên không tầm thường, hệ thống phi
làm nhiều hơn là chỉ mò mẫm thống kê vì kết qu của việc tính toán trực tiếp qua công
tác thống kê là đã có đối với người dùng. Một hệ thống tìm kiếm cần phi có kh năng
quyết định cần thực hiện tính toán nào và kết qu là có đáng quan tâm để tạo nên tri
thức trong ngữ cnh hiện tại hay không.
KPDL được sử dụng để tạo ra gi thuyết. Ví dụ như để xác định các yếu tố rủi ro
khi cho vay tín dụng, kỹ thuật KPDL phi phát hiện được những người có thu nhập

thấp và nợ nhiều là những người sẽ có mức rủi ro cao. Ngoài ra kỹ thuật cũng có thể
phát hiện ra những quy luật mà nhà phân tích có thể chưa tìm ra ví dụ như tỷ lệ giữa
thu nhập trên nợ và tuổi cũng là các yếu tố xác định mức rủi ro. Để làm được điều này,
KPDL sử dụng các thông tin trong quá khứ để học. Nó sẽ tìm kiếm các thông tin này
trong các CSDL và sử dụng chúng để tìm ra các mẫu đáng quan tâm.
Nếu xét về mặt ý tưởng và mục đích ứng dụng, KPDL là một nhu cầu tất yếu,
một sự nhạy cm đáp lại sự mong mỏi của giới kinh doanh thì về mặt kỹ thuật, đó thực
sự là một khó khăn và là c sự thách thức đối với những nhà khoa học. KPDL được
xây dựng dựa trên việc sử dụng các gii thuật mới, được định hướng theo như cầu kinh
5
doanh để có thể gii quyết tự động các bài toán kinh doanh bằng các kỹ thuật dễ dung
và có thể hiểu được. Các kỹ thuật đang được nghiên cứu và sử dụng hiện nay bao gồm
cây quyết định (CART, CHAID, AID), mạng neuron, phương pháp láng giềng gần
nhất, các luật suy diễn,…
KPDL không thuộc một ngành công nghiệp nào. Nó sử dụng các kỹ thuật thong
minh để khai phá các tri thức tiềm ẩn trong dữ liệu. Có thể coi KPDL ngày nay đang ở
trạng thái giống như việc qun trị dữ liệu vào những năm 60, khi mà các ứng dụng
qun trị dữ liệu đều không tuân theo một nguyên tắc chung nào cho đến khi mô hình
dữ liệu quan hệ ra đời cùng với sức mạnh của ngôn ngữ vấn đáp đã thúc đẩy việc phát
triển các ứng dụng qun trị dữ liệu lên nhanh chóng. Tuy vậy, hiện nay trên thế giới đã
có rất nhiều ngành công nghiệp sử dụng kỹ thuật KPDL để phục vụ cho hoạt động
kinh doanh của mình và đã bước đầu thành công như ngành tài chính, y học, hóa học,
bo hiểm, sn xuất, giao thông, hàng không,… Các kết qu đạt được cho thấy mặc dù
kỹ thuật KPDL hiện nay vẫn còn nhiều vấn đề nổi cộm, nhưng với những tri thức mà
chuyên gia con người cũng chưa cung cấp được thì KPDL có một tiềm năng to lớn
trong việc tạo ra những lợi nhuận đáng kể trong nền kinh tế.
1.2 Quá trình khám phá tri thức
Hình
1.1.
Quá

trình
khám
phá tri thức
6
Knowled
ge
Internet
,
Internet
,
Gatheri
ng
Selectio
n
Cleansing
Pre-
processing
Transform
ati
Data
Mining
Envalution
of
Data
Targe
t
Data
Cleansed
Preproccess
ed

Preparated
Transform
ed
data
Pattem
Discove
ry
Quá trình khám phá tri thức từ CSDL là một quá trình có sử dụng nhiều phương
pháp và công cụ tin học nhưng vẫn là một quá trình mà trong đó con người là trung
tâm. Do đó, nó không phi là một hệ thống phân tích tự động mà là một hệ thống bao
gồm nhiều hoạt động tương tác thường xuyên giữa con người và CSDL, tất nhiên là
với sự hỗ trợ của các công cụ tin học. Người sử dụng hệ thống ở đây phi là người có
kiến thức cơ bn về lĩnh vực cần phát hiện tri thức để có thể chọn được đúng các tập
con dữ liệu, các lớp mẫu phù hợp và đạt tiêu chuẩn quan tâm so với mục đích. Tri thức
mà ta nói ở đây là các tri thức rút ra từ các CSDL, thường để phục vụ cho việc gii
quyết một loạt nhiệm vụ nhất định trong một lĩnh vực nhất định. Do đó, quá trình phát
hiện tri thức cũng mang tính chất hướng nhiệm vụ, không phi là phát hiện mọi tri
thức bất kỳ mà là phát hiện tri thức nhằm gii quyết tốt nhiệm vụ đề ra.
1.2.1. Gom dữ liệu (Gathering)
Tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá dữ liệu. Đây là bước
được khai thác trong một CSDL, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn
ứng dụng Web.
1.2.2. Trích lọc dữ liệu (Selection)
Ở giai đoạn này lựa chọn những dữ liệu phù hợp với nhiệm vụ phân tích trích rút
từ CSDL.
1.2.3. Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu (Cleansing, Pre-
processing and Preparation)
Giai đoạn thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước
rất quan trọng trong quá trình khai phá dữ liệu. Một số lỗi thường mắc phi trong khi
gom dữ liệu là tính không đủ chặt chẻ, logic. Vì vậy, dữ liệu thường chứa các giá trị vô

nghĩa và không có kh năng kết nối dữ liệu, ví dụ: điểm = -1. Giai đoạn này sẽ tiến
hành xử lý những dạng dữ liệu không chặt chẽ nói trên. Những dữ liệu dạng này được
xem như thông tin dư thừa, không có giá trị. Bởi vậy, đây là một quá trình rất quan
trọng vì dữ liệu này nếu không được “làm sạch” sẽ gây nên những kết qu sai lệch
nghiêm trọng.
1.2.4. Chuyển đổi dữ liệu (Transformation)
Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu được chuyển đổi hay được hợp
nhất về dạng thích hợp cho việc khai phá.
1.2.5. Khai phá dữ liệu (Data Mining)
7
Đây là một tiến trình cốt yếu. Ở giai đoạn này nhiều thuật toán khác nhau đã
được sử dụng một cách phù hợp để trích xuất thông tin có ích hoặc cá mẫu điển hình
trong dữ liệu.
1.2.6. Đánh giá kết quả mẫu (Evaluation of Result)
Đây là giai đoạn cuối trong quá trình khai phá dữ liệu. Ở giai đoạn này, các mẫu
dữ liệu được chiết xuất, không phi bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi
nó còn bị sai lệch. Vì vậy, cần phi ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra
các tri thức cần thiết.
Từ quá trình khám phá tri thức trên chúng ta thấy được sự khác biệt giữa khám
phá tri thức và khai phá dữ liệu. Trong khi khám phá tri thức là nói đến quá trình tổng
thể phát hiện tri thức hữu ích từ dữ liệu. Còn KPDL chỉ là một bước trong quá trình
khám phá tri thức, các công việc chủ yếu là xác định được bài toán khai phá, tiến hành
lựa chọn phương pháp KPDL phù hợp với dữ liệu có được và tách ra các tri thức cần
thiết.
1.3 Các loại dữ liệu có thể khai phá
Các loại dữ liệu có thể được khai phá như sau:
• Cơ sở dữ liệu quan hệ (relational databases): là những CSDL được tổ chức
theo mô hình quan hệ. Hiện nay, các hệ qun trị CSDL đều hỗ trợ mô hình này như:
MS Access, MS SQL Server, Oracle, IBM DB2,
• Cơ sở dữ liệu đa chiều (multidimention structures, data warehouse, data

mart): còn được gọi là nhà kho dữ liệu, trong đó dữ liệu được chọn từ nhiều nguồn
khác nhau và chứa những đặc tính lịch sử thông qua thuộc tính thời gian tường minh
hoặc ngầm định.
• Cơ sở dữ liệu giao tác (transaction databases): là loại dữ liệu được sử dụng
nhiều trong siêu thị, thương mại, ngân hàng,
• Cơ sở dữ liệu quan hệ – hướng đối tượng (object relational databases): mô
hình CSDL này là lai giữa mô hình hướng đối tượng và mô hình CSDL quan hệ.
• Cơ sở dữ liệu không gian và thời gian (spatial, temporal, and time – series
data): chứa những thông tin về không gian địa lý hoặc thông tin theo thời gian.
• Cơ sở dữ liệu đa phương tiện (Multimedia database): là loại dữ liệu có nhiều
trên mạng, bao gồm các loại như âm thanh, hình nh, video, văn bn và nhiều kiểu dữ
liệu định dạng khác.
1.4 Các phương pháp, kỹ thuật chính trong khai phá dữ liệu
Các kỹ thuật KPDL được có thể chia làm 2 nhóm chính:
8
- Kỹ thuật KPDL 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 trong CSDL hiện có. Nhóm kỹ thuật này gồm các phương pháp:
phân nhóm (Clustering), tổng hợp hóa (Summerization), phát hiện sự biến đổi và độ
lệch (Change and deviation detection), phân tích luật kết hợp (Association Rules),
- Kỹ thuật KPDL dự đoán: có nhiệm vụ đư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. Nhóm kỹ thuật này gồm các phương pháp: phân lớp
(Classification), hồi quy (Regression),
1.4.1. Phân lớp và dự đoán (Classification & Prediction)
Là đặt các mẫu vào các lớp được xác định trước. Nhiệm vụ chính là tìm các hàm
ánh xạ các mẫu dữ liệu một cách chính xác vào trong các lớp.Ví dụ một ngân hang
muốn phân loại các khách hành của họ vào trong hai nhóm có nợ hay không nợ, từ đó
giúp họ ra quyết định cho vay hay không cho vay. 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 dữ liệu.
- 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 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 huấn luyện (training
data set). 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
(supervised learning) khác với phân nhóm dữ liệu là học không có giám sát
(unsupervised learning).
- 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 tính độ
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.
Trong kỹ thuật phân lớp chúng ta có thể sử dụng các phương pháp như: Cây
quyết định (Decision Tree), K-Láng giềng gần nhất (k-Nearest Neighbor), Mạng
Nơron (Neural networks), Gii thuật di truyền (Genetic algorithms), Mạng Bayesian
(Bayesian networks), Tập mờ và tập thô (Rough and Fuzzy Sets).
a) Cây quyết định (Decision Tree)
Các kỹ thuật phân lớp sử dụng cây quyết định để phân tách các dữ liệu cho đến
khi mỗi phần chứa đựng hầu hết các mẫu từ một lớp đặc trưng, kết qu của quá trình
sẽ cho ra một cây quyết định. Điểm phân tách trong cây quyết định là một nút (không
phi là nút lá) sẽ sử dụng một số điều kiện để quyết định dữ liệu sẽ được phân tách
như thế nào. Các nút cuối cùng trong cây quyết định chứa đựng các bộ mẫu giống
nhau. Lợi thế của cây quyết định là các thuật toán chạy khá nhanh, với kết qu khá tốt
9
và có thể gii thích được rõ ràng. Tuy nhiên, bất lợi mà các thuật toán của cây quyết
định có thể gặp phi đó là chúng có thể tìm ra các điểm tới hạn cục bộ, đưa ra các kết
qu không đúng.
b) K-láng giềng gần nhất (k-Nearest Neighbor)
Thuật toán này tìm ra các láng giềng gần nhất của mẫu thử nghiệm và quy về các
nhãn lớp của chúng dựa trên các nhãn đa số, điều đó có nghĩa là các mẫu được quy về
cùng lớp khi chúng là lân cận của nhau. Kỹ thuật này cho rằng vị trí trong không gian
đặc trưng hàm ý một quan hệ họ hàng gần gũi ở giữa các nhãn lớp.
Lợi thế của các thuật toán K-Láng giềng gần nhất là dễ thực thi, và kết qu mà nó
đem lại kh năng dễ dàng gii thích. Nhưng một điểm bất lợi là các thuật toán này đưa

ra các mô hình rất lớn với một tập dữ liệu nhỏ.
c) Mạng nơron (Neural networks)
Mạng nơron là mạng được mô phỏng theo bộ não của con người. Đó là một cấu
trúc dữ liệu của các hàm với một hoặc nhiều trọng số đầu vào, với kết qu đầu ra là
một nhãn các lớp. Từng phần riêng biệt của dữ liệu được đưa vào mạng nơron và các
hàm - các trọng số trong mạng nơron bị thay đổi (học - huấn luyện) tùy theo tỷ lệ lỗi
của đầu ra. Phương pháp này thường đưa đến một khong thời gian huấn luyện dài
ngay c khi tập dữ liệu nhỏ.
Lợi thế của mạng nơron là đưa đến các kết qu khá chính xác, nhưng bất lợi của
nó là thường đòi hỏi thời gian huấn luyện dài và đưa ra các kết qu khó hiểu, cứng
nhắc, bị bao bọc trong một hộp đen, khó gii thích tường minh.
d) Giải thuật di truyền (Genetic algorithms)
Các gii thuật di truyền được sử dụng để đưa ra công thức gi thuyết về sự phụ
thuộc giữa các biến. Đối với một gii thuật di truyền phi sử dụng các gii pháp như
cạnh tranh, lựa chọn và kết hợp giữa các tập hợp cá thể.
Lợi thế của Gii thuật di truyền là thường đưa đến các kết qu kiểm tra khá chính
xác, nhưng bất lợi của nó là kết qu có được thông qua việc lập trình tiến hóa và các
kết qu cũng thường cứng nhắc, khó hiểu.
e) Mạng Bayesian (Bayesian networks)
Trong mạng Bayesian sử dụng các đồ thị có hướng, không có chu trình để miêu
t sự phân lớp có thể được. Các đồ thị này cũng có thể được sử dụng để miêu t các tri
thức chuyên gia. Các nút miêu t các biến thuộc tính và các trạng thái (sự kiện) và mỗi
một cạnh miêu t kh năng sự phụ thuộc giữa chúng. Kết hợp với mỗi nút là các lớp
cục bộ có thể và các cung được vẽ từ nút nguyên nhân đến nút bị nh hưởng. KPDL
trong mạng Bayesian bao gồm việc sử dụng đầu vào các tri thức chuyên gia và sau đó
10
sử dụng một CSDL để cập nhật, lọc và ci tiến tri thức đó trong mạng. Các đồ thị mới
có thể là kết qu từ các ci tiến này và nguyên nhân của các mối quan hệ giữa các nút
kết qu có thể được gii thích một cách dễ dàng.
Lợi thế của mạng Bayesian là thường đưa ra các kết qu dễ hiểu, nhưng bất lợi

của nó là cần thu thập được các tri thức chuyên gia truyền thống.
f) Tập mờ và tập thô (Rough and Fuzzy Sets)
Lý thuyết về tập mờ và tập thô dựa trên một sơ sở toán học không chắc chắn. Đối
với các mô hình tập thô, một giới hạn trên và giới hạn dưới sẽ được xác định. Một tập
thô định nghĩa một lớp C là một xấp xỉ bởi hai tập. Tập cận dưới (lower) của C bao
gồm tất c các mẫu dữ liệu, mà dựa vào tri thức của các mẫu dữ liệu có thể quyết định
một mẫu bất kỳ thuộc phân lớp C một cách rõ ràng. Tập cận trên của C bao gồm tất c
các mẫu với giá trị của thuộc tính được mô t không thể thuộc vào phân lớp C. Mô
hình tập mờ không dốc về cực đại cục bộ bằng các thuật toán cây quyết định, và cũng
giống như mô hình tập thô, chúng dùng để đối phó với những điều không chắc chắn
tốt hơn bất kỳ một thuật toán nào khác.
1.4.2. Luật kết hợp (Association Rules)
Luật kết hợp là dạng luật biểu diễn tri thức ở dạng tương đối đơ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 KPDL là tập luật kết hợp tìm được.
Tuy luật kết hợp là một dạng luật khá đơn gin nhưng lại mang rất nhiều ý nghĩa.
Thông tin mà dạng luật này đem lại rất có lợi trong các hệ hỗ trợ ra quyết định. Tìm
kiếm được những luật kết hợp đặc trưng 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.
1.4.3. Khai thác mẫu tuần tự (Sequential / Temporal patterns)
Tương tự như khai thác luật kết hợp nhưng có thêm tính thứ tự và tính thời gian.
Một luật mô t mẫu tuần tự có dạng tiêu biểu X ->Y phn ánh sự xuất hiện của biến cố
X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y. Hướng tiếp cận này có tính dự báo cao.
1.4.4. Phân nhóm- đoạn (Clustering / Segmentation)
Mục tiêu chính của việc phân nhó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 nhóm sao cho mức độ tương tự giữa các đối tượng trong
cùng một nhóm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong các
nhóm khác nhau là nhỏ nhất. Các nhóm có thể tách nhau hoặc phân cấp gối lên nhau
và số lượng các nhóm là chưa biết trước. Một đối tượng có thể vừa thuộc nhóm này,
nhưng cũng có thể vừa thuộc nhóm khác. Không giống như phân lớp dữ liệu, phân

11
nhó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 luyện. Vì thế,
có thể coi phân nhó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). Trong phương
pháp này bạn sẽ không thể biết kết qu các nhóm thu được sẽ như thế nào khi bắt đầu
quá trình. Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các
nhóm thu được. Phân nhóm còn được gọi là học không có giám sát (unsupervised
learning). Phân nhó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
nhó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
KPDL khác.
1.4.5. Hồi quy (Regression)
Hồi quy là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán
có giá trị thực. Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là
ở chỗ thuộc tính để dự báo là liên tục chứ không rời rạc. Việc dự báo các giá trị số
thường được làm bởi các phương pháp thống kê cổ điển chẳng hạn như hồi quy tuyến
tính. Tuy nhiên phương pháp mô hình hóa cũng có thể được sử dụng như cây quyết
định.
1.4.6. Tổng hợp hóa (Summarization)
Là công việc liên quan đến các phương pháp tìm kiếm một mô t tập con dữ liệu.
Kỹ thuật mô t khái niệm và tổng hợp hóa thường áp dụng trong việc phân tích dữ liệu
có tính thăm dò và báo cáo tự động. Nhiệm vụ chính là sn sinh ra các mô t đặc trưng
cho một lớp. Mô t loại này là một kiểu tổng hợp, tóm tắt các đặc tính chung của tất c
hay hầu hết các mục của một lớp. Các mô t đặc trưng thể hiện theo luật có dạng sau:
“Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất c các thuộc tính đã
nêu trong kết luận”.
1.4.7. Mô hình hóa sự phụ thuộc (dependency modeling)
Là việc tìm kiếm một mô hình mô t sự phụ thuộc giữa các biến, thuộc tính theo
hai mức. Mức cấu trúc của mô hình mô t (thường dưới dạng đồ thị), trong đó, các
biến phụ thuộc bộ phận vào các biến khác. Và mức định lượng mô hình mô t mức độ

phụ thuộc. Những phụ thuộc này thường được biểu thị dưới dạng theo luật “nếu - thì” -
nếu tiền đề đúng thì kết luận đúng. Về nguyên tắc, c tiền đề và kết luận đều có thể là
sự kết hợp logic của các giá trị thuộc tính. Trên thực tế, tiền đề thường là nhóm các giá
trị thuộc tính và kết luận chỉ là một thuộc tính. Hơn nữa, hệ thống có thể phát hiện các
12
luật phân lớp trong đó tất c các luật cần phi có cùng một thuộc tính do người dung
chỉ ra trong kết luận.
Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes. Đó là
đồ thị có hướng, không chu trình. Các nút biểu diễn thuộc tính và trọng số của liên kết
phụ thuộc giữa các nút đó.
1.4.8. Phát hiện sự biến đổi và độ lệch (Change and deviation detection)
Tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết
trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu
thực và nội dung mong đợi. Hai mô hình độ lệch hay dùng là lệch theo thời gian và
lệch theo nhóm. Độ lệch theo thời gian là sự thay đổi có ý nghĩa của dữ liệu thời gian.
Độ lệch theo nhóm là sự khác nhau của dữ liệu trong hai tập con dữ liệu, ở đây
xét c trường hợp tập con dữ liệu này thuộc tập con kia. Nghĩa xác định dữ liệu trong
một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không? Theo
cách này, sai sót dữ liệu hay sai lệch so với giá trị thông thường sẽ được phát hiện.
1.5 Ứng dụng của khai phá dữ liệu
KPDL có nhiều ứng dụng trong thực tế, một số ứng dụng điển hình như: Bo
hiểm, tài chính và thị trường chứng khoán: phân tích tình hình tài chính và dự báo giá
của các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn và giá, lãi suất, dữ
liệu thẻ tín dụng, phát hiện gian lận, …
Điều trị y học và chăm sóc y tế: một số thông tin về chẩn đoán bệnh lưu trong
các hệ thống qun lý bệnh viện. Phân tích mối liên hệ giữa triệu chứng bệnh, chẩn
đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc,…).
Sn xuất và chế biến: qui trình, phương pháp chế biến và xử lý xử cố Text
mining & Web mining: phân lớp văn bn và các trang web, tóm tắt văn bn,
Lĩnh vực khoa học: quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm

kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và các bệnh di
truyền,…
Lĩnh vực khác: viễn thông, môi trường, thể thao, âm nhạc, giáo dục,…
1.6 Những thách thức trong khai phá dữ liệu
Mức độ nhiễu cao trong dữ liệu của KPDL. Tiêu chuẩn mạnh mẽ của gii thuật
đối với nhiễu trở nên quan trọng hơn trong khi các tiêu chuẩn khác phần nào có thể
gim bớt.
Kích thước lớn của các tập dữ liệu cần xử lý. Các tập dữ liệu trong KPDL thường
có kích thước cực kỳ lớn. Trong thực tế, kích thước của các tập dữ liệu trong KPDL
thường ở mức tera-byte. Với kích thước như thế, thời gian xử lý thường cực kỳ dài.
13
Thêm vào đó, các gii thuật học truyền thống thường yêu cầu tập dữ liệu được ti toàn
bộ lên trên bộ nhớ để xử lý. Mặc dù kích thước bộ nhớ trong của máy tính đã gia tăng
đáng kể trong thời gian gần đây, việc gia tăng này cũng không thể đáp ứng kịp với
việc tăng kích thước dữ liệu. Vì vậy, việc vận dụng các kỹ thuật xác suất, lấy mẫu,
đệm, song song và tăng dần vào các gii thuật để tạo ra các phiên bn phù hợp với yêu
cầu của KPDL trở nên ngày càng quan trọng.
Các kỹ thuật trong KPDL là hướng tác vụ và hướng dữ liệu. Thay vì tập trung
vào xử lý tri thức dạng kí hiệu và khái niệm như trong máy học, mọi phát triển trong
KPDL thì kết chặt vào các ứng dụng thực tế và đặc tính dữ liệu cụ thể trong các ứng
dụng đó. Ví dụ, luật kết hợp là kỹ thuật KPDL nhằm tìm kiếm những mối liên kết giữa
các món hàng trong các hóa đơn ở siêu thị. Gii thuật học trong kỹ thuật này được phát
triển dựa trên đặc tính về dữ liệu rất đặc thù là ở dạng nhị phân.
14
Chương 2-KHAI THÁC TẬP PHỔ BIẾN & LUẬT KẾT HỢP
2.1 Giới thiệu bài toán kinh điển trong khai phá luật kết hợp
Bài toán giỏ mua hàng trong siêu thị: Gi định chúng ta có rất nhiều mặt hàng, ví
dụ như “bánh mì”, “bơ”, “sữa”, “trứng”, …(coi là tính chất hoặc trường).
Khách hàng khi đi siêu thị sẽ bỏ vào giỏ mua hàng của họ một số mặt hàngnào
đó, và chúng ta muốn tìm hiểu các khách hàng thường mua các mặt hàng nào đồng

thời, chúng ta không 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 đểđ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 mặt hàng gầnnhau, hoặc bán các mặt hàng đó
theo một gói hàng, giúp cho khách hàng đỡ mất công tìm kiếm.
Khai phá luật kết hợp được mô t như sự tương quan của các sự kiện, những sự
kiện xuấthiện thường xuyên một các đồng thời. Nhiệm vụ chính của khai phá luật kết
hợp là phát hiệnra các tập con cùng xuất hiện trong một khối lượng giao dịch lớn của
một cơ sở dữ liệu chotrước.
Bài toán khai phá luật kết hợp là bài toán rất quan trọng trong lĩnh vực khai phá
dữ liệu: Vạch ra các tính chất ẩn, quan trọng của tập dữ liệu.
2.2 Các khái niệm cơ bản
2.2.1 CSDL giao dịch (Transaction Database)
CSDL giao dịch D gồm các giao dịch T là tập các giao dịch t
1
, t
2
, …, t
n
.T = {t
1
, t
2
,
…, t
n
}. T gọi là cơ sở dữ liệu giao dịch (Transaction Database)
Mỗi giao dịch t
i
bao gồm tập các đối tượng I (gọi là itemset). I = {i
1

, i
2
, …, i
m
}.
Một itemset gồm k items gọi là k-itemset.
Chuyên đề sử dụng một CSDL giao dịch giỏ hàng trong bng 2.1 làm ví dụ
xuyên suốt các phần.
TID Produces
1 Bột giặt, nước x Comfort, dầu gội, dầu x, sữa tắm, kem đánh
răng, bàn chi đánh răng, xà bông tắm Lifebuoy
2 Nước rửa chén Sunlight, bột giặt, bàn chi đánh răng, kem đánh
răng, nước x Comfort
3 Lăn ngăn mùi Rexona, dầu gội, sữa tắm, dầu x
4 Nước x Comfort, bàn chi đánh răng, bột giặt, kem đánh răng,
nước rửa chén Sunlight
5 Sữa tắm, dầu x, dầu gội, nước rửa chén Sunlight
6 Kem đánh răng, dầu gội, bàn chi đánh răng, lăn ngăn mùi
Rexona, dầu x, sữa tắm
7 Dầu gội, lăn ngăn mùi Rexona, sữa tắm, dầu x, kem đánh răng,
bàn chi đánh răng, nước rửa chén Sunlight
Bảng 2.1 CSDL giao dịch D
15
Trong đó:
 Giỏ 1: {Bột giặt, nước x Comfort, dầu gội, dầu x, sữa tắm, kem đánh răng,
bàn chi đánh răng, xà bông tắm Lifebuoy}.
 Giỏ 2: {Nước rửa chén Sunlight, bột giặt, bàn chi đánh răng, kem đánh răng,
nước x Comfort}.

 Giỏ 7: {Dầu gội, lăn ngăn mùi Rexona, sữa tắm, dầu x, kem đánh răng, bàn

chi đánh răng, nước rửa chén Sunlight}.
2.2.2 Hạng mục (Ttem)
Hạng mục là mặt hàng trong giỏ hay một thuộc tính nào đó của đối tượng đang
xét trong CSDL (i
k
: k m, với m là số thuộc tính của đối tượng)
2.2.3 Tập các hạng mục (Itemset)
Tập các hạng mục I = {i
1
, i
2
, …, i
m
} là tập hợp các thuộc tính của đối tượng đang
xét trong CSDL.
Ví dụ: I = {Dầu gội, lăn ngăn mùi Rexona, sữa tắm, dầu x, kem đánh răng, bàn
chi đánh răng}.
2.2.4 Giao dịch (Transaction)
Là tập các hạng mục trong cùng một đơn vị tương tác, mỗi giaodịch được xử lý
một cách nhất quán mà không phụ thuộc vào cácgiao dịch khác.
2.2.5 Luật kết hợp(Association Rules)
 Gọi I = {i
1
, i
2
, …, i
m
}là tập các trường gọi là items.
 D là tập giao tác, ở đó mỗi giao tác T
i

là tập các item T
i
⊆ I.
 Ta gọi một giao tác T chứa X nếu X ⊆ T (Với X ⊆ I)
 Mỗi giao tác T
i
có chỉ danh là TID.
Luật kết hợp: Là một mối quan hệ điều kiện giữa hai tập các hạng mục dữ liệu
X và Y theo dạng sau: Nếu X thì Y, và ký hiệu là X Y. Trong đó, X,Y là các tập
hạng mục, X, Y ⊆ I và X Y = . X được gọi là tiền đề và Y được gọi là hệ qu của
luật.
Trong bài toán mua hàng siêu thị, luật kết hợp X Y có thể hiểu rằng những
người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y.
Độ hỗ trợ (Support) và độ tin cây (Confidence) là hai tham số dùng để đo lường
luật kết hợp.
16
Ví dụ: Dầu gội Dầu x (Có nghĩa là nếu khách hàng mua “Dầu gội” thì cũng
mua “Dầu x”).
2.2.6 Độ hỗ trợ (Support)
2.1.1 Đị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ố giữa các bn ghi TD
có chứa tập X và tổng số bn ghi trong D (hay là phần 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 supp(X) (support sẽ tự sinh ra khi cài thuật
toán)
Supp(X) =
Ta có: 0 supp(X) 1 với mọi tập hợp X
2.1.2 Đị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 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: supp(X Y).

Supp(X Y) =
Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là có 50% tổng số
bn ghi chứa XY. Như vậy, độ hỗ trợ mang ý nghĩa thống kê của luật.
Trong một số trường hợp, chúng ta chỉ quan tâm đến những luật có độ hỗ trợ cao.
Nhưng cũng có trường hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn quan tâm.
2.2.7 Tập phổ biến
Tập phổ biến là tập các hạng mục có độ hỗ trợtho mãn độ hỗ trợ tối thiểu
(minsupp - là một giá trị do người dùngxác định trước). Nếu tập mục X có Supp(X)
Minsupp thì ta nóiX là một tập các mục phổ biến
17
Tập phổ biến tối đại (Max-Pattern): Là tập phổ biến và không tồn tại tập nào
baonó là phổ biến (Bayardo – SIGMOD’98).
Ví dụ: Cho CSDL giao dịch D như bng 2.1.
 Với Minsupp = 50%.
 Tập phổ biến tương ứng với ngưỡng minsupp = 50% là: {{dầu gội, dầu x},
{dầu gội, sữa tắm}, {dầu x, sữa tắm}, {kem đánh răng, bàn chi đánh răng}, {dầu
gội, dầu x, sữa tắm}}.
 Tập phổ biến tối đại: {{dầu gội, dầu x, sữa tắm}, {kem đánh răng, bàn chi
đánh răng}}.
Tập phổ biến đóng (Closed Pattern): Là tập phổ biến và không tồn tại tập nào
baonó có cùng độ phổ biến như nó (Pasquier, ICDT’99).
 Tập phổ biến đóng: {{dầu gội, dầu x, sữa tắm}, {kem đánh răng, bàn chi
đánh răng}}.
2.2.8 Độ tin cậy (confidence)
2.1.8.1 Đị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ố 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ý hiệu độ tin cậy của một luật là
Conf(R). Ta có 0 conf(R) 1.
Nhận xét: Độ hỗ trợ và độ tin cậy có xác suất sau:
Supp(X Y) = P(X Y).

Conf(X Y) = P(Y / X) = Supp(X Y) / Supp(X).
Có thể định nghĩa độ tin cậy như sau:
2.1.8.2 Đị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.
Supp(X Y) = P(X Y).
Conf(X Y) = P(Y / X) = Supp(X Y) / Supp(X).
18
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 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ó điều kiện để sy ra
sự kiện Y đạt 90%”. Điều kiện ở đây chính là: “Xy ra sự kiện X”.
Như vậy, độ tin cậy của luật thể hiện sự tương quan (correlation) giữ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 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 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 đượ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 có ích cho công tác qun lý.
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ác luật
có độ 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.
2.3 Một số tính chất cơ bản
2.3.1 Tính chất của tập mục phổ biến (3 tính chất)
2.3.1.1 Tính chất 1 (độ hỗ trợ của tập con)
Với A và B là tập các mục, nếu A B thì sup(A) sup(B) .
Điều này là rõ ràng vì tất c các giao tác của D hỗ trợ B thì cũng hỗ trợ A.
2.3.1.2 Tính chất 2 (một tập chứa một tập không phổ biến thì cũng là tập
không phổ biến)
Nếu một mục trong B không có độ hỗ trợ tối thiểu trên D nghĩa là sup(B)<
minsup thì một tập con A của B sẽ không phi là một tập phổ biến vì sup(B) sup(A)
< minsup (theo tính chất 1).
2.3.1.3 Tính chất 3 (các tập con của tập phổ biến cũng là tập phổ biến)

Nếu mục B là mục phổ biến trên D, nghĩa là sup(B) minsup thì mọi tập con A
của B là tập phổ biến trên D vì sup(A) sup(B) > minsup.
2.3.2 Các tính chất của luật kết hợp (4 tính chất)
2.3.2.1 Tính chất 1 (không hợp các luật kết hợp)
Nếu có X Z và Y Z trong D thì không nhất thiết X Y Z là đúng.
19
Xét trường hợp X Z = và các tác vụ trong D hỗ trợ Z nếu và chỉ nếu chúng hỗ
trợ mỗi X hoặc Y, khi đó luật X Y Z có độ hỗ trợ 0%.
Tương tự : X Y X Z X Y Z.
2.3.2.2 Tính chất 2 (Không tách luật)
Nếu X Y Z thì X Z và Y Z chưa chắc xy ra.
Ví dụ: Trường hợp Z có mặt trong một giao tác chỉ khi c X và Y cũng có mặt,
tức là sup(X Y)= sup(Z), nếu độ hỗ trợ của X và Y đủ lớn hơn sup(X Y), tức là
sup(X) > sup(X Y) và sup(Y) > sup(X Y) thì hai luật riêng biệt sẽ không đủ độ tin
cậy.
Tuy nhiên đo lại: X Y Z X Y X Z.
2.3.2.3 Tính chất 3 (Các luật kết hợp không có tính bắc cầu)
Nếu X Y và Y Z, chúng ta không thể suy ra X Z.
Ví dụ: gi sử T(X) T(Y) T(Z), ở đó T(X), T(Y), T(Z) tương ứng là các giao
dịch chứa X,Y,Z, và độ tin cậy cực tiểu minconf
conf(X Y) = conf(Y Z)=minconf thế thì:
conf(X Y) =minconf2 < minconf vì minconf< 1, do đó luật X Z không đủ độ
tin cậy.
2.3.2.4 Tính chất 4
Nếu A (L - A) không tho mãn độ tin cậy cực tiểu thì luật
B (L -B) cũng không tho mãn, với các tập mục L,A,B và B A L
20
Vì supp(B) sup(A) (theo tính chất 1) và định nghĩa độ tin cậy, chúng ta nhận
được:
Cũng như vậy: Nếu có (L- C) C thì ta cũng có luật (L – D) D, với D C và

D .
Bởi vì D C nên (L - D) (L - C), do đó sup(L - D) sup(L-C)
minconf
2.4 Bài toán khai thác tập phổ biến và luật kết hợp
Nhiệm vụ chính của khai thác luật kết hợp bao gồm 2 bước như sau:
 Bước 1: Tìm tất c các tập phổ biến.
 Bước 2: Phát sinh các luật kết hợp tin cậy từ tập phổ biến.
2.4.1 Tìm tất cả các tập phổ biến
Tìm tất c các tập phổ biến trong CSDL giao dịch D ở bng 2.1 với ngưỡng
minsupp = 50%.
Độ hỗ trợ Các tập danh mục phổ biến
71% {{dầu gội}, {dầu x}, {sữa tắm}, {kem đánh răng}, {bàn chi
đánh răng}}
71% {{dầu gội,dầu x}, {dầu gội,sữa tắm}, {dầu x,sữa tắm}, {kem
đánh răng,bàn chi đánh răng}}
71% {dầu gội,dầu x,sữa tắm}
Bảng 2.2 Tập phổ biến thỏa minsupp = 50%
2.4.2 Phát sinh các luật kết hợp tin cậy từ tập phổ biến.
Bước này là một bước đơn gin hơn. Luật kết hợp được tạo ra từ tất c các tập
phổ biến X tìm thấy ở bước 1 thỏa mãn điều kiện
= 100%.≥≥≥≥≥≥≥≥≥≥≥≥≥≥≥
Độ tin cậy Luật kết hợp
100%
R1: dầu gội dầu x
21
100%
R2: dầu x dầu gội
100%
R3: dầu gội Sữa tắm
100%

R4: sữa tắm dầu gội
100%
R5: dầu x sữa tắm
100%
R6: sữa tắm dầu x
100%
R7: kem đánh răng bàn chi đánh răng
100%
R8: bàn chi đánh răng kem đánh răng
100%
R9: dầu gội dầu x,sữa tắm
100%
R10: dầu x dầu gội,sữa tắm
100%
R11: sữa tắm dầu gội,dầu x
100%
R12: dầu gội,dầu x sữa tắm
100%
R13: dầu gội, sữa tắm dầu x
100%
R14: dầu x,sữa tắm dầu gội
Bảng 2.3 Luật kết hợp thỏa minconf = 100%
2.5 Các thuật toán khai phá dữ liệu bằng luật kết hợp
2.5.1 Thuật toán Apriori
2.5.1.1 Ý tưởng thuật toán Apriori
Thuật toán khai thác các tập phổ biến bằng cách thực hiện nhiều lần duyệt
CSDL. Duyệt lần thứ nhất để tính độ phổ biến của các 1-itemset và xác định các item
phổ biến từ chúng, nghĩa là độ phổ biến thỏa ngưỡng phổ biến tối thiểu. Trong các lần
duyệt sau, thuật toán sẽ kết hợp các itemset phổ biến đã tìm được trong lần duyệt trước
để tìm các tập ứng viên. Sau đó, tính độ phổ biến thực sự của các tập ứng viên này

nhằm xác định itemset nào trong các tập ứng viên là tập phổ biến thực sự. Các itemset
22
này trở thành các hạt giống cho lần duyệt tiếp theo. Quá trình này thực hiện cho đến
khi không còn một tập phổ biến mới nào nữa được sinh ra.
Thuật toán Apriori sinh ra các tập ứng viên trong một lần duyệt bằng cách chỉ sử
dụng các tập phổ biến đã được khai thác trong lần duyệt trước mà không cần quan tâm
đến các giao dịch trong cơ sở dữ liệu. Các ứng viên k-itemset được sinh ra bằng cách
kết hợp các tập phổ biến thuộc (k-1)-itemset. Thuật toán Apriori tỉa ứng viên bằng
cách loại bỏ các ứng viên có chứa tập con không phi là tập phổ biến.
Qui ước: Gi sử các item trong mỗi giao dịch được lưu giữ theo thứ tự từ điển. L
k
là tập các k-itemset phổ biến. C
k
là tập các ứng viên có k-itemset. Mỗi phần tử của L
k
và C
k
có 2 thành phần: itemset và độ phổ biến tương ứng.
2.5.1.2 Thuật toán Apriori
Bước 1: Cho trước ngưỡng độ hỗ trợ 0 1. Tìm tất c các đối tượng xuất
hiện –thường xuyên. Tập hợp tìm được ký hiệu là L
1
.
Bước 2: Tiến hành ghép đôi các phần tử của L
1
(không cần để ý đến thứ tự), được
tập C
2
, gọi là tập các ứng cử viên có 2 phần tử. Sở dĩ chỉ gọi là “ứng cử viên”, vì chưa
chắc chúng đã là – thường xuyên. Sau khi 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à L
2
.
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 – 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ừ L
1
). Gọi nó là tập C
3
. Lưu
ý là nếu {A, B, C} muốn là “ứng cử viên” thì các tập 2 phần tử {A, B},{B,C},{C, A}
đều phi là – thường xuyên, tức là chúng đều là phần tử của tập L
2
. Ta đi kiểm tra
trong tập C
3
và lọc ra đượ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ý hiệu là L
3
.
23
Bước 4: Tiến hành tìm các ứng cử viên có n phần tử. Gọi tập của chúng là tập C
n
và từ đây, lọc ra L
n
là tập tập các tập hợp – thường xuyên có n phẩn tử.
2.5.1.3 Mã giả thuật toán Apriori
Đoạn mã gi sau đây trình bày thuật toán Apriori: L
1
chứa các 1-itemset thỏa
minSupCount(dòng 1), từ dòng 2 đến dòng 6 là quá trình lặp đi lặp lại của việc sinh

ứng viên và đếm độ phổ biến của các ứng viên bằng cách xét chúng với các giao dịch
trong CSDL. Việc sinh ứng viên (hàm Apriori-gen) sử dụng tính chất apriori để tỉa các
ứng viên (dòng 14 - 15), việc sinh các ứng viên từ
1

2
phi thỏa mãn
1

2
có cùng
tiền tố là (k-2)-itemset (dòng 12 – 13).
Input: CSDL giao dịch D và ngưỡng độ phổ biến minSupCount.
Output: F
I
chứa danh sách các tập phổ biến trong D thỏa minSupCount.
1) L_1 = { j I : (j) minSupCout}
2)for ( k = 2; L
k-1
; k++) do
3) Ck = Apriori_gen(L
k-1
)
4)for each t D do
5)for each c
k
C
k
do
6)if ck t then c

k
.count++
7) L
k
= {c
k
C
k
| c
k
.count minSupCout}
8) F
I
= U
k
L
k
Apriori_gen(L
k-1
)
9) C
k
=
24
10)for each�
1
L
k-1
do
11)for each�

2
L
k-1
do
12)if (�
1
[1] =
2
[1]) (�
1
[2] =
2
[2]) (�
1
[k-1] =
2
[k-1]) then
13) c = �
1

2
// Bước kết hợp
1

2
sinh ra ứng viên c
14)if (Has_infrequent_subset(c, L
k-1
)= False then
15) Add s into C

k
16)return C
k
Has_infrequent_subset(c, L
k-1
)
17)foreach (k -1)-itenset s c do
18)if s L
k-1
then
19)return True
20)return False
2.5.1.4 Thách thức của thuật toán Apriori
Thuật toán kinh điển Apriori tìm tập mục phổ biến thực hiện tốt bởi rút gọn kích
thước các tập ứng cử nhờ kỹ thuật tỉa. Tuy nhiên, trong tình huống mà số các giao tác
nhiều, hoặc với độ hỗ trợ cực tiểu thấp, các thuật toán Apriori gặp phi 2 vấn đề làm
nh hưởng tới tốc độ :
 Vấn đề khi số lượng các tập ứng cử cực lớn. Ví dụ: nếu có 10
4
tập phổ biến 1-
itemset thì thuật toán Apriori sẽ phi tạo ra 10
7
các ứng cử 2– itemset; để khám phá
được một số mẫu phổ biến kích thước 100, chẳng hạn tập {a
1
,a
2
, ,a
100
} thì nó cần tạo

ra 2
100
≈ 10
30
các ứng cử .
 Vấn đề phi truy suất xuống cơ sở dữ liệu nhiều lần để kiểm tra tập rất lớn các
ứng cử thỏa độ hỗ trợ tối thiểu. Số lần duyệt CSDL của thuật toán Apriori bằng độ dài
của mẫu phổ biến dài nhất tìm được. Việc này làm nh hưởng tới hiệu suất máy tính.
25

×