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

BÁO CÁO BÀI TẬP LỚN MÔN KHAI PHÁ DỮ LIỆU ĐỀ TÀI Giải thuật FPGrowth (Khai phá luật kết hợp)

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 (645.58 KB, 15 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------

BÁO CÁO BÀI TẬP LỚN MÔN
KHAI PHÁ DỮ LIỆU
ĐỀ TÀI: Giải thuật FP-Growth (Khai phá luật kết hợp)

Giảng viên hướng dẫn :  Nguyễn Quốc Tuấn  
                                     Sinh viên thực hiện      :  Nguyễn Minh Quân- 171200130
   Lê Trọng Khoa- 171200458
  Trần Hùng Tới-171201330 
                                                                                Trần Tuấn Vũ- 171202729
Hồng Vĩnh Tiến- 171210074
                                      Lớp  - Khóa                  :  CNTT4 – K58


Mục lục
1.Bài tốn phân tích giỏ hàng:....................................................................................................................................2
2.Định nghĩa về luật kết hợp:......................................................................................................................................3
2.1 Khái niệm........................................................................................................................................................3
2.2 Định nghĩa.......................................................................................................................................................3
2.3 Ví dụ................................................................................................................................................................3
3.Tìm hiểu về thuật toán fp-growth............................................................................................................................6
4.ỨNG DỤNG CỦA FP-TREE TRONG KHAI PHÁ LUẬT KẾT HỢP...................................................................................7
5.Triển khai phần mềm trên weka.............................................................................................................................10


1.Bài tốn phân tích giỏ hàng:
Bài tốn khai thác tập phổ biến (frequent itemset) là lớp bài toán rất quan trọng trong lĩnh vực
khai phá dữ liệu. Mục tiêu của nó là tìm tất cả các tập mẫu, liên kết, tương quan hoặc cấu trúc


nhân quả có độ phổ biến cao trong tập hợp tất cả các hạng mục hoặc đối tượng trong cơ sở dữ liệu
giao dịch, cơ sở dữ liệu quan hệ và các kho thơng tin dữ liệu khác.
Có bao giờ bạn tự hỏi tại sao các mặt hàng sản phẩm này trong siêu thị lại được xếp cạnh nhau?.
Tại sao mặt hàng A lại được xếp ở dưới, mặt hàng B lại được xếp ở trên cao? Tại sao các món đồ
ta cần thường được xếp cạnh nhau trong siêu thị?. Đây chính là một phần ứng dụng việc khai phá
dữ liệu mà cụ thể hơn là khai phá các tập phổ biến!
Bài toán khai thác các tập phổ biến được ứng dụng trong rất nhiều vấn đè, nổi tiếng
nhất là Basket data analysis (dự đoán, gợi ý các món hàng thường được cho cùng vào
giỏ hàng với món đồ A đã được chọn mua trước đó).
Nhưng trước khi đi vào khai thác tập phổ biến , ta cần tìm hiểu trước về luật kết hợp .
Luật kết hợp đóng vai trị giúp ta tìm kiếm được các tập dữ liệu mà có mối liên hệ với
nhau , sau đó có thể dựa vào để tìm được các tập phổ biến.

2.Định nghĩa về luật kết hợp:
2.1 Khái niệm: Luật kết hợp là mối quan hệ kết hợp giữa các tập thuộc tính trong cơ
sở dữ liệu

2.2 Đị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à 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ư ), 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 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 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, tập Y gọi là hệ quả.
2.3 Ví dụ :
Bài toán 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ì”, “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 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 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ần nhau, hoặc bán các mặt hàng đó theo một gói hàng, giúp cho
khắc đỡ mất cơng tìm kiếm.
TID

Items

1

Bread, milk

2

Bread, Diaper, Beer, Eggs

3

Milk, Diaper, Beer, Coke

4

Bread, Milk, Diaper, Beer

5

Bread, Milk, Diaper, Coke

Luật kết hợp :
{Diaper}  {Beer}

{Milk,Bread} {Eggs ,Coke}
{Beer , Bread} {Milk}
Để đi sâu hơn vào luật kết hợp , chúng ta cần tìm hiểu về các định nghĩa cơ bản liên
quan tới luật kết hợp
2.3.1 Tập mục ( item set) :
 Là 1 tập gồm một hoặc nhiều mục
Ví dụ: {Milk, Bread, Diaper}
 Tập mục mức K ( k-itemset) : Là một tập gồm K mục

