1. Trang chủ
  2. » Luận Văn - Báo Cáo

mining top rank k frequent weighted itemsets using wn list structures and an early pruning strategy

72 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Mining top-rank-k frequent weighted itemsets using WN-list structures and an early pruning strategy
Tác giả Nguyễn Triệu Vi, Trần Thành Đạt
Người hướng dẫn GV Nguyễn Chí Thiện
Trường học Trường Đại học Tôn Đức Thắng
Chuyên ngành Phân tích và Thiết kế Giải thuật
Thể loại Đồ án cuối kì
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 72
Dung lượng 2,28 MB

Nội dung

TÓM TẮTNghiên cứu này tập trung vào bài toán khai thác các tập phổ biến trên cơ sở dữliệu được đánh trọng số, với mục tiêu chính là phát triển thuật toán khai thác Top-rank-k tập phổ biế

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CUỐI KÌ MÔN PHÂN TÍCH VÀ THIẾT KẾ GIẢI

THUẬT

Mining top-rank-k frequent weighted

itemsets using WN-list structures and an early pruning strategy

Người hướng dẫn: GV NGUYỄN CHÍ THIỆN Người thực hiện: NGUYỄN TRIỆU VI – 52100143

TRẦN THÀNH ĐẠT – 52100879

Khoá : K25

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 2

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CUỐI KÌ MÔN PHÂN TÍCH VÀ THIẾT KẾ GIẢI

THUẬT

Mining top-rank-k frequent weighted

itemsets using WN-list

structures and an early pruning strategy

Người hướng dẫn: GV NGUYỄN CHÍ THIỆN Người thực hiện: NGUYỄN TRIỆU VI

TRẦN THÀNH ĐẠT Khoá : K25

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 3

LỜI CẢM ƠN

Chúng em xin gửi lời cảm ơn chân thành đến thầy cô đã hướng dẫn và hỗ trợchúng em trong quá trình hoàn thành báo cáo môn học về Phân tích và thiết kế giảithuật Sự kiên nhẫn và kiến thức của thầy đã giúp em nắm bắt một cái nhìn rõ ràng vềchủ đề này

Em cũng xin cảm ơn bạn bè đã hỗ trợ trong suốt quá trình nghiên cứu và thảoluận

Lời cảm ơn này dành tặng thầy và các bạn đã đóng góp cho báo cáo này.Chúng em xin chân thành cảm ơn

Trang 4

ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là sản phẩm đồ án của riêng chúng tôi và được sự hướngdẫn của TS Nguyễn Chí Thiện; Các nội dung nghiên cứu, kết quả trong đề tài này làtrung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trongcác bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thuthập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệucủa các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm

về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến

những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)

TP Hồ Chí Minh, ngày tháng năm

Tác giả (ký tên và ghi rõ họ tên)

Nguyễn Triệu Vi

Thành Đạt

Trang 5

PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊNPhần xác nhận của GV hướng dẫn

_ _ _ _ _ _ _

Tp Hồ Chí Minh, ngày tháng năm (kí và ghi họ tên)

Phần đánh giá của GV chấm bài

_ _ _ _ _ _ _

Tp Hồ Chí Minh, ngày tháng năm (kí và ghi họ tên)

Trang 6

Nghiên cứu này giới thiệu vấn đề khai thác Top-rank-k tập phổ biến, sử dụnghai cấu trúc dữ liệu tiên tiến là tidset và diffset Ba thuật toán cơ bản cho vấn đề nàyđược phát triển, bao gồm TFWIT, TFWID và TFWIN TFWIT và TFWID sử dụng cấutrúc tidset và diffset để khai thác Top-rank-k tập phổ biến Tuy nhiên, chúng chia sẻhạn chế về nén dữ liệu, dẫn đến thời gian thực hiện lớn Do đó, thuật toán TFWIN(Top-rank-k tập phổ biến sử dụng cấu trúc N-list có trọng số) được phát triển Nghiêncứu này áp dụng chiến lược cắt tỉa động vào thuật toán TFWIN để khai thác Top-rank-

