Thuật toán khai phá luật kết hợp trọng số chuẩn hóa

Một phần của tài liệu khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng (Trang 63 - 89)

(MINVAL(W))

Ký hiệu trong thuật toán:

DB: Cơ sở dữ liệu giao tác; w: Tập các trọng số của các mục Lk: Tập các k-itemset thƣờng xuyên Ck: Tập các k-itemset trọng số ứng cử SC(X): Số lƣợng giao tác chứa tập mục X

wminsup: Ngƣỡng hỗ trợ trọng số chuẩn hóa

Ck: Tập các i-temset ứng cử.

Nội dung thuật toán MINVAL(W)

Vào: DB, wminsup, minconf, wi (trọng số của các mục) đƣợc sắp xếp theo thứ tự tăng dần, tổng số giao tác và tổng số các mục.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Thuật toán chính (wminsup, minconf, DB, w)

L = Ø;

for (i=1; i<= size; i++) Ci = Li = Ø ;

for (mỗi giao tác) do

(SC, C1, size)=counting(DB, w); k=1; while (Ck≠Ø) do begin k++; Ck = Join(Lk-1); Ck = Prunce(Ck); (Lk) = Checking(Ck, DB); L = L ∪ Lk; end; Rule(SC, L) end; Giải thích:

(1) Ở giai đoạn 1, thuật toán MINVAL(W) giống nhƣ trong thuật toán MINVAL(O) với thủ tục Counting(DB, w).

(2) Các tập mục trọng số thƣờng xuyên và tập mục ứng cử đƣợc sinh ra nhƣ sau:

- Các thủ tục Join, Prune và Checking sinh ra Lk và Ck. Công việc chính của bƣớc Join(Lk-1) là sinh ra Ck. Theo bổ đề 3.2, một itemset ứng cử phải là một tập cha bậc thấp của một số (k-1)-itemset thƣờng xuyên. Trong bƣớc này, ta nối các tập mục trọng số thƣờng xuyên trong Lk-1 với một trong các tập mục có trọng số thấp hơn để có tạo ra một tập cha bậc thấp.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

nếu tất cả các biên j-support của X (j ≤ k) đều lớn hơn số đếm hỗ trợ nhỏ nhất trong số các (k-1)-subset của X, đó là một ƣớc lƣợng và là một cận trên số đếm hỗ trợ của k-itemset X. S ự khác nhau giữa phƣơng pháp tỉa này và phƣơng pháp tỉa trong hàm apriori_gen() ở chỗ, phƣơng pháp này không cần phải kiểm tra các tập con của các tập mục thƣờng xuyên thay vào đó nó sử dụng các giá trị biên support.

- Thủ tụ c Checking sẽ thực hiện tƣơng tự nhƣ MINVAL(O), chỉ có sự khác biệt, các tâp mục ứng cử còn lại sẽ là tập các tập mục thƣờng xuyên Lk và giai đoạn kế tiếp sẽ dựa vào Lk để sinh ra các tập ứng cử.

(3) Thủ tục Rule(SC, L) thực hiện sinh các luật từ các tập mục trọng số thƣờng xuyên tƣơng tự nhƣ trong thuật toán MINVAL(O).

Trong 2 thuật toán trên, thời gian xử lý sẽ rất lớn nếu số lƣợng giao tác cần xử lý quá lớn (do cần phải duyệt toàn bộ CSDL), các nhà nghiên cứu đã đề xuất phƣơng pháp lấy mẫu để khắc phục điều này.

Kết luận chƣơng 3:

Một khái niệm mang tính thực tế là các tập mục không đơn thuần chỉ đƣợc xét là “có” hay “không” trong khi tính độ hỗ trợ mà mỗi tập mục đƣợc kèm theo một trọng số mô tả mức quan trọng của tập mục đó.

Trong chƣơng 3 đã trình bày vấn đề khai phá luật kết hợp có trọng số. Các khái niệm cơ bản cùng ví dụ minh họa và hai thuật toán MINVAL(O), MINVAL(W) đã đƣợc trình bày chi tiết. Luật kết hợp có trọng số mang ý nghĩa thực tiễn hơn luật kết hợp.

