HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
Tiểu luận
Chuyên đề công nghệ phần mềm
“Khai phá dữ liệu với Association Rule”
Giáo viên : GS.TS Trần Đình Quế
Sinh viên: Bùi Minh Hoài
HÀ NỘI, 4/2011
Association Rule
Mục lục
Chương 1: Giới thiệu đề tài 4
1.Đặt vấn đề 4
2.Mục đích 4
3.Nội dung tiểu luận 5
Chương 2: Association Rule 6
I.Một số khái niệm về data mining 6
1.Khai phá dữ liệu (data mining) 6
2.Các tác vụ khai phá dữ liệu (data mining tasks/functions) 7
II.Association Rule 8
1.Association Rule 8
3. Một số độ đo 10
4.Tiến trình 11
2)FP-growth algorithm 11
FP-growth (frequent pattern growth) sử dụng một mở rộng cấu trúc prefix-tree để lưu
trữ dữ liệu ở dạng nén. FP-growth chấp nhận hướng tiếp cận divide-and-conquer để
phân tích công việc khai phá và cở sở dữ liệu. Nó sử dụng phương thức khung mẫu
tăng dần để tránh tốn kém trong tiến trình đưa ra các ứng cử và kiểm thử được sử
dụng trong Apriori 11
3)GUHA procedure ASSOC 11
GUHA là một phương thức chung cho phân tích tìm kiếm dữ liệu dựa trên lý thuyết
của phép tính quan sát (observational calculi). Các thủ tục ASSOC là một phương
pháp GUHA, có ý nghĩa cho việc đưa ra các association rule sử dụng using
fast bitstrings operations. Khai phá association rule bằng phương thức này tổng quát
hơn những output đưa ra bởi thuật tóan apriori, ví dụ các item có thể được kết nói
với cả hai conjunction và disjunction, mối quan hệ giữa các tiền tố và hậu tố của một
rule không bị giới hạn bởi minsup và minconfi như là apriori: một sự kết hợp tùy ý của
các độ đo support có thể được sử dụng 11
4)One-attribute-rule 12
One-attribute-rule hoặc OneR là một thuật tóan cho việc tìm kiếm các association
rules. Theo Ross, association rule rất đơn giản, liên quan chỉ đến một thuộc tính
trong phần điều kiện, thường làm việc tốt với dữ liệu thực tế. Ý tưởng của thuật tóan
Bùi Minh Hoài_D07CNPM1 Page 2
Association Rule
OneR để tìm ra một thuộc tính được sử dụng để phân loại một điểm dữ liệu mới, cái
mà làm cho dự đoán ít lỗi nhất 12
Ví dụ: để phân loại ôtô mà bạn không biết trước, phải áp dụng rule: nếu nhanh thì là
ô tô thể thao trái với rule nhiều thuộc tính trong rang buộc: nếu nhanh và màu đổ thì
là xe ô tô thể thao 12
Thuật toán có thể được mô tả với các bước như sau: 12
Cho mỗi thuộc tính A 12
Cho mỗi giá trị V của thuộc tính này, tạo một rule 12
1.Đếm các lớp thường xuất hiện 12
2.Tìm lớp xuất hiện thường xuyên nhất, c 12
3.Tạo một rule “nếu A=V thì C=c” 12
Tính tỉ lệ lỗi của rule này 12
Chọn thuộc tính mà rule của nó có tỉ lệ lỗi thấp nhất 12
III.Apriori Algorithm 12
1.Giới thiệu thuật toán 12
3.Thuật tóan 13
4.Ví dụ 15
5.Nhận xét về thuật toán Apriori 19
Tài liệu tham khảo 20
Bùi Minh Hoài_D07CNPM1 Page 3
Association Rule
Chương 1: Giới thiệu đề tài
1. Đặt vấn đề
Trong vài thập kỉ gần đây, cùng với sự phát triển của xã hội, khoa học kĩ thuật, sự
phát triển của công nghệ thông tin, việc sinh và lưu trữ dữ liệu cũng có nhiều kĩ
thuật tiến bộ. Tuy nhiên lượng dữ liệu ngày càng nhiều nên việc lưu trữ trở nên khó
khăn hơn và đòi hỏi phương pháp lưu trữ với hiệu quả tốt nhất.Thay vì việc phải lưu
trữ một lượng nhiều dữ liệu bao gồm cả dữ liệu có thể không cần thiết, người ta
thực hiện quá trình biến đổi dữ liệu thành thông tin có ích hay còn gọi là quá trình
khai phá dữ liệu(data mining) để biến dữ liệu thành thông tin hay tri thức phục vụ
cho các ứng dụng và loại bỏ được bớt các dữ liệu không cần thiết. Tùy theo loại dữ
liệu, loại tri thức muốn thu được từ dữ liệu mà ta sử dụng các phương pháp khai phá
phù hợp.
Bên cạnh đó khai phá dữ liệu còn giúp quá trình tìm thông kiếm thông tin tốt hơn
với người dùng hay việc chăm sóc khách hàng, bán hàng tốt hơn đối với các doanh
nghiệp. Chúng ta rất quen thuộc với việc tìm kiếm trên google, chúng ta đã thử đặt
câu hỏi tại sao google có thể tìm kiếm một cách nhanh và thông minh đến vậy và dữ
liệu vô cùng phong phú trên tất cả các mặt các lĩnh vực của đời sống xã hội?
Hay việc mua bán sách trực tuyến trên trang nổi tiếng amazon.com, bạn để ý rằng
mỗi khi bạn xem thông tin chi tiết về một quyển sách nào đó trên site thì bao giờ
cũng kèm theo 1 danh sách các quyển sách gợi ý mua kèm theo quyển bạn đang
xem, một thống kê cho thấy có tới trên 70% đầu sách được người dùng mua thêm
thông qua hình thức gợi ý này. Vậy điều gì làm cho việc bán sách hiệu quả đến như
vậy?
Tất cả những điều đạt được như vậy là nhờ công nghệ khai phá dữ liệu (data
mining). Một trong những tác vụ khai phá dữ liệu hay được sử dụng đặc biệt trong
thương mại điện tử là Association rule, bài tiểu luận này em xin trình bày về “Khai
phá dữ liệu với Association Rule”.
2. Mục đích
Dữ liệu là cần thiết cho tất cả các nghành, các lĩnh vực chính vì vậy lưu trữ dữ
liệu, khai phá dữ liệu là nhu cầu của mọi ngành, mọi lĩnh vực. Quá trình khai phá
dữ liệu sẽ thu được những thông tin giá trị để phát triển các chiến lược kinh doanh
mới, mở rộng thị trường hay một hướng nghiên cứu mới. Thương mại điện tử là
một lĩnh vực đang rất phát triển, lượng dữ liệu phải lưu trữ tương đối lớn, cũng như
các chiến lược kinh doanh phải thườg xuyên thay đổi đáp ứng được nhu cầu xã hội
Bùi Minh Hoài_D07CNPM1 Page 4
Association Rule
cũng như cạnh tranh với các đơn vị khác. Việc khai phá dữ liệu trong thương mại
điện tử là rất cần thiết và có hiệu quả rõ rệt.
Vậy khai phá dữ liệu trong thương mại điện tử như thế nào ? Chúng ta được biết
trong khai phá dữ liệu có rất nhiều tác vụ (cách) khai phá khác nhau. Ví dụ như :
Frequent Patterns, Association, Correlations, Classification, Prediction, Cluster
Analysis…Mỗi tác vụ lại có những thuật tóan tương ứng để phục vụ cho quá trình
khai phá : ……Với dữ liệu đầu vào là dữ liệu được lưu trữ với nhiều loại khác
nhau : database, data warehouse, flat files, transactional database…
Khai phá dữ liệu luật kết hợp (association rule mining) là kĩ thuật khai phá dữ liệu
chủ yếu được ứng dụn trong thương mại điện tử với cơ sở dữ liệu khai phá là
transactional database. Trong bài tiểu luận này em sẽ tìm hiểu về association rule,
và trọng tâm là các thuật tóan đã được xây dựng để khám phá ra thông tin_các rule
từ cơ sở dữ liệu đã được lưu trữ.
3. Nội dung tiểu luận
Bài tiểu luận với nội dung chính trình bày về khai phá dữ liệu luật kết hợp-một
trong số rất nhiều tác vụ khai phá dữ liệu khác.
Phần đầu là phấn khái quát một số vấn đề về data mining như: khái niệm, các tác vụ
khai khá dữ liệu, các loại tri thức có thể đạt được sau quá trình khai phá.
Phần hai em sẽ đi sâu vào trình bày về Association rule, về các định nghĩa cũng như
các độ đo được sử dụng trong luật kết hợp. Một số thuật toán sẽ được giới thiệu và
trình bày thuật tóan cơ bản của association rule là Apriori Algorithm.
Association rule được ứng dụng chủ yếu trong lĩnh vực thương mại điện tử vì vậy
các ví dụ tương ứng trong bài tiểu luận em liên quan đến các dữ liệu của một siêu
thị, các ứng dụng của siêu thị đối với association rule để lấy các thông tin cần thiết
từ dữ liệu được lưu trữ để thực hiện các chiến lược của họ.
Bùi Minh Hoài_D07CNPM1 Page 5
Association Rule
Chương 2: Association Rule
I. Một số khái niệm về data mining
1. Khai phá dữ liệu (data mining)
Khám phá tri thức (knowledge discovery) là tiến trình khai phá tri thức từ dữ
liệu bao gồm chuỗi các bước thực hiện một các tuần tự: làm sạch và tích hợp dữ
liệu(data cleaning & integration), lựa chọn và biến đổi dữ liệu(data selection &
transformation), khai phá dữ liệu(data mining), đánh giá mẫu và biểu diễn tri
thức(evaluation & presentation).
Data mining là một bước trong tiến trình khám phá tri thức tuy nhiên……Vì vậy có
nhiều thuật ngữ khác nhau dung tương đương với data mining như: knowledge
discovery/mining in data/databases (KDD), knowledge extraction, data/pattern
analysis, data archeology, data dredging, information harvesting, business
intelligence
Vậy có thể hiểu một cách cụ thể hơn: Data mining là một quá trình trích xuất thông
tin có mối quan hệ hoặc có mối tương quan nhất định từ một kho dữ liệu lớn nhắm
mục đích dự đoán các xu thế, các hành vi trong tương lai hoặc tìm kiếm những tập
thông tin hữu ích mà bình thường không nhận diện được.
Lượng lớn dữ liệu có sẵn để khai phá?
Là bất kì loại dữ liệu được lưu trữ hay lưu trữ tạm thời, có cấu trúc hay các
bản ghi có cấu trúc hay phi cấu trúc đều có thể là dữ liệ để khai phá.
Là dữ liệu được luư trữ như: các tập tin truyền thống, các cơ sở dữ liệu quan
hệ, các cơ sở dữ liệu giao tác hay kho dữ liệu, các cơ sở dữ liệu hướng ứng
dụng….
Tri thức đạt được từ quá trình khai phá dữ liệu?
Với cùng một lượng dữ liệu đầu vào, với mỗi người dung khác nhau, mục đích sử
dụng khác nhau sẽ tiến hành khai phá trên các khía cạnh khác nhau để thu được tri
thức khác nhau. Tri thức đạt được có tính mô tả hay dự đóan tùy thuộc vào quá trình
khai phá cụ thể. Ngoài ra tri thức đạt được có thể phân theo cấu trúc: có cấu trúc,
bán cấu trúc hay phi cấu trúc. Tri thức đạt được từ quá trình khai phá dữ liệu có thể
được dung trong việc hỗ trợ ra quyết định, quản lý quy trình, quản lý thông tin, xử
lý truy vấn….
Bùi Minh Hoài_D07CNPM1 Page 6
Association Rule
2. Các tác vụ khai phá dữ liệu (data mining tasks/functions)
Từ dữ liệu đã có, quá trình khai phá dữ liệu tìm ra những mối quan hệ giữa các dữ
liệu theo một đặc điểm nào đó tùy theo cách khai phá gọi là các tác vụ khai phá dữ
liệu. Một số tác vụ khai phá dữ liệu như:
Kết hợp: tìm ra các luật như: “inside(x, city) → near(x, highway)”
Phân cụm: Nhóm dữ liệu thành dạng lớp mới, ví dụ: cụm houses để xác định
các mô hình phân phối.
Cây quyết định: Ưu tiên các nhân tố quan trọng để xây dựng nên luật kinh
doanh trong định dạng cây.
Mạng nơron: Ưu tiên các yếu tố quan trọng để xây dựng nên luật kinh
doanh ở một thứ hạng nặng.
Thuật toán di truyền: Độ thích nghi của một luật được đánh giá bởi sự phân
loại chính xác trên tập training set.
Khai phá web: Khai phá web để phân tích tiện ích của web
Có năm thành phần cơ bản để đặc tả một tác vụ khai phá dữ liệu:
Dữ liệu cụ thể sẽ được khai phá (task-relevant data): là phần dữ liệu từ các
dữ liệu nguồn được quan tâm tương ướng là các thuộc tính hay chiều dữ liệu
được quan tâm. Bao gồm: tên kho dữ liệu/ cơ sở dữ liệu, các bảng dữ liệu
hay các khối dữ liệu, các điều kiện chọn dữ liệu, các tiêu chí gom nhóm dữ
liệu.
Loại tri thức sẽ đạt được (kind of knowledge): loại tri thức đạt được sẽ tương
ứng với tác vụ khai phá dữ liệu sẽ thực thi. Một số loại tri thức đạt được như:
mô hình phân lớp, mô hình dự đóan, mô hình gom cụm, mô hình phân tích
phần tử biên, mô hình phân tích tiến hóa…
Tri thức nền (background knowledge)
Các độ đo (interestingness measures): các độ đo được đưa ra bởi người dung
thường đi kèm với các ngưỡng giá trị, giúp cho quá trình khai phá hoặc đánh
giá các mẫu được tìm thấy. Các độ đo được đưa ra tương ứng với các loại tri
thức đạt được và do đó tương ứng với các tác vụ khai phá dữ liệu được thực
thi. Các độ đo thường được đưa ra để kiểm tra tính đơn giản, tính chắc chắn,
tính hữu dụng của tri thức đạt được.
Bùi Minh Hoài_D07CNPM1 Page 7
Association Rule
Các kỹ thuật biểu diễn tri thức/trực quan hóa mẫu (pattern visualization and
knowledge presentation): thể hiện các tri thức tìm thấy đến người dung, ví dụ
như: luật, bảng, báo cáo, biểu đồ, đồ thị, cây, khối.
Với mỗi tác vụ khai phá dữ liệu từ dữ liệu đầu vào để có tri thức đầu ra đều cần có
những giải thuật riêng. Mỗi giải thuật khai phá dữ liệu phải có bốn thành phần cơ
bản sau:
Cấu trúc mẫu hay cấu trúc mô hình (model or pattern structure):
Hàm tỉ số (score function): Hàm tỉ số là hàm xác định một cấu trúc mô
hình/mẫu đáp ứng tập dữ liệu đã cho tốt ở mức độ nào đó. Hàm tỉ số cho biết
liệu một mô hình có tốt hơn các mô hình khác hay không. Một vài hàm tỉ số
thông dụng: likelihood, sum of squared errors, misclassification rate…
Phương pháp tìm kiếm và tối ưu hóa (optimization and search method):
phương pháp này nhằm xác định cấu trúc và giá trị các thông số đáp ứng tốt
nhất hàm tỉ số từ dữ liệu sẵn có
Chiến lược quản lý dữ liệu (data management strategy): hỗ trợ cách dữ liệu
được lưu trữ , đánh chỉ mục và truy xuất.
II. Association Rule
Trong các tác vụ khai phá dữ liệu ta đã nêu ra ở phân trên có một tác vụ là khai
phá luật kết hợp (Association Rule), trong phần này ta sẽ tìm hiểu sâu hơn về tác vụ
này về các đặc điểm, các thuật tóan sử dụng để khai phá hay những ứng dụng của
nó trong thực tế.
1. Association Rule
Association Rule là lớp các quy tắc quan trong trong dữ liệu. Khai phá
association rule là công cụ khai phá dữ liệu cơ bản, nó có lẽ là được phát minh quan
trọng nhất và nghiên cứu rộng rãi nhất trên cơ sở dữ liệu và cộng đồng khai phá dữ
liệu. Mục tiêu của nó là tìm ra tất cả các mối quan hệ liên quan xảy ra được gọi là
association(kết hợp) giữa các mục dữ liệu (item). Association được giới thiệu đầu
tiên vào năm 1993 bởi Agrawal et al, thu hút được rất nhiều sự chú ý. Nhiều thuật
tóan hiệu quả, nhiều sự mở rộng và các ứng dụng đã được báo cáo. Ta có thể đưa ra
một ví dụ về association rule:
Clothes → Milk, Chicken [sup = 20%, conf = 100%]
(rule này thể hiện rằng trong 20% khách hang mua clothes, milk và chicken cùng
với nhau và 100% khách hang mua clothes sẽ mua milk và chicken )
Bùi Minh Hoài_D07CNPM1 Page 8
Association Rule
Ứng dụng cổ điển của association rule là phân tích dữ liệu giỏ hàng trong thương
mại điện tử, làm thế nào để khám phá ra mỗi quan hệ giữa các mặt hàng đã được
mua bởi khách hàng. Dựa trên ứng dụng này, ngày nay association rule được ứng
dụng trong nhiều lĩnh vực khác nhau như: khai phá sử dụng web, intrusion detection
(phát hiện các xâm phạm) and bioinformatics (tin sinh học).
2. Một số định nghĩa
Một số vấn đề của khai phá association rule được đưa ra bởi Agrawal et al. như sau:
II.1 Transaction & itemset
Cho tập I={i
1
, i
2
,… ,i
n
} là một tập n phần tử gọi là item
T={ t
1
, t
2
,… ,t
n
} là tập các giao dịch gọi là database (transaction)
Mỗi giao dịch trên T có một mã giao dịch(ID) duy nhất và chứa một tập con các
item trên I được gọi là itemset.
Một rule được định nghĩa như một phép kéo theo có dạng X →Y mà ở đó X, Y ⊆ I
và X ∩ Y =∅. X, Y là tập các item trong itemset và X được gọi là antecedent (tiền
tố), Y được gọi là consequent (hậu tố) của mỗi rule tương ứng.
Để hiểu rõ hơn về các khái niệm đã được đưa ra chúng ta xét một ví dụ nhỏ cho
miền thương mại điện tử.
Ta có một tập các item I={milk, break, butter, beer} và một cơ sở dữ liệu nhỏ chứa
các item (1_các item có xuất hiện trong giao dịch, 0_item không xuất hiện trong
giao dịch) được biểu diễn như sau :
Transaction
ID
milk bread Butter Beer
1 1 1 0 0
2 0 0 1 0
3 0 0 0 1
4 1 1 1 0
5 0 1 0 0
Một rule có thể được đưa ra : {butter, bread}→{milk} có ý nghĩa là nếu butter và
bread được mua khách hàng sẽ mua sữa.
2.2 Frequent itemset & Association rule
Bùi Minh Hoài_D07CNPM1 Page 9
Association Rule
Frequent itemset: là tập các item có xác suất xuất hiện cùng nhau trong các giao
dịch thỏa mãn một ngưỡng nào đó của minsupport.
Association Rule: một association rule là một rule được xác định trên tập các
frequent itemset
3. Một số độ đo
Để lựa chọn rule thích hợp từ tập tất cả các rule có thể, ràng buộc trên các độ đo
giá trị được đưa ra từ yêu cầu của người dùng theo ứng dụng cụ thể. Ràng buộc tốt
nhất được biết đến là giá trị nhỏ nhất của support và confidence
Support
Support hay supp(X) của một itemset X được định nghĩa là tỉ lệ của giao dịch trên
tập cơ sở dữ liệu mà chứa tập itemset đó. Nói một cách khác: support của luật,
XY, là số % của các transaction trong T mà chứa X ∪ Y.
Support =
Trong đó:(X∪Y).count là số giao dịch chứa đồng thời cả tập itemset X và itemset Y
n là tất cả giao dịch trong T mà xét đến
support là một độ đo rất hữu ích vì nếu nó quá nhỏ, rule chỉ xảy ra một cách ngẫu
nhiên. Hơn nữa, trong môi trường nghiệp vụ nếu số lượng giao dịch lấy ra để xết
không đủ lớn thì sẽ không hiệu quả trong việc đưa ra rule phục vụ cho một ứng
dụng nào đó.
confidence
confidence của rule, X Y, là % các transaction trong T mà chứa X cũng chứa Y. Nó có
thể được xem như ước lượng của xác suất có điều kiện, Pr(Y∣X) được tính như sau:
Confidence =
lift
lift của một rule X Y là tỉ lệ quan sát được X và Y không phụ thuộc vào nhau
được tính như sau:
Bùi Minh Hoài_D07CNPM1 Page 10
Association Rule
conviction: là tỉ số
4. Tiến trình
Association rule thường được yêu cầu để thỏa mãn một giá trị minimum support và
minimum confidence được đưa ra bởi người dùng tại cùng một thời điểm.
Association rule được chia làm hai bước:
1) Bước 1: Sử dụng minimum support để tìm ra tất cả frequent itemset trong cơ
sở dữ liệu.
2) Bước 2: Từ frequent itemset đã tìm được ở bước 1 và ràng buộc về giá trị
minimum confidence đưa ra các định dạng rule.
5. Một số thuật tóan
Một số thuật tóan được sử dụng để tìm tập các Frequent itemset và đưa ra
Association rule từ tập dữ liệu ban đầu
1) Apriori algorithm
Là thuật tóan tốt nhất được biết để khai phá association rule. Nó sử dụng tìm kiếm
theo chiều rộng đểtính tóan các support trên tập itemset và sử dụng chức năng đưa
ra các ứng cử viên với tính chất apriori hay downward closure
2) FP-growth algorithm
FP-growth (frequent pattern growth) sử dụng một mở rộng cấu trúc prefix-
tree để lưu trữ dữ liệu ở dạng nén. FP-growth chấp nhận hướng tiếp cận
divide-and-conquer để phân tích công việc khai phá và cở sở dữ liệu. Nó
sử dụng phương thức khung mẫu tăng dần để tránh tốn kém trong tiến
trình đưa ra các ứng cử và kiểm thử được sử dụng trong Apriori.
3) GUHA procedure ASSOC
GUHA là một phương thức chung cho phân tích tìm kiếm dữ liệu dựa trên lý
thuyết của phép tính quan sát (observational calculi). Các thủ tục ASSOC là
một phương pháp GUHA, có ý nghĩa cho việc đưa ra các association rule
sử dụng using fast bitstrings operations. Khai phá association rule bằng
phương thức này tổng quát hơn những output đưa ra bởi thuật tóan
apriori, ví dụ các item có thể được kết nói với cả hai conjunction và
disjunction, mối quan hệ giữa các tiền tố và hậu tố của một rule không
Bùi Minh Hoài_D07CNPM1 Page 11
Association Rule
bị giới hạn bởi minsup và minconfi như là apriori: một sự kết hợp tùy ý
của các độ đo support có thể được sử dụng.
4) One-attribute-rule
One-attribute-rule hoặc OneR là một thuật tóan cho việc tìm kiếm các
association rules. Theo Ross, association rule rất đơn giản, liên quan chỉ
đến một thuộc tính trong phần điều kiện, thường làm việc tốt với dữ liệu
thực tế. Ý tưởng của thuật tóan OneR để tìm ra một thuộc tính được sử
dụng để phân loại một điểm dữ liệu mới, cái mà làm cho dự đoán ít lỗi
nhất.
Ví dụ: để phân loại ôtô mà bạn không biết trước, phải áp dụng rule: nếu nhanh
thì là ô tô thể thao trái với rule nhiều thuộc tính trong rang buộc: nếu
nhanh và màu đổ thì là xe ô tô thể thao.
Thuật toán có thể được mô tả với các bước như sau:
Cho mỗi thuộc tính A
Cho mỗi giá trị V của thuộc tính này, tạo một rule
1. Đếm các lớp thường xuất hiện
2. Tìm lớp xuất hiện thường xuyên nhất, c
3. Tạo một rule “nếu A=V thì C=c”
Tính tỉ lệ lỗi của rule này
Chọn thuộc tính mà rule của nó có tỉ lệ lỗi thấp nhất.
III. Apriori Algorithm
1. Giới thiệu thuật toán
Thuật toán Apriori là một trong những thuật tóan dùng để đưa ra các association
rule như đã trình bày ở trên, nó là thuật tóan tốt nhất trong các thuật tóan tìm kiếm
frequent itemset và association rule từ tập các item. Thuật tóan gồm hai bước:
a) Đưa ra các tập frequent itemset
b) Đưa ra các association rule
Input:
• Thông tin các giao dịch được lưu trong CSDL: mã giao dịch và các item
trong mỗi giao dịch
• Giá trị minsup
• Giá trị minconf
Bùi Minh Hoài_D07CNPM1 Page 12
Association Rule
Output:
• Các tập frequent itemset (bước 1)
• Các rule (bước 2)
3. Thuật tóan
a. Đưa ra Frequent Itemset
Ý tưởng: Thuật tóan tìm ra các tập Frequent Itemset dựa trên tích chất apriori hay
downward closure: nếu một tập itemset thỏa mãn giá trị minsup thì mọi tập con
không rỗng của nó cũng thỏa mãn minsup. Tích chất này đơn giản và dễ hiểu, ta có
thể thấy được rằng nếu một giao dịch chứa một tập các item X thì nó phải chứa bất
kì tập con không rỗng nào của X. Tích chất này cùng với giá trị minsup đã giúp loại
bỏ một số lượng lớn các itemset không phải là frequent.
Tìm kiếm các tập Frequent Itemset dựa theo thuật tóan tìm kiếm thông minh và giả
sử các item trong tập I được lưu trữ theo thứ tự bảng chữ cái.
Thuật tóan:
Thuật toán sinh tất cả các frequent itemset bằng cách quét qua dữ liệu nhiều lần.
Trong lần quét đầu tiên nó tính support của các tập chỉ gồm 1 item và xác định xem
item nào là frequent. Ta được F
1
là tập các frequent 1-itemset. Để xác định tập
frequent itemset k item (level 3) thực hiện 3 bước:
1.
Từ tập frequent itemset level k-1 F
k-1
đưa ra các candicate itemset C
k
2.
Tính các support cho các candicate itemset c trong C
k
3.
Dựa vào giá trị minsup xác định được các candicate itemset nào là frequent
Đưa ra các candicate itemset: gồm hai bước joint và pruning
Joint step : bước này kết hợp hai frequent (k-1)-itemset để tạo một cadicate itemset
c có thể. Hai frequent itemset f
1
và f
2
khác nhau duy nhất ở item cuối cùng . c được
thêm vào tập các candicate C
k
.
Pruning step : một cadicate c từ bước joint step có thể ko phải là cadicate cuối cùng.
Bước này xác định liệu tất cả k-1 tập con của c (c có k item) là thuộc vào F
k-1
. Nếu
có bất kì tập con nào không thuộc F
k-1
, thì c ko được coi là candicate và nó sẽ bị loại
khỏi C
k
.
Bùi Minh Hoài_D07CNPM1 Page 13
Association Rule
Mã giả:
Algorithm Apriori(T)
1. C
1
← init-pass(T) //the first over T
2. F
1
← {f | f Є C
1
, f.count/n >= minsup }//n là số transaction trong T
3. For(k=2; F
k-1
≠ ᴓ; k++) do // subsequent pass over T
4. C
k
← candicate-gen(F
k-1
);
5. For each transaction t Є T do // scan the data once
6. For each candicate c Є C
k
do
7. If c is contained in t then
8. C.count++;
9. Endfor
10. Endfor
11. Return F← ;
Function candicate-gen(F
k-1
)
1.
C
k
← ; // tập candicate khởi tạo
2.
For all f
1
, f
2
F
k-1
// tìm tất cả các cặp của frequent itemset
3.
With f
1
= {i
1
, i
2, …,
i
k-2
, i
k-1
}
4.
And f
2
= {i
1
, i
2, …,
i
k-2
, i
‘
k-1
} // f
1
, f
2
khác nhau mỗi phần tử cuối cùng
5.
And i
k-1
< i
‘
k-1
do // theo thứ tự từ điển
6.
c ← {i
1
, i
2, …,
i
k-2
, i
k-1
, i
‘
k-1
} // f
1
f
2
7.
C
k
← C
k
{c}
8.
For each (k-1)-subset s of c do
9.
If(s F
k-1
) then //
10.
Delete c from C
k
; // xóa c khỏi C
k
11.
Endfor
12.
Endfor
13.
Return C
k
;
b. Đưa ra các Association Rule
Kết thúc bước 1 ta thu được các tập frequent itemset ở các level khác nhau, đến
bước 2 thực hiện việc đưa ra các rule thỏa giá trị minconf trên tập các frequent
itemset đã thu được. Việc có tiếp tục thực hiện bước 2 hay không là tùy thuộc vào
từng trườg hợp ứng dụng cụ thể, trong một số trường hợp chúng ta chỉ cần tìm ra
tập các frequent itemset cũng đã thỏa mãn yêu cầu của ứng dụng.
Bùi Minh Hoài_D07CNPM1 Page 14
Association Rule
Ý tưởng:
Xét tích chất: một rule (f-α)->α có giá trị thì (f-α
sub
)-> α
sub
cũng phải có giá trị, với
α
sub
là
một tập con không rỗng của α bởi vì support count của (f- α
sub
) luôn nhỏ hơn
hoặc bằng support count của (f- α).
Thuật toán:
Từ tập frequent itemset f:
• Đưa ra tất cả các rule mà hậu tố là 1 item
• Sử dụng các hậu tố của các rule đã xác định được và hàm candicate-gen(ở
bước 1) để đưa ra tất cả các hậu tố có 2 item có thể xuất hiện trên rule. Cứ
tiếp tục như vậy cho đến khi hậu tố là có k-1 item
Mã giả:
Algorithm genRules(F)// F is the set of all frequent itemsets
1. For each frequent k-itemset f
k
in F, k≥2 do
2. Output every 1-item consequent rule of f
k
with confidence ≥ minconf and support
←
f
k
.count / n
3. H
1
←
{consequents of all 1-item consequent rules derived from
fx
above}
4. ap-genRules(f
x
, H
1
);
5. endfor.
Procedure ap-genRules(f
x
, H
m
) //H
m
is the set of m-item condequents
1. if (k> m+1) AND (H
m
≠∅
) then
2. H
m+1
←
candidate-gen(H
m
);
3. For each h
m+1
in H
m+1
do
4. Conf
←
f
k
.count / (f
k
– h
m+1
.count);
5. If (conf ≥ minconf) then
6. Output the rule (f
k
– h
m+1
)
→
h
m+1
with confidence = conf and support =f
k
.count / n
7. Else
8. delete h
m+1
from H
m+1
;
9. Endfor
10. ap-genRules(f
x
, H
m+1
)
11. endif
4. Ví dụ
Xét ví dụ với tập 5 giao dịch có các item như sau
TID Danh sách item
1 Beer, Diaper, Bady Powder, Bread, Umbrella
Bùi Minh Hoài_D07CNPM1 Page 15
Association Rule
2 Diaper, Bady Powder
3 Beer, Diaper, Milk
4 Diaper, Beer, Detergent
5 Beer, Milk, Coca Cola
Bước 1: Đưa ra các frequent itemset min_sup=40%
C1: F1:
Beer 4/5
Diaper 4/5
Baby Powder 2/5
Bread 1/5
Umbrella 1/5
Milk 2/5
Detergent 1/5
Coca Cola 1/5
C2: F2:
Bùi Minh Hoài_D07CNPM1 Page 16
Beer 4/5
Diaper 4/5
Baby Powder 2/5
Milk 2/5
Beer, Diaper 3/5
Beer, Bady Powder 1/5
Beer, Milk 2/5
Diaper, Bady Powder 2/5
Diaper, Milk 1/5
Bady Powder, Milk 0
Beer, Diaper 3/5
Beer, Milk 2/5
Diaper, Bady Powder 2/5
{Beer, Diaper, Baby powder}
{Beer, Diaper, Milk}
{Beer, Baby powder, Milk}
{Diaper, Baby powder, Milk}
Association Rule
C3 null
Output: F1={{ Beer },{ Diaper },{ Baby Powder },{ Milk }}
F2={{ Beer, Diaper },{ Beer, Milk },{ Diaper, Bady Powder }}
Bước 2: Đưa ra các Association rule với min_conf=70%
• Đưa ra các rule có hậu tố là 1 item và tính các confidence
Beer → Diaper conf=3/4
Diaper → Beer conf=3/4
Beer →Milk conf=2/4
Milk → Beer conf=4/4
Diaper → Bady Powder conf=2/4
Bady Powder → Diaper conf=4/4
H
1
={{Diaper},{ Beer}}
• Đưa ra các rule có hậu tố là 2 item theo cac hậu tố của các rule thỏa mãn ở
trên
H
2
={{Diaper, Beer}} không thỏa mãn vì xét trên tập số phần tử trong F bằng với số
phần tử trong H
KL: Tập các Frequent itemset và Association Rule thu được
F1={{ Beer },{ Diaper },{ Baby Powder },{ Milk }}
F2={{ Beer, Diaper },{ Beer, Milk },{ Diaper, Bady Powder }}
Beer → Diaper
Diaper → Beer
Milk → Beer
Bady Powder → Diaper
Bùi Minh Hoài_D07CNPM1 Page 17
Association Rule
Bùi Minh Hoài_D07CNPM1 Page 18
Association Rule
5. Nhận xét về thuật toán Apriori
Trong ứng dụng thực tế, việc tìm tất cả các tập frequent itemset trong cơ sở dữ liệu
là vấn đề không đơn giản bởi vì:
Số giao dịch trong cơ sỏ dữ liệu có thể rất lớn và có thể không phù hợp với
bộ nhớ của máy tính.
Thuật toán dựa trên level-wise search. Nó có khả năng linh động là có thể
dừng tại bất cứ level nào. Điều này rất hữu ích trong thực tế vì trong nhiều
ứng dụng, các frequent itemsets hoặc rules dài là ko cần thiết vì khó sử dụng.
Một khi minsup và minconf của tập các transactions T được cho trước, tập
các frequent itemsets có thể tìm được trong T là duy nhất. Bất kỳ thuật toán
nào cũng tìm được cùng một tập frequent itemset. Tính chất này ko đúng đối
với association rule minning trên những datamining task khác nhau
(classification hoặc clustering), với mỗi thuật toán khác nhau có thể sinh ra
các association rule rất khác nhau.
Vấn đề chính với association rule mining là nó thường đưa ra một số lượng
lớn các itemsets và rules 10, 1000 hoặc nhiều hơn, gây khó khăn cho user
phân tích để tìm được những cái hữu ích.
Bùi Minh Hoài_D07CNPM1 Page 19
Association Rule
Tài liệu tham khảo
[1]
[2] Jiawei Han and Micheline Kamber, Data Mining:Concepts and Techniques
[3] Rakesh Agrawal and Ramakrishnan Srikant, Fast Algorithms for Mining
Association Rules.
[4] />[5]
Bùi Minh Hoài_D07CNPM1 Page 20