Thuật toán UP-Growth

Một phần của tài liệu Khai phá tập mục lợi ích cao sử dụng cấu trúc cây tiền tố (Trang 59 - 92)

Thuật toán UP-Growth (Utility Pattern Growth) được nhóm các nhà nghiên cứu (Vincent S. Tseng, Cheng-Wei Wu, Bai-En Shie và Philip S. Yu) thuộc Đại học Quốc gia Cheng Kung (Đài loan) và Đại học Illinois (Chicago, USA) đề xuất năm 2010 [14]. Đây là thuật toán sử dụng hiệu quả cấu trúc cây tiền tố để khai phá tập mục lợi ích cao trong CSDL giao tác.

Trong thuật toán COUI-Mine ở phần 2.3.1 trên, ở bước thứ nhất, thuật toán xây dựng cây TWUI-tree và khai phá trên cây này để tìm ra các tập mục lợi ích cao theo giao tác – tập này được coi như tập ứng viên của các tập mục lợi ích cao. Trong bước thứ hai, thuật toán duyệt lại CSDL ban đầu để xác định tập mục lợi ích cao từ tập ứng viên.

Để nâng cao hiệu quả cho bước thứ nhất, trong thuật toán UP-Growth, các tác giả đã đề xuất bốn chiến lược để đánh giá lợi ích của các tập mục gần hơn với lợi ích của chúng, do đó số các tập mục ứng viên giảm đi, giảm công việc cho bước thứ 2. Thuật toán sử dụng cấu trúc cây tiền tố để lưu thông tin về các giao tác phục vụ cho khai phá tập mục lợi ích cao và đặt tên là cây UP-Tree (Utility Pattern Tree).

Thuật toán UP-growth gồm 3 bước giống như thuật toán COUI-Mine: (1) Xây dựng UP-Tree,

(2) Sinh ra các tập mục lợi ích cao tiềm năng từ UP-Tree bằng thuật toán UP-Growth, và

(3) Xác định các tập mục lợi ích cao từ các tập mục lợi ích cao tiềm năng. Ở đây, các tác giả đưa ra khái niệm “tập mục lợi ích cao tiềm năng” là những tập mục có khả năng là tập mục lợi ích cao.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

- Bước xây dựng cây UP-Tree:

Cây UP-Tree có cấu trúc giống cây TWUI-tree ở mục 2.3.1.1 trên nhưng tại mội nút N, lợi ích theo giao tác TWU của mục dữ liệu được thay bằng một giá trị đánh giá lợi ích khác, có cải tiến để gần với lợi ích thực hơn, ký hiệu là N.nu.

Mỗi nút N của cây UP-Tree bao gồm các trường: N.name, N.count, N.nu, N.parent, N.hlink và tập các nút con. Ở đó: N.name là tên mục dữ liệu của nút, N.count là số đếm hỗ trợ của nút, N.nu là giá trị đánh giá lợi ích của nút, N.parent lưu nút cha của nút, N.hlink chứa con trỏ chỉ đến các nút cùng tên chứa trong N.name.

Bảng đầu mục cũng giống như bảng đầu mục của cây TWUI-tree nhưng thêm 1 trường là giá trị đánh giá lợi ích của mục dữ liệu. Mỗi mục của bảng đầu mục gồm 3 thành phần: tên mục dữ liệu, giá trị đánh giá lợi ích của mục dữ liệu và con trỏ (trỏ đến nút đầu tiên biểu diễn mục dữ liệu này trên cây).

- Bước khai phá cây: thuật toán áp dụng cách khai phá FP-Growth trình bày

trong [8].

Thuật toán UP-Growth đã đề xuất sử dụng một số kỹ thuật có hiệu quả trong việc rút gọn tập các tập mục lợi ích cao tiềm năng, do đó giảm yêu cầu tính toán và bộ nhớ lưu trữ. Các kỹ thuật chính bao gồm:

(i). Trong quá trình xây dựng cây UP-Tree, các mục dữ liệu không có khả năng xuất hiện trong các tập mục lợi ích cao sẽ bị loại bỏ.

(ii). Giá trị đánh giá lợi ích của nút N là N.nu sẽ được trừ đi lợi ích của các nút con của nó trong suốt quá trình xây dựng cây.

Để minh họa cho các kỹ thuật này, ta xét CSDL ví dụ sau:

Bảng 2.8: Cơ sở dữ liệu ví dụ cho thuật toán UP-Growth