Để thấy đƣợc tính ứng dụng của khai phá luật kết hợp trong CSDL, phần tiếp theo trong chƣơng 4 sẽ trình bày thực nghiệm ứng dụng khai phá luật kết hợp trong CSDL sử dụng thuật toán Apriori để tìm các tập mục thƣờng xuyên và luật kết hợp trong một bài toán cụ thể.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chƣơng 4: THỰC NGHIỆM KHAI PHÁ LUẬT KẾT HỢP 4.1. Giới thiệu bài toán

Tại Siêu thị tỉnh Bắc Giang, có tổng số hơn 1000 mặt hàng đƣợc bày bán trên hai sàn nhà với diện tích 800m2 trên đƣờng Hùng Vƣơng-Thành phố Bắc Giang. 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 sau: Số hoá đơn, mã số khách hàng, tên khách hàng, địa chỉ, ngƣời đại diện, ngày, giờ, mã số nhân viên thu ngân, quầy, số trang hoá đơn.

Các thông tin tiếp theo của hoá đơn có liên quan đến hàng hoá nhƣ: mã hàng hoá, tên hàng hoá, số lƣợng đóng gói, đơn vị tính, số lƣợng, đơn giá, giá đóng gói, 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.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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 khách hàng thƣờng mua cùng nhau (chính là tập mục thƣờng xuyên), từ đó tìm ra các luật kết hợp (khách mua nhóm mặt hàng này sẽ mua nhóm mặt hàng khác).

4.2. Dữ liệu thực nghiệm

Trong quý 2/2011, CSDL giao tác của Siêu thị là rất lớn, trên 10000 giao tác với 800 mặt hàng đƣợc bán ra. Để thực nghiệm khai phá luật kết hợp, Tác giả trích chọn dữ liệu thực nghiệm gồm 3000 giao tác của tháng 6/2011 với 30 mặt hàng thiết yếu phục vụ đời sống hằng ngày. Bảng 4.1 biểu diễn một phần dữ liệu đã trích chọn.

Bảng 4.1: Dữ liệu đã trích chọn để khai phá TID Các mặt hàng trong giao tác

01 Dầu ăn, bánh kẹo, mì tôm, muối, gạo

02 Khăn mặt, Bàn chải, Kem đánh răng, Nƣớc mắm, Sữa uống 03 Khăn mặt, Bánh mì, Tƣơng ớt, Muối, Bát

04 Khăn mặt, Nƣớc mắm, Sữa uống, Bánh kẹo, Cá biển, Mì tôm, Cốc, Dao, Thìa

05 Bàn chải, Nƣớc mắm, Bánh mì, Dầu ăn, Mì chính, Mì tôm, Cốc, Dao, Thìa, Chiếu, Lau sàn

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 4.2 mô tả việc mã hóa các mặt hàng.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Bảng 4.2: Mã hóa các mặt hàng Mã của mặt hàng Tên mặt hàng 1 Khăn mặt 2 Bàn chải 3 Kem đánh răng 4 Nƣớc mắm 5 Sữa uống 6 Bánh mì 7 Xà phòng 8 Dầu ăn 9 Bánh kẹo 10 Mì chính 11 Cá biển 12 Tƣơng ớt 13 Mì tôm 14 Muối 15 Gạo 16 Bát 17 Đĩa 18 Cốc 19 Dao 20 Thớt 21 Thìa 22 Ti vi 23 Máy vi tính 24 Máy giặt 25 Điều Hòa 26 Chiếu 27 Lau sàn 28 Quạt tƣờng 29 Quạt Cây 30 Tủ lạnh

Tiếp đến, dữ liệu đƣợc tiền xử lý đƣa về dạng Text, ghi trên tệp input.txt. Mỗi giao tác đƣợc mô tả thành một dòng text trong tệp input.txt nhƣ sau: liệt kê mã của các mặt hàng, các mã cách nhau một dấu cách. Nhƣ vậy, mỗi dòng của

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

tệp input.txt biểu diễn cho một giao tác, chứa mã của các mặt hàng trong giao tác đó. Hình 4.1 là tệp input.txt biểu diễn một phần dữ liệu trong bảng 4.1.

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

Tệp input.txt biểu diễn dữ liệu đã tiền xử lý, chuẩn bị cho khai phá tập mục thƣờng xuyên. Kết quả khai phá sẽ đƣợc ánh xạ ngƣợc lại để xác định tên các mặt hàng.

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

Chƣơng trình sử dụng thuật toán Apriori để tìm tập mục thƣờng xuyên và thuật toán sinh luật để tìm luật kết hợp đƣợc 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:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