Có 2 độ đo quan trọng đối với luật kết hợp : Độ hỗ trợ ( support) và độ tin cậy
(confidence)
2.3.2 Độ hỗ trợ (support) :
 Tổng số hỗ trợ (Support count) σ: Số lần xuất hiện của 1 tập mục
 Ví dụ : σ({Milk,Bread,Diaper}) = 2
 Độ hỗ trợ (support) s: Độ 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 s(XY).


 Ví dụ:s(XY) = s({Milk,Diaper}Beer)=
= 2/5 = 0.4
 Độ tin cậy ( Confidence) c : Độ 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 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à c(r)
 Ví dụ : c(r) =
= 2/3 =0.67
2.3.3 Độ tương quan ( Lift) : Độ tương quan hỗ trợ kiểm soát các hệ quả trong khi
tính tốn xác suất xuất hiện có điều kiện của XY
 Công thức : Lift(r) =
 Trong trường hợp mà X thực sự kết hợp cùng với Y , thì giá trị của lift
>=1 và ngược lại

 Ví dụ : s ({Milk,Diaper}Beer)=
2/5 = 0.4
s({Beer}) =

=

= 3/5 = 0.6

s({Milk,Diaper }) =

= 3/5 = 0.6

 Lift (r) =
= 0.4 / 0.6 * 0.6
= 1.11 >1
2.3.4 Tần suất sinh ra các luật dự đốn khơng chính xác ( Conviction) :
Conviction của luật kết hợp XY cho biết tần suất mong muốn X xảy ra mà không
cần Y
 Công thức : Conv(r) =
)
 Giá trị của conviction càng cao thì tỉ lệ luật này sinh ra dự đốn khơng
chính xác càng cao
 Ví dụ : c ({Milk,Diaper}Beer) = =
2/3 = 0.67
s({Beer}) =

=

= 3/5 = 0.6


Conv({Milk,Diaper}Beer) =
=
= 1.21
2.3.5 Độ ảnh hưởng ( Leverage) : Leverage của luật kết hợp XY dùng để đo lường
sự khác biệt giữa xác suất các trường hợp đồng xuất hiện của X và so với X và Y độc


lập với nhau. Nói cách khác , Leverage dùng để đo lường các trường hợp bổ sung bao
gồm X và Y cao hơn so với dự kiến nếu X và Y độc lập với nhau
 Công thức : Lev(r) = s(XY) – s(X)*s(Y)
 Giá trị của leverage càng thấp thì tỷ lệ XY càng cao , và ngược lại
 Ví dụ s ({Milk,Diaper}Beer)=
2/5 = 0.4
s({Beer}) =

=

= 3/5 = 0.6

s({Milk,Diaper }) =
= 3/5 = 0.6
Lev({Milk,Diaper}Beer) = s({Milk,Diaper}Beer) –
s({Milk,Diaper}) * s({Beer}) = 0.4 - 0.6 * 0.6 = 0.04

2.3.6 Tập thường xuyên : Tập hợp X được gọi là tập hợp thường xuyên (Frenquent
itemset) nếu có s(X) minsup, với minsup là ngưỡng độ hỗ trợ cho trước. Kí hiệu các
tập này là FI
 Ví dụ : Xét tập {Bread} , {Bread , Diaper} và minsup = 0.2
S({Bread,Diaper}) =
> 0.2


) =3/5=0.6

=>{Bread,Diaper} là tập thường xuyên , mà {Bread} lại là tập
con của {Bread,Diaper} => {Bread} cũng là tập thường xuyên

3.Tìm hiểu về thuật tốn fp-growth
 Vì thuật tốn fp-growth dựa trên fp-tree nên ta tìm hiểu qua thuật tốn fp-tree:
- Frequent Pattern Tree (FP-tree) là một cấu trúc cây được tạo bằng các tập phổ biến ban
đầu của cơ sở dữ liệu. Mục đích của cây FP là khai thác mẫu thường xuyên nhất. Mỗi
node của cây FP đại diện cho một mục của tập phổ biến.
- Root đại diện cho giá trị rỗng trong khi cá node dưới đại diện cho các tập phổ biến.
- Sự liên kết các node với các node thấp hơn là tập phổ biến với tập phổ biến khác trong
khi tạo Fp-tree.
 Nén một cơ sở dữ liệu lớn thành một cấu trúc Frequent-Pattern tree (FP-tree)
-cô đọng cao, nhưng hoàn chỉnh để khai thác mẫu phổ biến
- tránh quét cơ sở dữ liệu tốn kém
• Phát triển một phương pháp khai thác mẫu phổ biến dựa trên cây FP-tree hiệu quả