TID Mục dữ liệu TU

T1 (A,1) (C,1) (D,1) 8

T2 (A,2) (C,6) (E,2) (G,5) 27

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ T4 (B,4) (C,3) (D,3) (E,1) 20 T5 (B,2) (C,2) (E,1) (G,2) 11 Bảng 2.9: Bảng lợi ích của CSDL bảng 2.8 Mục A B C D E F G Lợi nhuận 5 2 1 2 3 1 1

Bảng 2.10: Các giao tác được sắp lại các mục dữ liệu theo TWU giảm dần

TID Giao tác đã sắp lại các mục dữ liệu TU

T1’ (C,1) (A,1) (D,1) 8

T2’ (C,6) (E,2) (A,2) 22

T3’ (C,1) (E,1) (A,1) (B,2) (D,6) 25

T4’ (C,3) (E,1) (B,4) (D,3) 20

T5’ (C,2) (E,1) (B,2) 9

Xét quá trình chèn giao tác T1' ( ,1)( ,1)( ,1)C A D tại bảng 2.10 lên cây UP-tree: Đầu tiên nút C được tạo ra,

' ' ' ' (adsbygoogle = window.adsbygoogle || []).push({});

1 1 1 1

. ( ) ( ( , ) ( , )) 8 (5 2) 1 ( , )

C nu TWU T u A T u D T u C T .

Tiếp theo nút A được tạo là con của nút C với A.count 1 và

' 1

. . ( , ) 1 5 6

A nu C nu u A T .

Nút thứ ba D được tạo là con của nút A và D.count 1 và