k tập phổ biến một cách hiệu quả hơn, từ đó đề xuất thuật toán TFWIN+ Cuối cùng,nghiên cứu tiến hành một thử nghiệm thực nghiệm để so sánh thời gian chạy và sửdụng bộ nhớ giữa các phương pháp thử nghiệm Kết quả thử nghiệm chỉ ra rằngTFWIN+ là thuật toán tốt nhất cho việc khai thác Top-rank-k tập phổ biến

Trang 7

MỤC LỤC

LỜI CẢM ƠN 1

TÓM TẮT 4

MỤC LỤC 5

CHƯƠNG 1 – MỞ ĐẦU 7

1.1 Đặt vấn đề 7

1.2 Mục tiêu 7

CHƯƠNG 2 – TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT 8

1.1 Khai thác dữ liệu (Data mining) 8

1.2 Khai phá luật kết hợp 8

1.2.1 Định nghĩa 8

1.2.2 Khai thác tập phổ biến (Mining frequent weighted itemset) 9

2.2 Thuật toán Apriori 12

CHƯƠNG 3 – FREQUENT WEIGHTED ITEMSET 3

3.1 Định nghĩa về Top-rank-k tập được đánh trọng phổ biến: 3

3.2 Ví dụ 4

CHƯƠNG 4 – TIDSET AND DIFFSET STRUCTURES FOR MINING FWIs 3

4.1 Cấu trúc Tidset và Diffset: 3

4.1.1 Cấu trúc Tidset 3

4.1.2 Cấu trúc Diffset 6

4.2 Thuật toán khai thác tập FWIs sử dụng cấu trúc Tidset và Diffset 9

CHƯƠNG 5 – WN-List structure for mining FWIs Implement JAVA with TFWIN & TFWIN+ 22

5.1 Định nghĩa cấu trúc WN-List: 22

5.2 Ví dụ cấu trúc WN-List: 22

5.3 Thuật toán TFWIN: Tìm kiếm tập FWIs xếp hạng thứ k sử dụng cấu trúc WN-list 25

5.3.1 Giới thiệu thuật toán & mã giả: 25

5.3.2 Triển khai thuật toán với Java: 26

5.3.3 Kết quả của thuật toán: 30

5.3.4 Phân tích độ phức tạp của thuật toán: 32

Trang 8

5.4 Thuật toán TFWIN+: Tìm kiếm tập FWIs xếp hạng thứ k sử dụng cấu trúc WN-list và

chiến lược cắt tỉa sớm 34

5.4.1 Giới thiệu thuật toán & mã giả: 34

5.4.2 Triển khai thuật toán với Java: 35

5.4.3 Kết quả của thuật toán: 38

5.4.4 Phân tích độ phức tạp của thuật toán: 40

CHƯƠNG 6 – EMPIRICAL EVALUATION 42

6.1 Mining Time 43

6.2 Memory Usage 44

Trang 9

Các thuật toán khai thác truyền thống như Apriori, FP-growth, và Eclat đãchứng minh được sự hiệu quả trong việc khai thác tập phổ biến từ cơ sở dữ liệu Tuynhiên, khi dữ liệu được đánh trọng số, sự phức tạp tăng lên, đặt ra thách thức trong việc

xử lý thông tin trọng số của từng sản phẩm một cách hiệu quả

1.2 Mục tiêu

Để giải quyết vấn đề này, đề tài này tập trung vào bài toán khai thác Top-rank-ktập phổ biến từ cơ sở dữ liệu được đánh trọng số Sự tiếp cận này đặt ra nhu cầu pháttriển thuật toán mà không chỉ xử lý dữ liệu trọng số mà còn giảm thiểu lượng kết quảtạo ra, tăng tính hiệu quả trong việc hiểu và áp dụng thông tin

Để đối mặt với thách thức này, nghiên cứu giới thiệu hai cấu trúc dữ liệu tiêntiến là tidset và diffset Bằng cách sử dụng những cấu trúc này, ba thuật toán cơ bản(TFWIT, TFWID, TFWIN, TFWIN+) được phát triển để khai thác Top-rank-k tập phổbiến Mục tiêu là vượt qua những hạn chế của các thuật toán truyền thống, đồng thờicải thiện thời gian thực hiện và khả năng nén dữ liệu