- Phương pháp luận chia để trị: phân rã các nhiệm vụ khai thác thành các nhiệm vụ nhỏ hơn
- Tránh tạo ứng viên: chỉ kiểm tra cơ sở dữ liệu con.
• Ý tưởng:
- Thuật tốn FP-growth do nén tồn bộ CSDL lên một cấu trúc dữ liệu nhỏ hơn là cây FP-tree
nên tránh được việc duyệt nhiều lần CSDL (thuật toán chỉ duyệt cơ sở dữ liệu 2 lần). Tiếp
theo thuật toán khai phá cây bằng cách phát triển dần các mẫu mà không sinh các tập mục
ứng viên, do đó tránh được khối lượng tính tốn lớn. Phương pháp FP- growth đã chứng tỏ
được tính hiệu quả của nó và có thể thực hiện khai phá cho cả các mẫu ngắn và dài, nhanh
hơn thuật tốn Apriori, ln chỉ cần duyệt CSDL 2 lần.
Thuật toán FP- growth thực hiện như sau: Đầu tiên, thuật toán duyệt CSDL lần thứ nhất để

tính độ hỗ trợ của từng mục (đếm số lần xuất hiện của từng mục).
Tiếp đến, những mục khơng đủ độ hỗ trợ bị loại. Các mục cịn lại được sắp theo thứ tự giảm
dần của độ hỗ trợ (cũng tức là giảm dần theo số lần xuất hiện trong CSDL), ta nhận được
danh sách L các mục đã sắp.
Duyệt CSDL lần thứ hai, với mỗi giao tác t, loại các mục không đủ độ hỗ trợ, các mục còn lại
theo thứ tự giống như xuất hiện trong L (tức là thứ tự giảm dần theo độ hỗ trợ) được cất vào
cây FP-tree.
Phần tiếp theo thuật toán khai phá tìm các mẫu thường xuyên trên cây FP-tree đã xây dựng
mà khơng cần duyệt lại CSDL nữa.
 Lợi ích của việc sử dụng cấu trúc fp-growth
 Ưu điểm
-

Thuật toán FP - Growth chỉ cần quét cơ sở dữ liệu hai lần trong khi sử dụng thuật toán
Apriori sẽ phải quét cơ sở dữ liệu cho mỗi lần lặp.
- Thuật tốn này khơng thực hiện việc ghép nối các thành phần với nhau nên làm cho nó
thực hiện nhanh hơn.
- Cơ sở dữ liệu được lưu trữ với một phiên bản nhỏ hơn trong bộ nhớ.
- Nó rất hiệu quả và có thể mở rộng để khai thác các frequent pattern dài và ngắn.
 Nhược điểm
- FP Tree thì rất cồng kềnh và khó để xây dựng hơn là Apriori.
- Tốn nhiều chi phí hơn.
- Và khi dữ liệu cơ sở dữ liệu lớn thì thuật tốn này sẽ khơng còn phù hợp với bộ nhớ
được dùng chung.


4.ỨNG DỤNG CỦA FP-TREE TRONG KHAI PHÁ LUẬT KẾT HỢP
TID

Items


1

Bread, milk

2

Bread, Diaper, Beer, Eggs

3

Milk, Diaper, Beer, Coke

4

Bread, Milk, Diaper, Beer

5

Bread, Milk, Diaper, Coke

Quay trở lại với bài toán giỏ hàng trong siêu thị . Lúc này ta sẽ quy định các sản phẩm dưới dạng
chữ cái cho dễ dàng phân tích:
Bread : A
Milk : B
Diaper: C
Beer : D
Eggs : E
Coke:F
Lúc này bảng của chúng ta sẽ thay đổi như sau

TID

Items

1

A,B

2

A,C,D,E

3

B,C,D,F

4

A,B,C,D

5

A,B,C,F

Đầu tiên chúng ta cần xây dựng FP-Tree:


Ban đầu, FP-Tree chỉ chứa duy nhất nút gốc (được biểu diễn bởi ký hiệu null).
Cơ sỡ dữ liệu các giao dịch được duyệt lần 1, để xác định độ hỗ trợ của mỗi mục.
 Các mục không thường xuyên (infrequent items) bị loại bỏ.

 Các mục thường xuyên (frequent items) được sắp xếp theo thứ tự giảm dần về độ hỗ
trợ.
Cơ dở dữ liệu các giao dịch được duyệt lần thứ 2, để xây dựng FP-Tree.
Áp dụng với bài toán trên với minsup=0.4
Bước 1: tìm các item mức 1 có sup>= 2 , và sắp xếp theo thứ tự giảm dần
Item

Sup

A

4

B

4

C

4

D

3

F

2

Bước 2 : Sắp xếp các mục phổ biến mức 1 vừa tìm được theo thứ tự giảm dần trong mỗi giao

dịch:
TID

Items

Items phổ biến

1

A,B

A,B

2

A,C,D,E

A,C,D

3

B,C,D,F