. 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 FIM2011.exe trong thƣ mục FIM2011 của chƣơng trình. Chƣơng trình gồm hai vùng làm việc khác nhau: Cửa sổ điều khiển “Tìm tập mục thƣờng xuyên” và “Luật kết hợp” cho phép thực hiện tìm tập mục thƣờng xuyên và luật kết hợp nhƣ đã đƣợc trình bày trong luận văn.

Chƣơng trình nguồn đƣợc trình bày ở phần phụ lục của luận văn. Sau khi khởi động, giao diện của chƣơng trình nhƣ hình 4.2.

Hình 4.2: Giao diện chƣơng trình

4.4. Thực nghiệm khai phá

Tìm tập mục thường xuyên:

Nhấp nút "Chọn tệp" để chọn tệp dữ liệu, ở đây chọn tệp Input.txt. Khi đó có thể xem lại dữ liệu nhờ nút "Xem tệp".

Tiếp đến nhập độ hỗ trợ tối thiểu từ bàn phím; chọn thuật toán khai phá và nhấp nút chạy chƣơng trình. Với ngƣỡng minsup=10%, kết quả tìm đƣợc hơn 424 tập mục thƣờng xuyên với thời gian khai phá là 2s824ms(hình 4.3).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 4.3: Giao diện kết quả khai phá tập mục thƣờng xuyên

Sinh luật kết hợp:

Sau khi chƣơng trình đã tìm đƣợc các tập mục thƣờng xuyên, để tìm luật kết hợp ta nhấp thẻ "Luật kết hợp" trên giao diện của chƣơng trình, nhập độ tin cậy tối thiểu và nhấp nút sinh luật trên giao diện của chƣơng trình. Với độ tin cậy tối thiểu là 35%, chƣơng trình thực hiện mất 2s640ms và tìm đƣợc 408 luật kết hợp (hình 4.4).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Ví dụ: Trong hình 4.4 cho thấy ứng với độ hỗ trợ tối thiểu 10% và độ tin cậy tối thiểu 35% luật kết hợp đầu tiên tìm thấy là 2 → 1

Ánh xạ ngƣợc lại các mặt hàng ta có: Bàn trải → Khăn mặt

Thông tin đƣợc triết xuất ra đƣợc là: trong 3000 giao tác của khách hàng đến mua hàng thì có tới 10 % khách hàng mua Bàn trải và khăn mặt; Luật đƣợc sinh ra là: có 37.23% ngƣời mua Bàn trải thì mua luôn Khăn mặt.

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

Chƣơng trình ứng dụng khai phá luật kết hợp đã thực hiện thành công, cho ta kết quả tìm tập mục thƣờng xuyên và luật kết hợp từ CSDL bán hàng của siêu thị tỉnh Bắc Giang.

Kết quả thực nghiệm khai phá dữ liệu trên tệp Input.txt đã khẳng định những vấn đề lý thuyết trong khai phá luật kết hợp đã trình bày ở chƣơng 2.

Qua thực nghiệm với các ngƣỡng độ hỗ trợ và độ tin cậy khác nhau đã nhận thấy rằng: Khi độ hỗ trợ càng thấp thì số tập mục thƣờng xuyên tìm thấy càng nhiều, độ tin cậy càng cao thì sinh ra càng ít luật kết hợp.

Kết quả khai phá tập mục thƣờng xuyên và luật kết hợp do chƣơng trình thực nghiệm tìm đƣợc đã hỗ trợ rất tốt cho các nhà quản lý siêu thị trong việc tổ chức kinh doanh.

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 1. Những kết quả đã đạt đƣợc.

Có thể nói rằng, khai phá dữ liệu là một trong những kỹ thuật quan trọng, mang tính thời sự không chỉ đối với Việt Nam mà còn của cả nền CNTT thế giới hiện nay. Sự bùng nổ thông tin, dữ liệu toàn cầu, trên mọi mặt của đời sống xã hội cùng với sự phát triển và ứng dụng ngày càng rộng rãi của CNTT trong mọi lĩnh vực đã khiến cho nhu cầu xử lý những khối dữ liệu khổng lồ để kết xuất ra những thông tin, tri thức hữu ích cho ngƣời sử dụng một cách tự động, nhanh chóng và chính xác trở thành nhân tố quan trọng hàng đầu cho mọi thành công của các tổ chức và cá nhân trên thế giới. Khai phá dữ liệu đang đƣợc áp dụng một cách rộng rãi trong nhiều lĩnh vực kinh doanh và đời sống. Rất nhiều tổ chức và công ty lớn trên thế giới đã áp

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