Những nghiên cứu này không chỉ đề cập đến vấn đề lý thuyết mà còn tập trungvào sự thực tế và tính ứng dụng của việc khai thác thông tin từ cơ sở dữ liệu có đánhtrọng số Kết quả của thử nghiệm thực nghiệm sẽ cung cấp cái nhìn rõ ràng về sự hiệuquả của các phương pháp đề xuất và mở ra hướng nghiên cứu tương lai trong lĩnh vựcnày

Trang 10

CHƯƠNG 2 – TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT

Tổng quan: Đề tài này tập trung vào lĩnh vực khai thác thông tin từ cơ sở dữ liệu

có tính chất đặc biệt, khi dữ liệu được đánh trọng số Mục tiêu chính của nó là pháttriển thuật toán khai thác Top-rank-k tập phổ biến, nơi tập trung vào xử lý thông tin cótrọng số, giúp tìm ra những mẫu thông tin quan trọng mà không phải xử lý tất cả cáckết quả có thể xuất hiện

1.1 Khai thác dữ liệu (Data mining)

Data mining – khai phá dữ liệu là quá trình phân loại, sắp xếp các tập hợp dữ

liệu nhất định để xác định xu hướng, các mẫu và thiết lập các mối liên hệ hữu ích nhằmgiải quyết các vấn đề nhờ phân tích dữ liệu

Mục tiêu: cho phép các doanh nghiệp có thể dự đoán được xu hướng tương lai,

nhằm đưa ra các quyết định được hỗ trợ dữ liệu từ các tập dữ liệu khổng lồ

Trọng số của một giao dịch được tính bằng trung bình của trọng số của các mụctrong giao dịch đó Mức hỗ trợ có trọng số của một tập mục (hoặc tập mục) được xácđịnh bằng tỷ lệ của tổng trọng số của các giao dịch chứa tập mục đó trên tổng trọng sốcủa tất cả các giao dịch Điều này giúp đo lường sự quan trọng của một tập mục cụ thểtrong dữ liệu, đặc biệt khi dữ liệu có sự biến đổi về trọng số

Ví dụ: nếu bạn có một tập dữ liệu về mua sắm và mỗi sản phẩm có một trọng số

dựa trên giá trị của nó, bạn có thể tính trọng số của mỗi giao dịch bằng cách lấy trungbình của trọng số của các sản phẩm trong giao dịch đó Sau đó, mức hỗ trợ có trọng sốcho một tập mục cụ thể sẽ đo lường mức độ phổ biến của tập mục đó trong các giaodịch dựa trên tổng trọng số của các giao dịch mà tập mục đó xuất hiện

Trang 11

1.2 Khai phá luật kết hợp

1.2.1 Định nghĩa

Khai thác luật kết hợp là một phương pháp trong lĩnh vực khám phá tri thức từ

dữ liệu (Knowledge Discovery in Databases - KDD) Nó nhằm mục đích tìm kiếm cácmối quan hệ kết hợp giữa các mục (items) trong cơ sở dữ liệu

Mục đích của luật kết hợp (Association Rule - AR) là tìm ra các mối quan hệgiữa các đối tượng trong khối lượng lớn dữ liệu

Ví dụ: Xét CSDL khảo sát tiện nghi sử dụng ở các hộ gia đình:

1 Tivi, máylạnh

2 Tủlạnh, máylạnh

3 Tivi, Tủlạnh, Máylạnh

4 Tivi, Máygiặt, Máylạnh

5 Tivi, Tủlạnh, Máygiặt, Máylạnh, MáyVitính

6 Tivi, Máygiặt, MáyVitính

7 Tivi, Tủlạnh, Máygiặt

8 Tivi, Máygiặt, MáyVitính