B,C,D,F

4

A,B,C,D

A,B,C,D


5

A,B,C,F

A,B,C,F

Duyệt các items phổ biến của mỗi giao dịch để xây dựng FP-Tree


Tiếp theo, duyệt các item phổ biến mức 1 theo thứ tự tăng dần độ hỗ trợ (F,D,C,B,A). Với mỗi
item, xây dựng các mẫu cơ sở mẫu điều kiện (conditional pattern-base) và sau đó là các FP-Tree
điều kiện (conditional FP-TREE) của nó.
Tính chất: bất kì mẫu phổ biến nào có chứa mục Ii đều được chứa trên các nhánh (đường dẫn)
của cây FP-Tree chứa Ii, số lần xuất hiện của mẫu chứa các nút trong đường dẫn tiền tố bằng số
lần xuất hiện của nút Ii.
Bắt đầu với item F, cơ sở mẫu điều  cơ sở mẫu điều kiện của nó là tất cả các đường dẫn tiền tố
của cây FP-Tree khi duyệt từ gốc root = null đến nút F , chính là ABC:1 và BCD:1 ( số theo sau
là số lần xuất hiện của nút F tương ứng với mỗi tổ tiên đó).
Tiếp theo ta xây dựng FP-Tree điều kiện từ mẫu này bằng cách trộn tất cả các đường dẫn và giữ
lại các nút có tổng các số đếm >= sup. = 2 ( độ hỗ trợ >= minsup=0.4) :
ABC:1 và BCD:1 trộn lại thành A:1 , B:2 , C:2 , D:1 , có B:2 và C:2 thỏa mãn điều kiện. Do đó,
các mẫu phố biến chứa F là : F , BF , CF, BCF.
Làm tương tự cho các item cịn lại , ta có thể tìm được các mẫu phổ biến của item đó . Cuối cùng
có bảng sau đây:
Item

Cơ sở mẫu điều kiện

FP-Tree điều kiện


Các mẫu phổ biến

F

{ABC:1, BCD:1}

{B:2, C:2}-F

F, BF, CF, BCF

D

{ABC:1, BC:1}

{B:2, C:2}-D

D, BD, CD, BCD

C

{AB:2, A:1, B:1}

{A:3, B:3}-C

C, AC, BC, ABC

B

{A:4}


{A:4}-B

B, AB


A





A

5.Triển khai phần mềm trên weka
Giới thiệu về Weka
i. Weka – Wakato Enviroment for Knowledge Analysis – là một tập hợp các
giải thuật học máy và các công cụ xử lý dữ liệu, được phát triển bằng Java,
phân phối dưới giấy phép GNU General Public
Mô tả dữ liệu SuperMarket
ii. Nguồn: />
iii. Đây là tập dữ liệu phân tích các sản phẩm được mua trong siêu thị
iv. Chúng ta sẽ khai phá luật kết hợp trên tập dữ liệu trên bằng thuật toán FPGrowth nhằm xác định các sản phẩm thường xuyên được mua cùng nhau
Sử dụng weka khai phá luật kết hợp bằng thuật toán FP-Growth

Bước 1 : Mở file supermarket.aff bằng ứng dụng :


Bước 2: Quan sát tập dữ liệu, ta được:
-


Tổng số sản phẩm bày bán là : 4627

Ta tiếp tục chọn tab “Associate” như hình dưới:

Bước 3: Lựa chọn thuật tốn FP-Growth và tiến hành thiết lập các thông số trước
khi chạy thuật toán


Chúng ta sẽ quan tâm đến 3 thơng số chính
-

LowerBoundMinSupport: Cận dưới độ hỗ trợ tối thiệu (miniSup), mặc định là
0,1
MetricType: khai phá luật kết hợp theo độ tin cậy (Confidence)
minMetric: khai phá luật kết hợp có độ tin cậy từ 0,9 đổ lên

Bước 4: Chạy thuật toán trong Weka
Nhấn nút Start để bắt đầu chạy thuật toán FP-Growth. Sau khi hoàn tất, ta được kết quả
như bên dưới:


Như vậy áp dụng thuật toán FP-Growth, chúng ta xác định được 16 tập các hạng mục phổ
biến có Độ tin cậy (confidence) từ 0,9 đổ lên và có độ hỗ trợ lớn hơn 0.1


Link tài liệu tham khảo:
/>fbclid=IwAR1CPJOC_FsFZQ7wfWusq_SQkcTpYd_gqD9rbGlGxV0PDxQ3kXzs
KO1cDxU
/> />fbclid=IwAR0_o3x0OdYbudaXqyV2VpTDVpeZytkxcQFr38ikZOhXhQrBf_nvHuERQ0

/>


×