dụng kỹ thuật khai phá dữ liệu vào các hoạt động sản xuất kinh doanh của mình và thu đƣợc những lợi ích to lớn.

Sau một thời gian tìm hiểu và nghiên cứu với đề tài " Khai phá luật kết hợp và ứng dụng", luận văn đã đạt đƣợc những kết quả chính nhƣ sau:

- Khái quát vấn đề phát hiện tri thức từ dữ liệu; trình bày và làm rõ quá trình khám phá tri thức và khai phá dữ liệu.

- Trình bày chi tiết vấn đề khai phá luật kết hợp: từ các khái niệm cơ bản đến phát biểu bài toán. Bài toán khai phá luật kết hợp đƣợc phân rã thành hai bài toán con là khai phá tập mục thƣờng xuyên và sinh luật kết hợp từ các tập mục thƣờng xuyên đã tìm đƣợc. Luận văn đã trình bày các các tiếp cận để khai phá tập mục thƣờng xuyên, hai thuật toán điển hình là thuật toán Apriori và FP-Growth, đồng thời trình bày và phân tích thuật toán sinh luật kết hợp từ các tập mục thƣờng xuyên đã tìm đƣợc.

- Luận văn cũng đã nêu lên đƣợc một số hƣớng mở rộng của khai phá luật kết hợp trong các cơ sở dữ liệu và trình bày chi tiết vấn đề khai phá luật kết hợp có trọng số.

- Để làm rõ kết quả của quá trình tìm hiểu và nghiên cứu, tác giả đã lập trình thực nghiệm thành công, kiểm chứng những cơ sở lý thuyết đã trình bày trong luận văn bằng thuật toán Apriori qua khai phá luật kết hợp trên dữ liệu bán hàng của siêu thị Tỉnh Bắc Giang.

2. Hƣớng phát triển của đề tài là:

Thực nghiệm khai phá luật kết hợp trên dữ liệu bán hàng của Siêu thị nhƣ đã trình bày ở trên mới chỉ dừng lại ở CSDL nhị phân( mặt hàng có xuất hiện hay không xuất hiện trong giao tác), chƣa quan tâm đến số lƣợng hàng bán đƣợc cũng nhƣ lợi nhuận của các giao tác. Đề tài luận văn có thể đƣợc nghiên cứu tiếp theo các hƣớng sau:

- Khai phá tập mục và luật kết hợp trên dữ liệu số để đánh giá đƣợc lợi nhuận của từng tập mục, từng luật tìm đƣợc.

- Kết quả khai phá sinh ra quá nhiều luật ứng với một độ hỗ trợ và một độ tin cậy tối thiểu cho trƣớc, do vậy cần nghiên cứu để sinh luật không dƣ thừa, tối ƣu hoá tính ứng dụng luật.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

TÀI LIỆU THAM KHẢO

Tiếng Việt:

[1] Nguyễn Thanh Bình (2007), “Khai phá dữ liệu: Khái niệm và kỹ thuật”, Huế.

[2] Vũ Đức Thi, Nguyễn Huy Đức (2008), “Thuật toán hiệu quả khai phá tập mục lợi ích cao trên cấu trúc dữ liệu cây”, Tạp chí Tin học và Điều

khiển học, 24(3), tr. 204-216.

[3] Nguyễn Huy Đức (2009), “Khai phá tập mục cổ phần cao và lợi ích cao trong cơ sở dữ liệu”, Luận án Tiến sĩ Toán học, Viện Công nghệ Thông tin – Viện KH và CN Việt Nam

[4] Đỗ Phúc (2001), "Khảo sát quan hệ giữa tập mặt hàng phổ biến trong khai phá dữ liệu và dàn khái niệm", Hội Nghị kỷ niệm 25 năm thành lập

Viện Công nghệ Thông tin, Hà Nội.

[5] Vũ Đức Thi, Lê Hải Khôi ( 1999), “Một số nguyên lý hoạt động của kho dữ liệu”, Tạp chí Tin học và Điều khiển, Tr 27,29-32.

[6] Vũ Đức Thi (1997), “Cơ sở dữ liệu - Kiến thức và thực hành”, Nhà

Một phần của tài liệu khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng (Trang 63 - 89)