8 2 5 1 ) , ( ) , ( . .nu Cnu u AT1' u DT1' D . Giao tác thứ 2 là ' 2 {( ,6) ( ,2) ( ,2)}

T C E A được chèn lên cây UP-tree, giá trị nu tại nút C là C.nu tăng u(C,T2') 6 và C count. tăng 1. Nút mới E được tạo là con của nút C với E count. 1 và E nu u C T. ( , )2' u E T( , ) 122' . Tương tự nút mới A được tạo là nút con của nút E với A count. 1 và A nu. 22. Sau khi chèn tất cả các giao tác lên cây, cây UP-tree được xây dựng xong. Hình 2.14 là cây UP-tree đã hoàn thành, so với cây TWU-tree trong hình 2.13 ta thấy, cùng một nút N, giá trị N.nu trong cây UP-tree nhỏ hơn giá trị N.twu trong cây TWUI-tree .

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Hình 2.13: Cây TWUI-tree của CSDL bảng 2.8 với minutil = 40

Hình 2.14: Cây UP-tree của CSDL bảng 2.8 với minutil = 40

(iii). Cả hai kỹ thuật (i) và (ii) được áp dụng tiếp cho bước khai phá cây UP- tree khi xây dựng cây chiếu của từng mục dữ liệu theo phương pháp FP-growth. Nhờ áp dụng các kỹ thuật này, số tập mục lợi ích cao tiềm năng tìm được giảm nhiều, giúp cho bước 3 xác định các tập mục lợi ích cao từ các tập mục lợi ích cao tiềm năng thực hiện nhanh chóng hơn.

2.4. Kết luận chƣơng 2

Chương 2 trình bày bài toán khai phá tập mục lợi ích cao, phương pháp khai phá tập mục lợi ích cao sử dụng cấu trúc cây tiền tố cùng hai thuật toán khai phá là

Bảng đầu mục

Mục dữ liệu TWU Con trỏ C 96 E 88 A 65 B 61 D 58 Gốc C: 5, 96 E: 4, 88 A: 1, 8 A: 2, 57 B: 2, 31 D: 1, 8 B: 1, 30 D: 1, 30 D: 1, 20 Bảng đầu mục

Mục dữ liệu TWU Con trỏ C 96 E 88 A 65 B 61 D 58 Gốc C: 5, 13 E: 4, 27 A: 1, 6 A: 2, 31 B: 2, 23 D: 1, 8 B: 1, 13 D: 1, 25 D: 1, 20

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

COUI-Mine và UP-Growth. Các thuật toán đều khai phá được trên những tập dữ liệu lớn nhanh và hiệu quả hơn thuật toán Hai pha trong [10] do sử dụng cấu trúc cây tiền tố.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƢƠNG 3: THỰC NGHIỆM KHAI PHÁ TẬP MỤC LỢI ÍCH CAO

3.1. Bài toán phát hiện nhóm các mặt hàng có lợi nhuận cao

Tại Siêu thị tỉnh Hòa Bình, có tổng số hơn 1.000 mặt hàng được bày bán trên hai sàn nhà với diện tích 800 m2

trên đường Trần Hưng Đạo – TP. Hòa Bình – Tỉnh Hòa Bình. Hằng ngày số lượt người mua hàng rất nhiều, nhà quản lý Siêu thị sử dụng phần mền Quản lý bán hàng tại quầy giao dịch để quản lý các mặt hàng được nhập về, mặt hàng được bán ra hằng ngày, các hoá đơn chứng từ kế toán…

Khách hàng có thể tự do lựa chọn mặt hàng cần mua theo tên hàng hoá, đơn giá đã có in sẵn trên các mặt hàng và đặt vào trong giỏ hàng (xe đẩy). Khi chọn xong hàng hoá, khách hàng đẩy xe đến bộ phận thu ngân. Các hàng hoá được cập nhật vào hệ thống tính toán thông qua máy đọc mã vạch. Các tính toán tổng cộng trên hoá đơn được thực hiện tự động và được lưu vào trong CSDL.

Trên hoá đơn có các thông tin về hàng hoá như: mã hàng, tên hàng, đơn vị tính, số lượng, đơn giá, giá trước thuế VAT, % thuế VAT, tiền thuế VAT, thành tiền đã có thuế VAT,…

Với cách quản lý khách hàng như trên, dữ liệu bán hàng của siêu thị chứa đầy đủ các thông tin cần thiết để có thể tổng kết đánh giá tình hình kinh doanh như: sức mua của khách hàng, các mặt hàng nào bán chạy, doanh số,…Từ đó có thể có các chiến lược kinh doanh cho phù hợp.

Bài toán đặt ra là: Từ dữ liệu bán hàng đã có, tìm ra các mặt hàng được khách hàng mua cùng nhau mang lại lợi nhuận cao (chính là các tập mục lợi ích cao), kết quả tìm được sẽ hỗ trợ cho kinh doanh hiệu quả hơn. (adsbygoogle = window.adsbygoogle || []).push({});

3.2. Mô tả dữ liệu

Trong quý I và II năm 2013, CSDL giao tác của Siêu thị là rất lớn, trên 10.000 giao tác với 800 mặt hàng được bán ra. Để thực nghiệm khai phá tập mục lợi ích cao, dữ liệu thực nghiệm trích chọn 3.000 giao tác với 20 mặt hàng thiết yếu hàng ngày. Bảng 3.1 biểu diễn một phần dữ liệu bán hàng của một ngày trong quý I năm 2013 đã được trích chọn.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Bảng 3.1: Dữ liệu đã trích chọn để khai phá

TID Các mặt hàng trong giao tác

01 75g (40); (5); Bánh Choco-Pie Orion 12p (4); t – 190g (10); sinh An An – 12 cuộn/bịch (5); t 350gr (3). 02 Bỉm Pamper cho bé (2); Nước mắm Chin Su Nam Ngư 750ml (10); Kem đánh

răng P/S chanh 110g (3); Mì chính Ajinomoto 400g (5); Sữa tiệt trùng Vinamilk, công thức ADM+, thùng 48 hộp x 110ml/Vinamilk (1);

350gr (2); Cà phê Trung Nguyên G7 hòa tan 3in1 18 gói – 16gam/H (2); t – 190g (20).

03 175gr (5); – 12 cuộn/bịch

(10); Nước mắm Chin Su Nam Ngư 750ml (10); t – 190g (10); Bát ăn cơm men trắng 10 chiếc/01 bộ (3);

3kg (2); 350gr (4).

04 Bỉm Pamper cho bé (4); Nước mắm Chin Su Nam Ngư 750ml (10); Sữa tiệt trùng Vinamilk, công thức ADM+, thùng 48 hộp x 110ml/Vinamilk (2); Bánh Choco-Pie Orion 12p (4); 175gr (5);

tôm chua cay 75g (20); Cốc bầu UG (Thailand) 12 cái/01 bộ (2); (5); 3kg (1); 350gr (5); t – 190g (15).

05 thùng 48 hộp x 110ml/Vinamilk (2); Mì chính Ajinomoto 400g (4); Đĩa men 3kg (3); Sữa tiệt trùng Vinamilk, công thức ADM+, bóng cao cấp 18,25 cm (10); nh 800g (3); Cà phê Trung Nguyên G7 hòa tan 3in1 18 gói – 16gam/H (4)

(10).

06 – 12 cuộn/bịch (3); Nước mắm Chin Su Nam Ngư 750ml (8); 75g (30); Bỉm Pamper cho bé (5); t

– 190g (20); 3kg (4); Sữa tiệt trùng Vinamilk, công thức ADM+, thùng 48 hộp x 110ml/Vinamilk (4);

(6); Kem đánh răng P/S chanh 110g (5). 07 Cá 75g (30); 175gr (15); – 12 cuộn/bịch (6); 330ml x 24/T (2);

(4); Kem đánh răng P/S chanh 110g (3); Nước mắm Chin Su Nam Ngư 750ml (20).

08 Nước mắm Chin Su Nam Ngư 750ml (12); Bát ăn cơm men trắng 10 chiếc/01 800g (6); 3kg (2);

bộ (5); (3); t – 190g

(10) 330ml x 24/T (3).

09 Cốc bầu UG (Thailand) 12 cái/01 bộ (2); Nước mắm Chin Su Nam Ngư 750ml (15); 3kg (1);

(5); t – 190g (20) 75g (30);

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

10 Đĩa men bóng cao cấp 18,25 cm (10); Cà phê Trung Nguyên G7 hòa tan 3in1 18 gói – 16gam/H (3); Nước lau sàn Sunlight, hương hoa Hạ, sạch bóng & thơm mát, bình 4kg/Unilever (2); 350gr (3).

Bảng 3.2: Bảng lợi ích các mặt hàng

Tên các mặt hàng Lợi nhuận (vnđ/đơn vị)

Dầu ăn 5.000

Nước rửa , Sunlight chanh 800g 6.000 Kem đánh răng P/S chanh 110g 2.000 Nước mắm Chin Su Nam Ngư 750ml 5.000 Sữa tiệt trùng Vinamilk, công thức ADM+, (adsbygoogle = window.adsbygoogle || []).push({});

thùng 48 hộp x 110ml/Vinamilk 30.000 B 330ml x 24/T 15.000 Omo Comfort 3kg 18.000 Bỉm Pamper cho bé 20.000 Bánh Choco-Pie Orion 12p 5.000 Mì chính Ajinomoto 400g 4.000 Cá 175gr 9.000

Cà phê Trung Nguyên G7 hòa tan 3in1 18 gói – 16gam/H

6.000

Mì 75g 500

t – 190g 1.000

An An – 12 cuộn/bịch 6.000 Bát ăn cơm men trắng 10 chiếc/01 bộ 10.000

Đĩa men bóng cao cấp 18,25 cm 3.000 Cốc bầu UG (Thailand) 12 cái/01 bộ 15.000 Nước lau sàn Sunlight, hương hoa Hạ, sạch

bóng & thơm mát, bình 4kg/Unilever

8.000

Dầu gội 350gr 7.000

Chuyển đổi dữ liệu:

Để chuẩn bị dữ liệu cho khai phá, các mặt hàng được mã hóa bởi tập số tự nhiên (tức là ánh xạ tập mặt hàng sang tập số tự nhiên - đánh thứ tự các mục dữ liệu từ 1 đến hết). Bảng 3.3 mô tả việc mã hóa các mặt hàng.

Bảng 3.3: Mã hóa các mặt hàng

Mã của mặt hàng Tên mặt hàng

1

2 Nước rửa c 800g

3 Kem đánh răng P/S chanh 110g 4 Nước mắm Chin Su Nam Ngư 750ml 5 Sữa tiệt trùng Vinamilk, công thức ADM+,

thùng 48 hộp x 110ml/Vinamilk.

6 330ml x 24/T

7 3kg

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

9 Bánh Choco-Pie Orion 12p 10 Mì chính Ajinomoto 400g

11 175gr

12 Cà phê Trung Nguyên G7 hòa tan 3in1 18 gói – 16gam/H

13 75g

14 t – 190g

15 – 12 cuộn/bịch

16 Bát ăn cơm men trắng 10 chiếc/01 bộ 17 Đĩa men bóng cao cấp 18,25 cm 18 Cốc bầu UG (Thailand) 12 cái/01 bộ

19 Nước lau sàn Sunlight, hương hoa Hạ, sạch bóng & thơm mát, bình 4kg/Unilever

20 350gr (adsbygoogle = window.adsbygoogle || []).push({});

Tiếp đến, dữ liệu được tiền xử lý đưa về dạng Text, ghi trên tệp CSDL.TXT. Mỗi giao tác được mô tả thành một dòng text trong tệp CSDL.TXT như sau:

Mã của các mặt hàng là số thứ tự các cột, các mã cách nhau một dấu cách, trên mỗi dòng, ứng với cột mã hàng ghi số lượng hàng bán được hoặc 0 nếu giao tác không có mặt hàng đó. Hình 3.1 là tệp CSDL.TXT biểu diễn dữ liệu trong bảng 3.1.

Hình 3.1: Dữ liệu đã mã hóa chuẩn bị cho khai phá

Tệp CSDL.TXT biểu diễn dữ liệu đã tiền xử lý, chuẩn bị cho khai phá tập mục lợi ích cao. Kết quả khai phá sẽ được ánh xạ ngược lại để xác định tên các mặt hàng. Đi cùng với tệp CSDL.TXT là tệp Utable.TXT biểu diễn dữ liệu trong bảng 3.2 bảng lợi ích các mặt hàng.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Các số thể hiện trong tệp Utable.TXT là số lợi nhuận (vnđ/đơn vị) khi bán được của các mặt hàng tại bảng 3.2 bảng lợi ích các mặt hàng.

3.3. Xây dựng chƣơng trình

Chương trình sử dụng thuật toán COUI-Mine để tìm tập mục lợi ích cao trình bày trong chương 2. Chương trình được xây dựng trên ngôn ngữ Visual C# và cài đặt trên môi trường hệ điều hành Windows XP. Máy tính thực nghiệm có cấu hình tối thiểu như sau:

. Tốc độ CPU: 2.0GHz

. Dung lượng bộ nhớ RAM: 512MB . Không gian trống trên ổ cứng: 1GB

Chương trình được thiết kế giao diện tương đối thân thiện và trực quan đối với người sử dụng. không cần cài đặt, để khởi động chương trình, nhấp đúp vào biểu tượng HUIM.exe trong thư mục HUIM_HOABINH của chương trình.

Sau khi khởi động, giao diện của chương trình như hình 3.2.

Hình 3.3: Giao diện chương trình

3.4. Thực nghiệm khai phá tìm tập mục lợi ích cao

Nhập vào ô "Nhập ngưỡng lợi ích tối thiểu", nhấn nút "Chạy chương trình", chương trình sẽ đọc dữ liệu vào từ 2 tệp: tệp CSDL.TXT chứa cơ sở dữ liệu giao tác và tệp Utable.TXT chứa bảng lợi ích của nó. Sau khi khai phá, các tập mục lợi ích cao sẽ được kết xuất ra tệp text là tệp KQ.TXT. Ví dụ, với ngưỡng lợi ích là 20%, dữ liệu giao tác của bảng 3.1 và bảng lợi ích 3.2, kết quả tìm được hơn 100 tập mục lợi ích cao với thời gian khai phá là 0s179ms.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Hình 3.4: Giao diện kết quả khai phá

Giao diện chương trình đưa ra kết quả gồm:

- Nhóm mặt hàng: Các nhóm mặt hàng đã bán đem lại lợi ích được thể hiện qua các số tự nhiên đã được ánh xạ từ 1 đến hết.

- Lợi ích: Là tổng lợi ích của các nhóm mặt hàng đã bán.

- Phần trăm lợi ích: Là tổng lợi ích của các nhóm mặt hàng đã bán được tính theo phần trăm.

3.5. Kết quả thực nghiệm

Kết quả thực nghiệm khai phá dữ liệu trên tệp CSDL.TXT đã khẳng định những vấn đề lý thuyết trong khai phá tập mục lợi ích cao đã trình bày ở chương 2.

Kết quả khai phá tập mục lợi ích cao do chương trình thực nghiệm với lãi suất 20% đã phát hiện được ra 24 nhóm mặt hàng mang lại lợi nhuận cao, từ đó hỗ trợ rất tốt cho các nhà quản lý siêu thị trong việc tổ chức kinh doanh.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

KẾT LUẬN

Kết quả đạt đƣợc trong luận văn

Một phần của tài liệu Khai phá tập mục lợi ích cao sử dụng cấu trúc cây tiền tố (Trang 59 - 92)