Luật kết hợp là biểu thức có dạng: Tivi->MáyVitính [50%,57%] hay sử dụng:Tivi-> sửdụng:Máyvitính [50%, 57%]

Nghĩa là: “57% hộ gia đình sử dụng Tivi thì cũng sử dụng Máyvitính Tivi và Máyvitính xuất hiện chung trong 50% dòng dữ liệu."

Khai thác luật kết hợp được chia làm hai giai đoạn:

1 Khai thác tập phổ biến (FIs – Frequent Itemsets)

2 Sinh luật từ các tập phổ biến (ARs – Association Rules)

Trang 60

5.4 Thuật toán TFWIN+: Tìm kiếm tập FWIs xếp hạng thứ k sử dụng cấu trúc WN-list và chiến lược cắt tỉa sớm

5.4.1 Giới thiệu thuật toán & mã giả:

Thuật toán TFWIN+ sử dụng cấu trúc WN-List tương tự thuật toán TFWIN, tuy nhiênthuật toán TFWIN+ sử dụng thêm chiến lược cắt tỉa sớm

Chiến lược cắt tỉa sớm tức là TFWIN+ sẽ không tạo ứng cử viên của hai FWIs C(u) vàC(v) có C(u).ws < ngưỡng tối thiểu hoặc C(v).ws < ngưỡng tối thiểu Bên cạnh đó,thuật toán cũng loại bỏ bất kỳ ứng cử viên nào có trọng số hỗ trợ ít hơn ngưỡng trongthủ tục đó

Mã giả của TFWIN+:

Trang 61

* @parama Danh sách NodeCode thứ nhầ t

* @paramb Danh sách NodeCode thứ hai

* @paramsumTw Tham chiế u đế n FloatByRef đế tính tố.ng trọng số

* @return Danh sách NodeCode kế t hợp

*/

Trang 62

