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 61 - 89)

3.3.1. Một số khái niệm về trọng số chuẩn hóa

Định nghĩa 3. 6: Một k - itemset X đƣợc gọi là một tập mục không thƣờng xuyên nếu độ hỗ trợ trọng số chuẩn hóa của nó nhỏ hơn wminsup.

Nghĩa là: 1( ) X i j j w k *support(X) < wminsup

Định nghĩa 3 . 7: Độ hỗ trợ trọng số chuẩn hóa (Nomalized Weighted Support) của mộtluật X → Y đƣợc cho bởi biểu thức sau:

) ( 1 ) (   X Y i j j w k *support(XY).

Trong đó, k là kích thƣớc của tập mục (X  Y).

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

Định nghĩa 3.8: Một luật kết hợp trọng số chuẩn hóa nhị phân X → Y đƣợc gọi là đáng quan tâm nếu độ tin cậy của luật X → Y lớn hơn hoặc bằng độ tin cậy tối thiểu (minconf) và (X  Y) là một tập mục trọng số thƣờng xuyên ( Chuẩn hoá)

Định nghĩa 3.9: Số đếm hỗ trợ tối thiểu của một k -itemset thƣờng xuyên chứa Y đƣợc gọi là biên k-support của tập mục Y với trọng số chuẩn hóa và đƣợc cho bởi:

min sup ( , ) ( , ) w B Y k k m W Y k       

Cách tiếp cận khác cho trƣờng hợp trọng số chuẩn hóa:

Ta thiết lập một thuật toán trong đó việc sinh ra các tập mục trọng số thƣờng xuyên tƣơng tự nhƣ trong hàm appriori_gen() cũng nhƣ việc cắt tỉa

các tập mục ứng cử trong mỗi giai đoạn. Tuy nhiên, tính chất “Tập con của một tập mục thƣờng xuyên là mộ t tập mục thƣờng xuyên” sẽ không còn đúng trong trƣờng hợp trọng số chuẩn hóa.

Định nghĩa 3.10: Tập cha bậc thấp ( low-order superset): Cho m ột

tập mụ c X = {x1, x2, xn}, đặt trọng số nhỏ nhất của các mục là wi. Một tập mục Y = X  Z, Z có các trọng số đều nhỏ hơn wi. Thì Y đƣợc gọi là một

tập cha bậc thấp của X.

Định nghĩa 3.11: Tập con bậc cao ( high-order subset): Một tập mục Y X trong đó, mỗi tập mục của Y đều có trọng số lớn hơn hoặc bằng trọng

số mỗi mục trong (X – Y), đƣợc gọi là một tập con bậc cao của X.

Bổ đề 3.1: Nếu một tập mục Y là thƣờng xuyên thì bất kỳ tập con bậc cao nào của Y cũng phải là tập mục thƣờng xuyên.

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 minh: Cho X là mộ t tập con bậc cao của Y. Trọng số trung

bình của X là lớn hơn hoặc bằng trọng số trung bình của Y. Độ hỗ trợ của X lớn hơn hoặc bằng độ hỗ trợ của Y. Do đó, độ hỗ trợ trọng số của X sẽ lớn hơn hoặc bằng độ hỗ trợ trọng số của Y. Vậy nếu Y là tập mục thƣờng xuyên thì X cũng là tập mục thƣờng xuyên.

Bổ đề 3.2: Một (k+1)-itemset X thƣờng xuyên phải là một tập cha bậc thấp của một số k-itemset thƣờng xuyên Y.

Chứng minh: Nếu X là tập mục thƣờng xuyên, thì từ bổ đề 2.2, bất kỳ

tập con bậc cao nào của X cũng phải là một tập mục thƣờng xuyên. Gọi x là một mục thuộc X với trọng số thấp nhất. Khi đó Y = X – x là một tập con bậc cao của X và l à tập thƣờng xuyên. Vậy, X là một tập cha bậc thấp của Y.

3.3.2. Thuật toán khai phá luật kết hợp trọng số chuẩn hóa (MINVAL(W)) (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

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 61 - 89)