1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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)

15 327 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giải Thuật Fp-Growth (Khai Phá Luật Kết Hợp)
Tác giả Nguyễn Minh Quân, Lê Trọng Khoa, Trần Hùng Tới, Trần Tuấn Vũ, Hoàng Vĩnh Tiến
Người hướng dẫn Nguyễn Quốc Tuấn
Trường học Trường Đại Học Giao Thông Vận Tải
Chuyên ngành Khai Phá Dữ Liệu
Thể loại Báo cáo
Định dạng
Số trang 15
Dung lượng 645,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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,

Trang 1

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

KHAI PHÁ DỮ LIỆU

ĐỀ TÀI: Giải thuật FP-Growth (Khai phá luật kết hợp)

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

Hoàng Vĩnh Tiến- 171210074

Lớp - Khóa : CNTT4 – K58

Trang 2

Mục lục

1.Bài toá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

Trang 3

1.Bài toán phân tích giỏ hàng:

Bài toá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í

Trang 4

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

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)

Trang 5

 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)

2.3.3 Độ tương quan ( Lift) : Độ tương quan hỗ trợ kiểm soát các hệ quả trong khi

tính toá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

= 1.11 >1

2.3.4 Tần suất sinh ra các luật dự đoá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ự đoá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

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

Trang 6

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

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

> 0.2

=>{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 toán fp-growth

 Vì thuật toán fp-growth dựa trên fp-tree nên ta tìm hiểu qua thuật toá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ả

Trang 7

- 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 toán FP-growth do nén toà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 toá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 toán Apriori, luôn 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 toá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 toán này sẽ không còn phù hợp với bộ nhớ được dùng chung

Trang 8

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

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

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

Trang 9

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

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:

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

Trang 10

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

Trang 11

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: https://storm.cis.fordham.edu/~gweiss/data-mining/weka-data/supermarket.arff

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 FP-Growth 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 :

Trang 12

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

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

Bước 3: Lựa chọn thuật toá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

Trang 13

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:

Trang 14

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

Trang 15

Link tài liệu tham khảo:

https://www.dbs.ifi.lmu.de/Lehre/KDD/SS16/skript/3_FrequentItemsetMining.pdf? fbclid=IwAR1CPJOC_FsFZQ7wfWusq_SQkcTpYd_gqD9rbGlGxV0PDxQ3kXzs KO1cDxU

https://www.softwaretestinghelp.com/fp-growth-algorithm-data-mining/

https://repository.vnu.edu.vn/bitstream/VNU_123/6401/1/00050001570.pdf?

fbclid=IwAR0_o3x0OdYbudaXqyV2VpTDVpeZytkxcQFr38i-kZOhXhQrBf_nvHuERQ0

http://ccs.hnue.edu.vn/hungtd/DM2012/NhatQuang/L4-Phat_hien_luat_ket_hop.pdf

Ngày đăng: 07/01/2022, 14:33

HÌNH ẢNH LIÊN QUAN

Lúc này bảng của chúng ta sẽ thay đổi như sau    TIDItems - 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)
c này bảng của chúng ta sẽ thay đổi như sau TIDItems (Trang 8)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w