privateList<NodeCode> nodeCodeCombination(List NodeCode< >

a, List NodeCode< > , b FloatByRefsumTw) {

List NodeCode< > result=newArrayList<>();

// Lặp qua phầ-n tư cu.a danh sách thứ hai (b)

for (int =0; j<b.size(); j++) {

NodeCode bJ=b.get(j);

// Lặp qua phầ-n tư cu.a danh sách thứ nhầ t (a)

for (int =0; i<a.size(); i++) {

(if !result.isEmpty() &&

result.get(result.size() -1).preOrder== bJ preOrder

&&result.get(result.size()

Trang 63

Nếu điều kiện đúng, phương thức tạo một đối tượng NodeCode mới (được lưu trữtrong biến temp) Nếu có các NodeCode liên tiếp có cùng preOrder và postOrder, nó sẽkết hợp chúng bằng cách cộng thêm trọng số.

Sau đó, đối tượng temp (hoặc NodeCode kết hợp) được thêm vào danh sách kết quả.Tổng trọng số (sumTw.value) được cập nhật trong quá trình lặp

Danh sách kết quả (result) chứa các NodeCode đã được kết hợp

* @paramcandidateK a list

* @paramthreshold float

* @paramttw float

* @return

*/

privateList<FWI> tfwinPlusCandidateGeneration(List FWI< >

candidateK, floatthreshold, floatttw) {

List FWI< > candidateNext=newArrayList<>();

for (int =candidateK.size() ; -1 i>0; ) {i

FWI cI=candidateK.get( );i

for (int = -1; j>=0; ) {j

FWI cJ=candidateK.get( );j

FWI c=newFWI();

Trang 64

c.items=itemUnion(cI.items cJ, items);

// Thếm c vào danh sách item tiế p theo

List Candidate (candidateK): Danh sách các item hiện tại

Ngưỡng (threshold): Ngưỡng để kiểm tra tính hợp lệ của một item

Tổng Trọng Số Của Nút (sumTw): Biến để tính tổng trọng số của các nút trong itemkết hợp

Kiểm Tra Tính Tương Đương (checkSameEquivalence): Gọi phương thứccheckSameEquivalence để kiểm tra tính tương đương giữa cI và cJ

Trang 65

Tính Trọng Số (c.ws = (sumTw.value / ttw);): Tính trọng số của item kết hợp.Kiểm Tra Ngưỡng (if (c.ws < threshold) continue;): Nếu trọng số của item kết hợp thấphơn ngưỡng, tiếp tục vòng lặp.

Ghép Các Phần Tử (c.items = itemUnion(cI.items, cJ.items);): Ghép các phần tử của cI

và cJ để tạo ra item mới c

Thêm item Mới (candidateNext.add(c);): Thêm item mới c vào danh sách item tiếptheo

Trả Về Danh Sách item Tiếp Theo (return candidateNext;): Trả về danh sách các itemmới được sinh ra

5.4.3 Kết quả của thuật toán:

packagerun;

importjava io IOException ;

importjava io UnsupportedEncodingException ;

importjava net URL ;

importalgorithm TFWINplus ;

public classMainRunTFWINplus

{

publicstaticvoidmain(String [] arg) throwsIOException {

// Đường dầLn tệp tin chứa dữ liệu giao dịch

StringinputTrans=fileToPath("chess.tran");

// Đường dầLn tệp tin chứa trọng số

StringinputWeights =fileToPath("chess.pro");

// Tến tệp tin đầ-u ra

Stringoutput="outputTFWIN.txt";

// Khơ.i tạo đố i tượng TFWIN+

Trang 66

TFWINplusalgorithm=newTFWINplus();

// Số lượng top rank-k

intrank=50;

// Thực thi thuật toán

algorithm.executeAlogrithm(inputTrans inputWeights, ,

output rank, );

// In thống tin vế- thời gian chạy và bộ nhớ sư dụng

System.out.println("rank: " +rank);

algorithm.printStats();

}

// Phương thức chuyế.n đố.i tến tệp thành đường dầLn

publicstaticStringfileToPath(StringfileName) throws

UnsupportedEncodingException {

URLurl=MainRunTFWINplus.class.getResource(fileName); returnjava net .URLDecoder.decode(url.getPath(),"UTF-8");

}

}

Kết quả code:

Trang 68

•Duyệt qua dữ liệu có số lần lặp là n Thời gian thực hiện: O(n)

•Với mỗi dữ liệu trong cơ sở dữ liệu:

oTìm kiếm vị trí thích hợp cho mỗi dữ liệu trong cây

oThêm dữ liệu vào cây Thời gian thực hiện: O(log n)

Vậy thời gian thực hiện xây dựng WN-list:

max(O(1), O(n), O(log n) = O(n log n)

Tìm tập FWIs xếp hạng thứ k

Xác định các FWIs có trọng số tối thiểu :

Duyệt qua các phần tử trong WN-List thời gian thực hiện O(n)

Tìm các FWIs có trọng số tối thiểu Thời gian thực hiện O(log n)

Thực hiện chiến lược cắt tỉa sớm, chiến lược cắt tỉa sớm làm giảm số lần lặp lại

=>Thời gian thực hiện giảm xuống O(n)

Thời gian xác định các FWIs có trọng số tối thiểu: O(n)

Tìm các FWIs có trọng số cao nhất xếp hạng thứ k Thời gian thực hiện

O(k)

Thời gian tìm tập FWIs xếp hạng thứ k:

max(O(n), O(k)) = O(k)

Thời gian thuật toán TFWIN+: O(n log n + k)

Độ phức tạp của thuật toán TFWIN+ sẽ phụ thuộc vào các yếu tố xây dựng WN-list,sắp xếp FWIs trong WN-list, Tìm tập FWIs thứ k

Trang 69

CHƯƠNG 6 – EMPIRICAL EVALUATION

Với cùng bộ dữ liệu với 3196 transaction thì

TFWIT: Time: 3254 ms, Memory:32.266MBTFWID: Time: 2765ms, Memory:28.392MBTFWIN: Time: 1629ms, Memory: 20.128MBTFWIN+: Time: 1388ms, Memory: 20.128MB

Ngày đăng: 08/05/2024, 16:25

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

TÀI LIỆU LIÊN QUAN

w