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

một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước

60 752 2
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 đề Một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Tác giả Nguyễn Đình Văn
Người hướng dẫn PGS. TS. Hà Quang Thụy
Trường học Đại học Công nghệ, Đại học Quốc gia Hà Nội
Chuyên ngành Hệ Thống Thông Tin
Thể loại Luận văn thạc sĩ
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 60
Dung lượng 2,19 MB

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

Nội dung

một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN ĐÌNH VĂN

MỘT SỐ THUẬT TOÁN KHAI PHÁ LUẬT DÃY VÀ ỨNG DỤNG THỬ NGHIỆM VÀO HỆ THỐNG QUẢN LÝ KHÁCH HÀNG

VÀ TÍNH HÓA ĐƠN NƯỚC

LUẬN VĂN THẠC SĨ

Hà Nội - 2011

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN ĐÌNH VĂN

MỘT SỐ THUẬT TOÁN KHAI PHÁ LUẬT DÃY VÀ ỨNG DỤNG THỬ NGHIỆM VÀO HỆ THỐNG QUẢN LÝ KHÁCH HÀNG

VÀ TÍNH HÓA ĐƠN NƯỚC

Ngành: Công Nghệ Thông Tin Chuyên ngành: Hệ Thống Thông Tin

Mã số: 60.48.05

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Hà Quang Thụy

Hà Nội - 2011

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này với đề tài “Một số thuật toán khai phá dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước” là công trình

do tôi nghiên cứu và hoàn thành dưới sự hướng dẫn của PGS TS Hà Quang Thụy,

trong luận văn có sử dụng một số tài liệu tham khảo như đã nêu trong phần “Tài liệu tham khảo”

Tác giả luận văn

Nguyễn Đình Văn

Trang 4

MỤC LỤC

MỞ ĐẦU 6

CHƯƠNG 1 – KHÁI QUÁT CHUNG VỀ LUẬT DÃY VÀ KHAI PHÁ LUẬT DÃY 8

1.1 Giới thiệu chung về luật kết hợp 8

1.1.1 Khái niệm luật kết hợp 8

1.1.2 Các ứng dụng điển hình của luật kết hợp 9

1.1.3 Thuật toán Apriori 10

1.2 Luật dãy 12

1.2.1 Khái niệm luật dãy và ví dụ 12

1.2.2 Một số ứng dụng 14

1.2.3 Luật dãy và luật kết hợp: một số đối sánh 16

1.2.4 Sơ bộ về các phương pháp khai phá luật dãy 17

CHƯƠNG 2 – CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY 21

2.1 Khái quát về khai phá luật dãy 21

2.2 Các thuật toán khởi thủy 23

2.2.1 Thuật toán AprioriAll 23

2.2.2 Thuật toán AprioriSome 27

2.2.3 Thuật toán GSP (Generalized Sequential Patterns) 30

2.3 Hai phương pháp khai phá luật dãy 36

2.3.1 Khai phá dãy sử dụng kỹ thuật phân vùng (thuật toán Dynamic DISC-all) 36

2.3.2 Khai phá luật dãy bằng mã hóa khối cơ bản với thuật toán PRISM 38

CHƯƠNG 3 – ĐỀ XUẤT ỨNG DỤNG KHAI PHÁ LUẬT DÃY TRONG HỆ THỐNG QUẢN LÝ KHÁCH HÀNG VÀ TÍNH HÓA ĐƠN NƯỚC 43

3.1 Tổng quan về hệ thống quản lý khách hàng và tính hóa đơn nước 43

3.1.1 Phân hệ quản lý khách hàng 44

3.1.2 Phân hệ lập và in hóa đơn 46

3.1.3 Phân hệ thanh toán hóa đơn và quản lý nợ 48

3.1.4 Phân hệ báo cáo thống kê 49

3.2 Phát biểu bài toán 50

3.3 Mô hình giái quyết 52

3.4 Thực nghiệm và đánh giá 55

3.4.1 Giới thiệu thực nghiệm 55

3.4.2 Kết quả thực nghiệm và nhận xét 57

KẾT LUẬN 58

Trang 5

Itemset Tập hợp các phần tử (item) xảy ra cùng lúc

Large sequence Dãy phổ biến

Maximal sequence Dãy tối đa, dãy phổ biến nhất

Projected database CSDL quy chiếu

Support threshold Ngưỡng hỗ trợ

Trang 6

MỞ ĐẦU

Khai phá luật dãy là một trong những lĩnh vực rất quan trọng trong nghiên cứu khai phá dữ liệu của thập kỷ gần đây và ngày càng được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau Vì trong thực tế, dữ liệu dãy tồn tại rất phổ biến, như dãy dữ liệu mua sắm của khách hàng, dữ liệu điều trị y tế, các dữ liệu liên quan đến các thảm họa

tự nhiên, dữ liệu xử lý khoa học và kỹ thuật, dữ liệu chứng khoán và phân tích thị trường, dữ liệu các cuộc gọi điện thoại, nhật ký truy cập web, dãy ADN biểu thị gen Mục đích chính của khai phá luật dãy là tìm kiếm và phát hiện tất cả các dãy con lặp đi lặp lại trong một CSDL theo yếu tố thời gian

Hiện nay, trên thế giới đã có rất nhiều nhóm tác giả nghiên cứu đề xuất các thuật toán với các phương pháp tiếp cận khai phá luật dãy khác nhau [1,2,5-12,14-16] nhằm giải quyết sự đa dạng của các loại bài toán cũng như đưa ra các hướng cải tiến nhằm giảm thiểu chi phí thời gian và tài nguyên hệ thống

Luận văn này nghiên cứu một số thuật toán khai phá luật dãy, trong đó tập trung chủ yếu vào các thuật toán AprioriAll, AprioriSome [1], vì đây là những thuật toán rất nổi tiếng trong lĩnh vực khai phá luật dãy và phù hợp với việc ứng dụng thử nghiệm vào Hệ thống Quản lý khách hàng và tính hóa đơn nước Luận văn tiếp tục khóa luận

tốt nghiệp đại học trước đây của tôi (Nguyễn Đình Văn (2003), Phân tích thiết kế hệ thống và ứng dụng vào bài toán quản lý khách hàng và tính hóa đơn nước) trong việc

bổ sung những tính năng nâng cao cho hệ thống Luận văn hy vọng phát hiện được một số luật dãy, chẳng hạn như dãy thời gian tiêu thụ nước nhiều nhất trong năm, dãy dịch chuyển mức tiêu thụ nước theo mục đích sử dụng (sinh hoạt, sản xuất, kinh doanh, công cộng, …), phát hiện những trường hợp bất thường trong sử dụng nước (tỉ

lệ đăng ký sử dụng và thực tế sử dụng nước), mức độ thất thoát nước và nguyên nhân thất thoát nước … để lãnh đạo xí nghiệp có thể đưa ra các biện pháp quản lý, các chiến lược sản xuất, kinh doanh phù hợp

Luận văn được trình bày gồm có phần mở đầu, ba chương và phần kết luận Trong chương một, luận văn tập trung chủ yếu vào giới thiệu tổng quan về luật dãy và khái phá luật dãy Vì luật dãy có những mối liên hệ gần gũi với luật kết hợp và một số thuật toán khai phá luật dãy trong luận văn là mở rộng của thuật toán điển hình Apirori khai phá luật kết hợp, nên phần này sẽ trình bày khái quát về luật kết hợp, một

số đối sánh giữa luật dãy và luật kết hợp Giới thiệu sơ bộ các phương pháp tiếp cận khai phá luật dãy và các thuật toán điển hình tương ứng Nội dung của chương này được tổng hợp từ các tài liệu [1,3-4,13]

Trong chương hai, luận văn tập trung giới thiệu các thuật toán khai phá luật dãy như AprioriAll [1], AprioriSome [1], GSP [2] là những thuật toán khởi thủy khai phá luật dãy Giới thiệu hai phương pháp khai phá luật dãy được công bố thời gian gần đây

Trang 7

là “Khai phá luật dãy sử dụng kỹ thuật phân vùng” [10] và “Khai phá luật dãy bằng mã hóa khối cơ bản” [16]

Trong chương ba, luận văn giới thiệu tổng quan về Hệ thống Quản lý khách hàng

và tính hóa đơn nước, đồng thời đề xuất ứng dụng khai phá luật dãy với thuật toán AprioriAll Trong đó, đưa ra yêu cầu đầu bài và mô hình cụ thể giải quyết bài toán Luận văn sử dụng dữ liệu mô phỏng của Xí nghiệp kinh doanh nước sạch Hoàn Kiếm làm dữ liệu thử nghiệm để thực thi chương trình, đánh giá kết quả thực nghiệm

Luận văn được hỗ trợ một phần từ Đề tài QG.10-38

Luận văn được thực hiện dưới sự hướng dẫn của PGS TS Hà Quang Thụy – trường Đại học Công Nghệ Em xin bày tỏ lòng biết ơn sâu sắc tới Thầy đã hướng dẫn

và có ý kiến chỉ dẫn quý báu trong quá trình em thực hiện luận văn Xin chân thành cảm ơn Thạc sĩ Đặng Tiểu Hùng – Công ty CSE đã đóng góp nhiều ý kiến bổ ích để bản luận văn được hoàn thiện hơn Cuối cùng xin bày tỏ lòng biết ơn tới những người thân trong gia đình, bạn bè đã động viên và giúp đỡ để tác giả hoàn thành bản luận văn này

Trang 8

CHƯƠNG 1 – KHÁI QUÁT CHUNG VỀ LUẬT DÃY VÀ

KHAI PHÁ LUẬT DÃY

Khai phá luật dãy là một chủ đề thiết thực và quan trọng trong khai phá dữ liệu với nhiều ứng dụng như là trong phân tích giao dịch mua hàng của khách hàng, khai thác weblogs, khai thác các dãy ADN, nghiên cứu dữ liệu trong các bài toán khí tượng

- thủy văn như dự báo thời tiết, các thảm họa tự nhiên như động đất, sóng thần

Các thuật toán khai phá luật dãy kế thừa nhiều từ các thuật toán khai phá luật kết hợp, và nhiều thuật toán trong số đó là mở rộng của các thuật toán khởi thủy, ở đó sự khác biệt chính là trong khai phá luật dãy đưa ra các phân tích liên giao dịch (inter-transaction), trong khi đó khai phá luật kết hợp là tìm luật về mối liên quan giữa các phần tử trong cùng một giao dịch (intra- transaction) Trước tiên, ta cần tìm hiểu một

số vấn đề của luật kết hợp

1.1 Giới thiệu chung về luật kết hợp

1.1.1 Khái niệm luật kết hợp

Mục đích của luật kết hợp (Association Rule) là tìm ra các mối liên hệ giữa các đối tượng trong khối lượng lớn dữ liệu [4] Nội dung của luật kết hợp được phát biểu như sau:

Cho tập các phần tử I = {i1, i2, …, im} Cho CSDL D là tập các giao dịch, trong

đó mỗi giao dịch T là một tập các phần tử, tức là T  I Mỗi giao dịch được gắn với một định danh gọi là TID

Cho A là tập các phần tử Giao dịch T được gọi là chứa A nếu và chỉ nếu A  T Một luật kết hợp có dạng A  B, trong đó A  I, B  I và A  B = Ø

Độ hỗ trợ (support) và độ tin cây (confidence) là 2 tham số dùng để đo lường luật kết hợp

Luật A  B trong tập giao dịch D với độ hỗ trợ (support) s, kí hiệu là support(A

 B), trong đó s là tỉ lệ phần trăm của các giao dịch trong D mà có chứa A  B Hay

Trang 9

Luật A  B có độ tin cậy (confidence) c trong tập giao dịch D, kí hiệu là confidence(A  B), trong đó c là tỉ lệ phần trăm của các giao dịch trong D có chứa A

và cũng chứa B Hay là xác suất P(B | A)

Công thức để tính độ tin cậy của luật A  B là xác suất có điều kiện B khi đã biết

A, như sau:

confidence(A  B) = P(B | A ) =

)(

)

A (

A n

B

n

Trong đó: n(A) là số giao dịch chứa A; n(A  B ) là số giao dịch có chứa (A  B ) Các luật đáp ứng được (lớn hơn hoặc bằng) cả ngưỡng hỗ trợ tối thiểu (min_sup)

và ngưỡng tin cậy tối thiểu (min_conf) được gọi là các luật mạnh (strong rules) Thông

thường, ta viết độ hỗ trợ và độ tin cậy là các giá trị giữa khoảng 0% và 100% thay vì

từ 0 đến 1.0

min_sup và min_conf gọi là các giá trị ngưỡng (threshold) và phải xác định trước

khi sinh các luật kết hợp

1.1.2 Các ứng dụng điển hình của luật kết hợp

Một số ứng dụng điển hình như: phân tích giỏ hàng (market basket analysis), đưa

ra chiến lược tiếp thị, thiết kế bài trí gian hàng, chiến lược bán hàng khuyến mại, các bài toán phân lớp, phân cụm,

Market basket analysis: Chẳng hạn, một người quản lý một chi nhánh bán hàng,

họ muốn biết thêm về thói quen mua sắm của khách hàng Cụ thể như họ muốn biết rằng “Trong mỗi lần mua sắm, khách hàng thường mua các nhóm mặt hàng nào cùng nhau?” Để trả lời câu hỏi này, việc phân tích giỏ khách hàng sẽ được thực hiện trên

dữ liệu mua bán lẻ của khách hàng đã được lưu trữ Sau đó có thể sử dụng kết quả đó

để lên kế hoạch tiếp thị, chiến lược quảng cáo hoặc dự định bổ sung các danh mục hàng hóa mới Việc phân tích giỏ hàng có thể giúp bạn thiết kế gian hàng với các cách bài trí hàng hóa khác nhau Các mặt hàng thường xuyên được mua với nhau có thể được đặt ở gần nhau để thúc đẩy việc bán hàng Nếu khách hàng mua máy tính cũng

có xu hướng mua phần mềm diệt virus cùng lúc, cũng thế, đặt màn hình gần với các phần mềm hiển thị có thể giúp tăng doanh số bán hàng của cả hai Trong một chiến lược khác, bố trí phần cứng và phần mềm ở hai đầu của cửa hàng có thể lôi kéo khách hàng mua những mặt hàng khác trên đường di chuyển giữa hai vị trí Ví dụ, sau khi quyết định mua một máy tính đắt tiền, trong khi đến mua phần mềm diệt virus, khách hàng quan sát thấy hệ thống an ninh gia đình được trưng bày và có thể quyết định mua Việc phân tích giỏ hàng cũng có thể giúp các nhà bán lẻ đưa ra các kế hoạch bán hàng giảm giá Thông thường, khách hàng có xu hướng mua máy tính và máy in với nhau, khi đó có thể bán giảm giá máy in nếu khách hàng mua máy tính

Trang 10

Trong gian hàng, mỗi mặt hàng gắn với một biến Boolean biểu thị sự có mặt hay vắng mặt của mặt hàng đó Tiếp đến, mỗi giỏ hàng có thể được thể hiện bởi một vector Boolean các giá trị được gán cho các biến đó Các vector Boolean biểu thị các mẫu mua hàng mà ở đó các mặt hàng được kết hợp một cách thường xuyên hoặc được mua với nhau Các mẫu này có thể được biểu thị ở dạng các luật kết hợp Ví dụ, khách hàng mua máy tính cũng có xu hướng mua phần mềm diệt virus cùng lúc, có thể được biểu diễn với luật kết hợp như sau:

computer  antivirus_software [support = 2%, confidence = 60%]

support = 2% nghĩa là có 2% trong tất cả các giao dịch được phân tích cho thấy máy tính và phần mềm diệt virus được mua cùng lúc confidence = 60% nghĩa là có 60% số

lượng khách hàng đã mua máy tính thì cũng mua phần mềm Thông thường, các luật kết hợp được quan tâm nếu chúng đáp ứng được cả ngưỡng hỗ trợ tối thiểu và ngưỡng tin cậy tối thiểu Các ngưỡng này có thể được thiết lập bởi người dùng

Một số thuật toán thường được sử dụng cho khai phá luật kết hợp như: Apriori, Eclat, Frequent-Pattern tree, … Dưới đây sẽ trình bày chi tiết thuật toán Apriori vì thuật toán này được mở rộng để sử dụng cho khai phá luật dãy

1.1.3 Thuật toán Apriori

Tư tưởng của thuật toán Apriori là:

- Tìm tất cả các tập thường xuyên (frequent itemsets): k-itemset (itemsets gồm

k items) được dùng để tìm (k+1)-itemset

- Đầu tiên tìm 1-itemset (ký hiệu L1); L1 được dùng để tìm L2 (2-itemsets); L2được dùng để tìm L3 (3-itemset) và tiếp tục cho đến khi không có k-itemset được tìm thấy

- Từ các tập thường xuyên (frequent itemsets) sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa mãn 2 thamsố min_sup và min_conf)

 Thuật toán Apriori [4]

Join Step: Ck is generated by joining Lk-1with itself

Prune Step: Any (k-1)-itemset that is not frequent cannot be a

subset of a frequent k-itemset

Pseudo-code:

Ck: Candidate itemset of size k

Lk: frequent itemset of size k

L1 = {frequent items};

for (k = 1; Lk !=Ø; k++) do

Ck+1 = candidates generated from Lk

for each transaction t in database do

increment the count of all candidates in Ck+1 that are contained in t

Lk+1 = candidates in Ck+1 with min_support

end

Trang 11

return kLk

Cụ thể, thực hiện theo các bước sau:

Bước 1: Duyệt toàn bộ CSDL để có được độ hỗ trợ s của 1-itemset, so sánh s với min_sup, để có được 1-itemset (L1)

Bước 2: Thực hiện phép nối (join) Lk-1 với Lk-1 để sinh ra tập ứng viên k-itemset Loại

bỏ các tập không phải là tập thường xuyên ta thu được k-itemset

Bước 3: Duyệt CSDL để có được độ hỗ trợ s của mỗi tập ứng viên k-itemset, so sánh s với min_sup để loại bỏ các tập không phải là tập thường xuyên (có s < min_sup), thu

được tập thường xuyên k–itemset (Lk)

Bước 4: Lặp lại từ bước 2 cho đến khi tập ứng viên là rỗng (không tìm thấy tập thường xuyên)

Bước 5: Với mỗi tập thường xuyên I, sinh tất cả các tập con s không rỗng của I

Bước 6: Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s) nếu độ tin cậy (confidence) của nó > = min_conf

Chẳn hạn với I= {A1,A2,A5},các tập con của I:

{A1}, {A2}, {A5}, {A1,A2},{A1,A5},{A2,A5}

sẽ có các luật sau

{A1} => {A2,A5},{A2} =>{A1,A5},{A5} =>{A1,A2}

{A1,A2} =>{A5},{A1,A5} =>{A2},{A2,A5} => {A1}

 Ví dụ: Giả sử ta có có sở dữ liệu giao dịch như sau :

Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau

Trang 12

Ta có tập thường xuyên I ={B,C,E}, với min_conf = 80% ta có 2 luật kết hợp là

{B,C} => {E} và {C,E} => {B}

1.2 Luật dãy

1.2.1 Khái niệm luật dãy và ví dụ

Ta giới thiệu vấn đề dựa trên quá trình mua bán hàng và một CSDL lưu trữ thông tin giao dịch mua bán hàng bao gồm các thông tin về mã khách hàng (customer-id), thời gian giao dịch (transaction-time) và các mặt hàng trong giao dịch

 Các khái niệm

Một itemset là một tập không rỗng các phần tử (item)

Một dãy (sequence) là một danh sách có thứ tự các itemset

Không mất tính tổng quát, chúng ta giả sử rằng một tập các phần tử được ánh xạ

tới một tập các số nguyên liền kề Ta biểu thị itemset i bởi (i1i2 im), trong đó ij là một phần tử Ta biểu thị dãy s bởi (s1s2 sn), trong đó sj là một itemset

Trang 13

Dãy (a1a2 an) được chứa trong dãy (b1b2 bn) nếu ở đó tồn tại các số nguyên i1 <

i2 < < in sao cho a1  bi1 , a2  bi2 , , an  bin Ta sử dụng ký hiệu  để biểu thị quan hệ “được chứa trong” Ví dụ, dãy <(3) (4,5) (8)>  <(7) (3 8) (9) (4 5 6) (8)>, vì ((3)  (3 8), (4 5)  (4 5 6) và (8)  (8) Tuy nhiên, dãy <(3) (5)> không được chứa trong <(3 5)> và ngược lại Phần tử 3 và 5 trong dãy <(3) (5)> mô tả chúng không nằm trong cùng một lần giao dịch, trong khi phần tử 3 và 5 trong dãy <(3 5)> mô tả chúng

nằm trong một lần giao dịch Trong một tập các dãy, một dãy s là lớn nhất hay tối đa (maximal) nếu s không được chứa trong bất kỳ dãy nào khác

Tất cả các giao dịch của cùng một khách hàng có thể được xem như là một dãy Trong đó, mỗi giao dịch được xem như một tập các phần tử, và danh sách các giao dịch theo thứ tự tăng dần về thời gian giao dịch tương ứng với một dãy Chúng ta gọi

đó là một dãy khách hàng (customer-sequence) Ta biểu thị các giao dịch của một

khách hàng được sắp xếp thứ tự tăng dần theo thời gian là (T1, T2, ., Tn) Tập các phần tử (item) trong Ti được biểu thị bởi itemset(Ti) Dãy customer-sequence của một

khách hàng là một dãy <itemset(T1) itemset(T2) itemset(Tn)>

Một khách hàng hỗ trợ một dãy s nếu s được chứa trong dãy customer-sequence đối với khách hàng đó Độ hỗ trợ của một dãy được định nghĩa là số khách hàng hỗ trợ

dãy đó

Các dãy tối đa trong số tất cả các dãy phổ biến đáp ứng mức hỗ trợ tối thiểu cụ

thể nào đó được gọi là luật dãy hay mẫu dãy (sequential patterns) [1]

Ta gọi dãy đáp ứng độ hỗ trợ tối thiểu là dãy phổ biến (large sequence)

 Ví dụ

Cho CSDL mua bán hàng thể hiện trong hình 1.1

June 10 '93 June 12 '93 June 15 '93 June 20 '93 June 25 '93 June 25 '93 June 25 '93 June 30 '93 June 30 '93 July 25 '93

Trang 14

Ví dụ về một dãy mà không có hỗ trợ tối thiểu là dãy <(10 20) (30)>, dãy này chỉ xuất hiện trong giao dịch của khách hàng 2 Các dãy <(30)>, <(40)>, <(70)>,

<(90)>, <(30) (40)>, <(30) (70)>, <(40 70)> mặc dù thỏa mãn hỗ trợ tối thiểu, nhưng chúng không phải dãy tối đa nên không phải là kết quả cần tìm

Sequential Patterns with support > 25%

<(30) (90)>

<(30) (40 70)>

Hình 1.4: Tập kết quả 1.2.2 Một số ứng dụng

 Khai phá dãy cho các mẫu hành vi người dùng trong lĩnh vực thương mại điện thoại di động [7]

Sự phát triển của máy tính và các công nghệ truyền thông gần đây giúp cho các

hệ thống liên lạc cá nhân (Personal Communication Systems - PCSs) ngày càng trở nên phổ biến, đặt ra vấn đề về quản lý thông tin di động

Trang 15

Mô hình hóa một cách hiệu quả các mẫu hành vi của người sử dụng trong các hệ thống điện thoại di động đem lại lợi ích không chỉ cho người sử dụng trong những truy cập thông minh, mà còn đem lại lợi nhuận tài chính cho các nhà cung cấp dịch vụ di động như quảng cáo Trong môi trường web, người sử dụng di động có thể yêu cầu các loại hình dịch vụ khác nhau và ứng dụng của điện thoại di động, PDA hay máy tính xách tay từ bất cứ đâu tại bất kỳ thời gian nào thông qua GSM, GPRS hoặc mạng không dây Rõ ràng là những hành vi của người sử dụng điện thoại di động (trong đó

vị trí và dịch vụ vốn đã cùng tồn tại) trở nên phức tạp hơn so với các hệ thống web truyền thống Để giúp người sử dụng thu nhận được thông tin mong muốn trong một thời gian ngắn là một trong những ứng dụng nhiều hứa hẹn, đặc biệt khi mà người dùng không có nhiều thời gian để lướt nhiều trang web

Hệ thống quản lý thông tin di động lưu trữ và cập nhật các thông tin vị trí của người sử dụng điện thoại di động, những người được phục vụ bởi hệ thống Một chủ

đề nóng trong lĩnh vực nghiên cứu quản lý thông tin di động là dự đoán di động Dự đoán di động có thể được định nghĩa là dự đoán vị trí di chuyển tiếp theo của người sử dụng di động giữa các vùng trong hệ thống liên lạc cá nhân PCS hoặc mạng GSM Dự đoán đó có thể được sử dụng để tăng hiệu quả của PCSs Sử dụng dự đoán di chuyển,

hệ thống có thể phân bổ nguồn tài nguyên một cách hiệu quả khả năng di chuyển đến các vùng thay vì phân bổ nguồn tài nguyên một cách không có định hướng trong các vùng lân cận của người sử dụng điện thoại di động Hiệu quả phân bổ nguồn tài nguyên cho người dùng di động sẽ cải thiện việc sử dụng tài nguyên và giảm độ trễ trong việc tiếp cận các nguồn tài nguyên Dự báo chính xác thông tin vị trí cũng rất quan trọng trong xử lý các truy vấn phụ thuộc vào vị trí của người dùng di động Khi người dùng đưa ra một truy vấn liên quan đến vị trí, câu trả lời cho truy vấn sẽ phụ thuộc vào vị trí hiện tại của người dùng Nhiều phạm vi ứng dụng bao gồm cả lĩnh vực chăm sóc sức khỏe, khoa học sinh học, quản lý khách sạn, và lợi ích quân sự từ hiệu quả xử lý các truy vấn phụ thuộc vào vị trí Với hiệu quả dự đoán về vị trí, có thể thể trả lời các truy vấn liên quan đến vị trí di chuyển tiếp theo của người sử dụng

So với số lượng công việc thực hiện cho việc cập nhật vị trí, một số ít đã được thực hiện trong lĩnh vực dự báo di chuyển Những công việc này có một số hạn chế, được giải thích như sau:

 Một số trong đó là sự không nỗ lực tìm kiếm các mẫu thông tin di động Thay vào đó, các mẫu này được giả định là có sẵn Những mẫu này sau đó được sử dụng để dự báo di chuyển

 Việc dự đoán được dựa trên khả năng phân bố của tốc độ và hướng của người sử dụng điện thoại di động Để thu thập những thông tin như vậy, cần thiết phải có những công cụ rất tinh vi và tốn kém như hệ thống định

vị toàn cầu (Global Positioning System - GPS)

Trang 16

Nhằm khắc phục những hạn chế trên, người ta đã phát triển một thuật toán dự đoán di động hiệu quả Những qui luật này được gọi là các mẫu di động Sau đó, các luật di động này được trích xuất ra từ các mẫu di động Các quy tắc di động được gắn với quỹ đạo hiện tại của một người sử dụng điện thoại di động, và được sử dụng cho các dự đoán hướng di chuyển tiếp theo của người dùng Thuật toán dự đoán này là khai phá các mẫu di động của người dùng và sinh ra các luật di động, được thực hiện offline bởi hệ thống Tuy nhiên, dự báo di chuyển được thực hiện online Điều đó có nghĩa là bất cứ khi nào người dùng có ý định thực hiện một di chuyển trong một khu vực nhất định, một yêu cầu dự đoán sẽ được gửi đến hệ thống và dự đoán được thực hiện bởi hệ thống bằng cách sử dụng các luật di động dựa trên thuật toán dự đoán

Hình 1.5: Kiến trúc tổng thể của hệ thống quản lý thông tin di động

1.2.3 Luật dãy và luật kết hợp: một số đối sánh

Vấn đề của luật kết hợp là tìm kiếm các mẫu thường xuyên, các liên kết, các mối tương quan, hoặc các cấu trúc có quan hệ nhân quả giữa tập các phần tử hoặc các đối tượng trong các CSDL giao dịch, CSDL quan hệ, các kho thông tin khác Lĩnh vực khai phá luật kết hợp được phát triển với nhiều mục đích như thực hiện phân tích thói quen mua bán hàng, trong đó cần tìm những mặt hàng được mua với nhau nhiều nhất Như trong khai phá web, khai phá luật kết hợp tìm các trang web liên quan được truy cập theo đợt, điều đó sẽ cung cấp những ước tính nhất định về xác suất truy cập web

Ví dụ như “Nếu một người truy cập trang CNN thì có đến 60% khả năng họ sẽ truy cập trang ABC News trong tháng đó”

Trong khi đó, vấn đề của luật dãy là tìm kiếm các mẫu có liên quan đến yếu tố thời gian trên một CSDL dãy (các phần tử được sắp thứ tự), ví dụ như CSDL nhật ký duyệt web Khai phá luật dãy được xem là mở rộng của khai phá luật kết hợp, vì luật kết hợp chỉ khảo sát các mẫu không có liên quan đến yếu tố thời gian Khai phá luật dãy có vai trò rất quan trọng trong nhiều ứng dụng thực tế, ví dụ như việc phát hiện tri

Trang 17

thức trong dữ liệu nhật ký web, do nhật ký web được sắp xếp theo thời gian Khi đó, khai phá luật dãy có thể cho kết quả như “Nếu người dùng truy cập trang X, sau đó truy cập trang Y, thì c% khả năng sẽ truy cập trang Z”

1.2.4 Sơ bộ về các phương pháp khai phá luật dãy

 Phương pháp dựa trên Apriori (Apriori-based method)

Thuật toán GSP dựa trên nguyên tắc duyệt dữ liệu theo chiều rộng (breadth-first),

mở rộng của mô hình A-priori Thuật toán GSP sử dụng phương pháp “Tạo – Tỉa”

(“Generating-Pruning”) được định nghĩa trong (Agrawal và cộng sự, 1993.) và thực

hiện theo cách sau đây Dãy ứng viên có độ dài (k +1) được tạo ra sử dụng phép nối hai dãy phổ biến, s1 và s2, có độ dài k, nếu dãy con thu được bằng cách lược bỏ phần tử đầu tiên của s1 trùng với dãy con thu được bằng cách lược bỏ phần tử cuối cùng của s2 Với ví dụ trong Hình 1.6, và k = 2, ta có s1 là <(DVD Rec, DVD-R)> và s2 là <(DVD-R) (Video Soft)>, khi đó dãy ứng viên sẽ là <“(DVD Rec, DVD-R) (Video Soft)”> bởi dãy con được nói đến ở trên là <(DVD-R)> (chung của s1 và s2) Một phương pháp

khác sử dụng nguyên lý "Generating-Pruning" là PSP (Masseglia et al., 1998) Sự

khác biệt chính với GSP là các ứng viên cũng như các dãy phổ biến được quản lý trong một cấu trúc hiệu quả hơn Các phương pháp trình bày cho đến nay được thiết kế

để phụ thuộc ít nhất có thể vào bộ nhớ chính Vì chúng cần phải tải toàn bộ CSDL (hoặc một ánh xạ của CSDL) trong bộ nhớ chính Phương pháp này đạt hiệu quả cao khi CSDL có thể phù hợp với bộ nhớ

C1 Camcorder, MiniDV Digital Camera MemCard USB Key

Hình 1.6: Các dãy dữ liệu của 4 khách hàng mua trong 4 ngày

 Phương pháp dựa trên định dạng dọc (Vertical format-based method)

Trong (Zaki, 2001), tác giả đề xuất thuật toán SPADE (Sequential PAttern Discovery using Equivalent Class – Khai phá mẫu dãy sử dụng lớp tương đương) Ý tưởng chính của phương pháp này là một phân cụm các dãy phổ biến dựa trên các tiền

tố phổ biến của chúng và tính các dãy ứng viên nhờ một ánh xạ của CSDL (nạp trong

bộ nhớ chính) SPADE chỉ cần quét CSDL ba lần để trích xuất các mẫu dãy Lần quét đầu tiên nhằm tìm kiếm các phần tử thường xuyên, lần thứ hai để tìm kiếm các dãy phổ biến có độ dài 2 (length 2) và lần cuối cùng để kết hợp các dãy phổ biến có độ dài

2, một bảng chứa định danh tương ứng của các dãy và tập các phần tử trong CSDL (ví

dụ như dữ liệu dãy có chứa các dãy phổ biến và mốc thời gian tương ứng) Dựa trên

những biểu diễn này trong bộ nhớ chính, độ hỗ trợ của các dãy ứng viên có độ dài k là kết quả của phép nối (join) trên các bảng liên quan đến các dãy phổ biến có độ dài (k -

1) có thể sinh ra ứng viên này (như vậy, mọi thao tác sau khi khai phá các dãy phổ

Trang 18

biến có chiều dài 2 được thực hiện trong bộ nhớ) SPAM (Ayres et al., 2002) là một phương pháp khác mà cần phải ánh xạ CSDL trong bộ nhớ chính Các tác giả đã đề xuất ánh xạ CSDL theo không gian điểm ảnh định dạng dọc (vertical bitmap) cho việc thể hiện các ứng viên và tính độ hỗ trợ

 Các phương pháp dựa trên việc phát triển mẫu (Pattern growth based methods) Một cách tiếp cận khởi đầu cho khai thác mẫu dãy thực hiện phép chiếu đệ quy

các dữ liệu dãy thành các CSDL nhỏ hơn Đề xuất trong (Han et al., 2000), FreeSpan

là thuật toán đầu tiên xem xét phương pháp quy chiếu mẫu (pattern-projection) trong

khai phá mẫu dãy Công trình được tiếp tục với PrefixSpan, (Pei et al., 2001), dựa trên

nghiên cứu về số lượng các ứng viên được đề xuất bởi phương pháp Pruning Bắt đầu từ các phần tử thường xuyên của CSDL, PrefixSpan sinh ra CSDL

Generating-quy chiếu với phần dữ liệu dãy còn lại Các CSDL Generating-quy chiếu như vậy chứa các hậu tố của dữ liệu dãy từ CSDL gốc, được nhóm theo các tiền tố Quá trình này được lặp đi lặp lại một cách đệ quy cho đến khi không có phần tử thường xuyên nào được tìm thấy trong các CSDL quy chiếu Ở mức này, mẫu dãy phổ biến là đường đi của các phần tử thường xuyên đến CSDL quy chiếu đó

 Các mẫu dãy đóng (Closed Sequential Patterns)

Mẫu dãy đóng là mẫu dãy mà không được chứa trong mẫu dãy khác có cùng mức

hỗ trợ Xét CSDL minh họa trong hình 1.6, mẫu dãy phổ biến <(DVD Rec) (Video Soft)> không phải là mẫu dãy đóng vì nó được chứa trong mẫu dãy s2 và có cùng độ hỗ trợ (50%) Mặt khác, mẫu dãy <(Camcorder, MiniDV)> là mẫu dãy đóng vì nó được chứa trong mẫu dãy s1 nhưng có độ hỗ trợ là 75%, khác với độ hỗ trợ của s1 là 50%

Thuật toán đầu tiên cho việc trích xuất các mẫu dãy đóng là CloSpan (Yan et al.,

2003) với việc phát hiện các mẫu tuần tự không đóng, tránh được một số lượng lớn các lần gọi đệ quy Thuật toán CloSpan dựa trên việc phát hiện các mẫu tuần tự có độ dài

2, ví dụ như “A luôn xảy ra trước hoặc sau B” Xét CSDL trong hình 1.6, chúng ta biết rằng <(DVD Rec) (Video Soft)> là một mẫu thường xuyên Các tác giả của thuật toán CloSpan đề xuất các phương pháp liên quan để chứng minh rằng <(DVD-R)> luôn luôn xảy ra trước <(Video Soft)> Dựa vào quan sát này, CloSpan có thể chỉ ra rằng

<(Rec DVD, DVD-R) (Video Soft)> là mẫu thường xuyên mà không cần bất kỳ lần quét CSDL nào nữa

Thuật toán BIDE (Wang và Han, 2004) là mở rộng của thuật toán CloSpan như

sau Đầu tiên, thông qua một phần mở rộng dãy mới, được gọi là BI-Directional Extension, thuật toán sử dụng cả hai phương pháp là mẫu tiền tố và kiểm tra thuộc tính đóng để phát triển Thứ hai, để lược bớt không gian tìm kiếm sâu hơn so với phương pháp tiếp cận trước, thuật toán đề nghị một phương pháp lược bớt gọi là BackScan Ý tưởng chính của phương pháp này là để tránh mở rộng dãy bằng cách phát hiện trước phần mở rộng đã được chứa trong một dãy rồi

Trang 19

 Khai phá mẫu dãy tăng dần (Incremental Mining of Sequential Patterns)

Khi CSDL phát triển, vấn đề duy trì các mẫu dãy trong một thời gian dài trở nên rất cần thiết vì một số lượng lớn các bản ghi mới có thể được thêm vào CSDL Để phản ánh hiện trạng của CSDL, ở đó các mẫu dãy trước đó sẽ trở nên không thích hợp

và các mẫu dãy mới có thể xuất hiện, các cách tiếp cận hiệu quả mới đã được đề xuất

(Masseglia et al, 2003.) đề xuất một giải thuật hiệu quả, được gọi là ISE, để tính toán

các dãy phổ biến trong CSDL cập nhật Giải thuật ISE giảm thiểu chi phí tính toán bằng cách tái sử dụng các thông tin tối thiểu từ các dãy phổ biến cũ, tức là độ hỗ trợ của các dãy phổ biến Các tính năng chính mới của ISE là tập các dãy ứng viên cần kiểm tra được giảm đáng kể Các thuật toán SPADE đã được mở rộng trong thuật toán ISM (Parthasarathy et al, 1999.) Để cập nhật mức hỗ trợ và liệt kê các dãy phổ biến, ISM duy trì “các dãy phổ biến tối đa” (“maximally frequent sequences”) và “các dãy

không thường xuyên tối thiểu” (“minimally infrequent sequences”) KISP (Lin và Lee,

2003) cũng đề xuất để tận dụng những kiến thức đã được tính toán trước và tạo ra một nền tảng kiến thức cho các truy vấn bổ sung về mẫu dãy và các giá trị hỗ trợ khác nhau

 Mở rộng vấn đề dựa trên việc trích xuất các mẫu dãy (Extended Problems Based

on the Sequential Pattern Extraction)

Được thúc đẩy bởi các ứng dụng tiềm năng cho khai phá mẫu dãy, nhiều mở rộng của định nghĩa ban đầu đã được đề xuất có thể liên quan đến việc bổ sung các ràng buộc hoặc định dạng của các mẫu Trong (Pei et al., 2002) tác giả đã liệt kê một số những ràng buộc hữu ích nhất cho việc trích xuất các mẫu dãy Những ràng buộc này

có thể được xem như là những bộ lọc được áp dụng cho việc trích xuất các mẫu, nhưng hầu hết các phương pháp thông thường dùng chúng cho việc liệt kê trong suốt quá trình xử lý Các bộ lọc này có thể liên quan tới các phần tử (“trích xuất các mẫu

chỉ chứa các phần tử Camcorder”) hoặc theo độ dài của mẫu Định nghĩa mẫu dãy

cũng đã được điều chỉnh bởi một số nghiên cứu Ví dụ (Kum et al., 2003) đã đề xuất

ApproxMap để khai phá các mẫu dãy gần đúng ApproxMap đầu tiên đề xuất phân

cụm dữ liệu dãy dựa trên các phần tử của chúng Sau đó, mỗi cụm ApproxMap cho phép trích xuất các mẫu dãy gần đúng liên quan tới các cụm này Ta xét các CSDL trong hình 1.6 như một cluster Bước đầu tiên của quá trình trích xuất là cung cấp các

dữ liệu dãy của cluster với một sự liên kết tương tự như của tin sinh học

Video Soft

DVD Rec, DVD-R

MemCard Video Soft USB Key

Camcorder,

MiniDV

Laptop DVD Rec,

DVD-R

Trang 20

Camcorder: 3

MiniDV: 3

DigiCam: 1 Laptop: 1

DVD Rec: 3 DVD-R: 3

MemCard: 2 Video Soft: 2 USB Key: 2

Hình 1.7: Các liên được đề xuất đối với dữ liệu dãy của Hình 1.6

Dãy cuối cùng trong Hình 1.7 thể hiện dãy trọng số thu được bởi ApproxMap trên dãy Hình 1.6 Với độ hỗ trợ 50%, dãy trọng số cho các mẫu gần đúng được đưa ra như sau:

<(Camcorder: 3, MiniDV: 3) (DVD Rec: 3, DVD-R: 3) (MemCard: 2) (Video Soft: 2) (USB Key: 2)>

Trang 21

CHƯƠNG 2 – CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY

2.1 Khái quát về khai phá luật dãy

Khai phá luật dãy xử lý dữ liệu điển hình là các dãy [3] (một dãy là một tập hợp các phần tử được sắp thứ tự) So với vấn đề luật kết hợp, luật dãy nghiên cứu dữ liệu đưa ra các phân tích “liên giao dịch” (inter-transaction) [1] Có rất nhiều ứng dụng về khai phá mẫu dãy và vấn đề cũng được định nghĩa theo những cách khác nhau với mức

độ thay đổi không đáng kể Kết hợp với các giải pháp hiệu quả, những vấn đề này có thể phù hợp với dữ liệu thực tế có mốc thời gian (timestamp) (khi mà luật kết hợp đã không giải quyết được) và cung cấp những kết quả hữu ích

Ta sử dụng CSDL giao dịch mua bán hàng làm ví dụ, với các thông tin về: định danh của dãy hoặc định danh khách hàng (sequence-id or customer-id), thời gian giao dịch (transaction-time) và mặt hàng liên quan trong giao dịch (item) Một CSDL như vậy được gọi là CSDL dãy Chính xác hơn, mỗi giao dịch là một tập hợp các mặt hàng (itemset) và mỗi dãy là một danh sách các giao dịch được sắp xếp theo thời gian giao dịch Đối với hiệu quả của việc trợ giúp ra quyết định, mục đích là để tìm ra những thói quen tiêu biểu của người dùng Để làm được việc đó, đòi hỏi phải có một CSDL dãy và đưa ra giá trị hỗ trợ tức là số lần xuất hiện trong CSDL Một mẫu dãy phổ biến

là một dãy mà tần xuất xuất hiện trong CSDL vượt ngưỡng quy định Vấn đề tìm kiếm tất cả các mẫu thường xuyên từ lượng dữ liệu khổng lồ đòi hỏi chi phí về mặt thời gian

là rất lớn Thông thường, việc kiểm tra của tất cả các kết hợp có thể trong dữ liệu là vấn đề khó và những thuật toán mới tập trung vào dữ liệu dãy được coi là quan trọng đối với một tổ chức

Khai phá luật dãy có thể được áp dụng rộng rãi trên các ứng dụng từ nhiều loại

dữ liệu có thời gian liên quan Ví dụ, từ một CSDL mua bán hàng, một mẫu dãy có thể được dùng để phát triển các chiến lược tiếp thị và sản phẩm; Bằng cách phân tích weblog, các mẫu dãy rất hữu ích cho việc xây dựng website công ty giúp khách hàng truy cập một cách dễ dàng các liên kết phổ biến nhất (Kosala và Blockeel, 2000); Ta cũng có thể thấy CSDL báo động mạng viễn thông, phát hiện xâm nhập (Hu và Panda, 2004), các dãy ADN (Zaki, 2003), …

Chúng ta chia vấn đề khai phá luật dãy thành các giai đoạn sau đây:

 Giai đoạn sắp xếp (Sort Phase): CSDL (D) được sắp xếp, với mã khách hàng (custorm-id) là khóa chính và thời gian giao dịch (transaction-time) là khóa phụ Bước này chuyển đổi ngầm cơ sơ dữ liệu giao dịch gốc thành CSDL dãy khách hàng

 Giai đoạn Litemset (Litemset Phase): Trong giai đoạn này, chúng ta tìm tập tất cả

litemsets L, đồng thời cũng tìm kiếm tập tất cả các dãy phổ biến 1-sequence, vì tập này cũng là {<l> | l  L}

Trang 22

Với giao dịch của một khách hàng, độ hỗ trợ được tính tăng lên chỉ một lần ngay

cả khi khách hàng mua cùng một tập các sản phẩm trong hai hay nhiều giao dịch khác nhau

Tập hợp các litemsets được ánh xạ tới một tập hợp các số nguyên liên tiếp Sau bước xử lý litemsets để có được các thực thể duy nhất, việc ánh xạ này giúp ta có thể

so sánh hai litemsets có bằng nhau hay không trong thời gian cố định, và giảm số lần cần thiết để kiểm tra nếu một dãy được chứa trong dãy khách hàng

 Giai đoạn chuyển đổi (Transformation Phase): Như chúng ta sẽ thấy trong giai đoạn dãy (Sequence Phase), cần phải xác định lặp đi lặp lại nhiều lần để đưa ra một tập các dãy phổ biến (large sequences) được chứa trong một dãy khách hàng Để thực hiện điều này một cách nhanh chóng, ta chuyển đổi mỗi dãy khách hàng thành một đại diện thay thế

Trong một dãy khách hàng được chuyển đổi, mỗi giao dịch được thay thế bằng tập tất cả các litemsets được chứa trong giao dịch đó Nếu một giao dịch không chứa bất kỳ litemset nào, nó không được giữ lại trong dãy chuyển đổi Nếu một dãy khách hàng không chứa bất kỳ litemset nào thì dãy này bị loại bỏ trong CSDL chuyển đổi Tuy nhiên, nó vẫn góp phần vào việc tính tổng số lượng khách hàng Một dãy các khách hàng khi đó được thể hiện bởi một danh sách tập các litemsets Mỗi tập

litemsets được biểu diễn bởi {l1, l2, , ln}, trong đó li là một litemset

CSDL chuyển đổi này gọi là DT Tiếp tục sử dụng CSDL trong phần 1.2 làm ví

dụ, việc chuyển đổi CSDL Hình 1.3 được thể hiện trong Hình 2.1 Ví dụ, trong trong việc chuyển đổi dãy khách hàng với Id 2, giao dịch (10 20) bị loại bỏ vì nó không chứa bất kỳ litemset nào và giao dịch (40 60 70) được thay thế bằng tập litemsets {(40),(70), (40 70)}

Customer

Id

Original Customer Sequence

Transformed Customer Sequence

Hình 2.1: CSDL đã được chuyển đổi từ Hình 1.3

 Giai đoạn dãy (Sequence Phase): Ta sử dụng tập các litemsets để tìm các dãy ứng viên Cấu trúc chung là thực hiện các quá trình duyệt lặp đi lặp lại trên dữ liệu Trong mỗi lần duyệt, ta bắt đầu với một tập khởi tạo các dãy phổ biến Ta sử dụng tập khởi tạo này để sinh ra các dãy phổ biến mới, tiềm năng, gọi là các dãy ứng viên (candidate sequences) Tìm độ hỗ trợ cho các dãy ứng viên này trong suốt quá trình duyệt dữ liệu

Trang 23

Tại lần duyệt cuối cùng của mỗi bước, xác định dãy nào trong các dãy ứng viên là dãy phổ biến thực sự Các dãy ứng viên phổ biến trở thành khởi tạo cho lần duyệt tiếp theo Trong lần duyệt đầu tiên, tất cả các 1-sequences với độ hỗ trợ tối thiểu, được chứa trong giai đoạn litemset, tạo nên tập khởi tạo

 Giai đoạn tìm dãy tối đa (Maximal Phase): Tìm các dãy tối đa trong tập các dãy phổ biến (large sequences) Giai đoạn này được kết hợp với giai đoạn dãy (Sequence Phase) để giảm chi phí thời gian trong việc tính các dãy không tối đa

Tập tất cả các dãy phổ biến S được tìm thấy trong giai đoạn dãy, thuật toán tiếp theo đây có thể được sử dụng để tìm các dãy tối đa Với n là độ dài của dãy dài nhất

for ( k = n; k > 1; k – – ) do

foreach k-sequence sk do

Delete from S all subsequences of sk

2.2 Các thuật toán khởi thủy

Phần này giới thiệu ba thuật toán cơ bản khai phá luật dãy bao gồm: AprioriAll, AprioriSome, GSP Đây là những thuật toán rất phổ biến trong khai phá luật dãy

2.2.1 Thuật toán AprioriAll

 Thuật toán AprioriAll

L1 = {large 1-sequences}; // Result of the litemset phase

for ( k = 2; Lk-1 ≠Ø; k++ ) do

begin

Ck New candidates generated from Lk-1 (see Apriori Candidate Generation)

foreach customer-sequence c in the database do

Increment the count of all candidates in Ck that are contained in c

Lk = Candidates in Ck with minimum support

end

Answer = Maximal Sequences in k Lk;

Hình 2.2: Thuật toán AprioriAll

Trong mỗi lần duyệt, ta sử dụng các dãy phổ biến từ lần duyệt trước đó để tạo ra các dãy ứng viên, sau đó tính độ hỗ trợ của chúng bằng cách duyệt toàn bộ CSDL Tại lần duyệt cuối cùng tại mỗi bước, độ hỗ trợ của các ứng viên được sử dụng để xác định các dãy phổ biến cho bước tiếp theo Trong lần duyệt đầu tiên, đầu ra của giai đoạn litemset được sử dụng để khởi tạo tập các dãy phổ biến 1-sequences

Trang 24

 Sinh các dãy ứng viên (Apriori Candidate Generation): Hàm apriori-generate có

dữ liệu đầu vào là L k-1 : tập tất cả các dãy phổ biến (k-1)-sequences Hàm thực hiện như

sau:

insert into C k

select p.litemset1, p.litemset2, , p.litemset k-1 , q.litemset k-1

from Lk-1 p, L k-1 q

where p.litemset1 = q.litemset1, , p.litemset k-2 = q.litemset k-2;

Next, delete all sequences c  C k such that some (k-1)-subsequence of c is not

Tiếp tục với CSDL trong phần 1.2, xét tập các dãy 3-sequences L3 trong Hình

2.4 Nếu L3 được lấy làm đầu vào cho hàm apriori-generate, ta sẽ nhận được các dãy như trong hình 2.5 sau khi thực hiện phép nối Sau khi lược bớt các dãy có dãy con

không thuộc L3 ta được kết quả là các dãy trong hình 2.6 Ví dụ, dãy <1 2 4 3> bị lược

bỏ đi vì có dãy con <2 4 3> không thuộc L3

Hình 2.6: Candidate 4-Sequences (after pruning)

Ta cần chứng minh rằng C k  L k Rõ ràng là bất kỳ dãy con nào của một dãy phổ

biến cũng cần có độ hỗ trợ tối thiểu Do đó, nếu ta mở rộng mỗi dãy trong L k-1 với tất

cả tập các phần tử phổ biến có thể, sau đó xóa tất cả những dãy mà có dãy con

Trang 25

(k-1)-subsequences của chúng mà không nằm trong L k-1, điều này có thể không đúng với

một superset của các dãy trong Lk

Phép nối này tương đương với việc mở rộng L k-1 với mỗi tập phần tử phổ biến và

sau đó lược bỏ các dãy mà có dãy con (k-1)-subsequences không nằm trong L k-1

vậy, sau bước thực hiện phép nối, C k  L k Cũng với lập luận tương tự, tại bước lược

bỏ, ta cũng xóa từ C k tất cả các dãy mà có các dãy con (k-1)-subsequences không nằm

trong L k-1 , và không xóa bất kỳ dãy nào có thể nằm trong L k.

Ví dụ: Xét CSDL với các dãy khách hàng trong hình 2.7 Các dãy khách hàng được chuyển đổi, ở đó mỗi giao dịch được thay thế bởi tập các litemsets chứa trong giao dịch và các litemsets được thay thế bởi các số nguyên Độ hỗ trợ tối thiểu được đưa ra cụ thể là 40% Lần duyệt đầu tiên trên CSDL được thực hiện trong giai đoạn litemset, và ta xác định được dãy phổ biến 1-sequences thể hiện trong hình 2.8 Sau khi kết thúc các lần duyệt thứ 2, 3, 4, các dãy phổ biến cùng với độ hỗ trợ của chúng được thể hiện trong các hình 2.9, hình 2.10, và hình 2.11 tương ứng Không có ứng viên nào được tạo trong lần duyệt thứ 5 Các dãy phổ biến tối đa là ba dãy như hình 2.12

Trang 26

Hình 2.12: Dãy phổ biến 5-sequences

 Hàm tìm dãy con (Subsequence Function): Các dãy ứng viên C k được lưu trữ

bằng cây hash-tree, nút của hash-tree hoặc là chứa danh sách các dãy (nút lá) hoặc chứa một bảng băm (nút trung gian) Trong nút trung gian, mỗi bucket của bảng băm trỏ tới một nút khác Gốc của hash-tree được định nghĩa có độ sâu là 1 Một nút trung gian tại độ sâu d trỏ tới các nút có độ sâu d + 1 Các dãy được lưu trữ tại các lá Khi ta thêm một dãy c, ta sẽ bắt đầu từ gốc và duyệt xuống cho tới khi đến lá cây Tại một cây trung gian có độ sâu d, ta quyết định chọn nhánh nào để đi tiếp bằng cách áp dụng một hàm băm cho litemset thứ d của dãy Tất cả các nút được tạo ban đầu là những nút

lá Khi số lượng dãy trong một nút lá vượt quá ngưỡng thì nút lá được chuyển thành nút trung gian

Bắt đầu từ nút gốc, hàm tìm dãy con (subsequence function) tìm tất cả các ứng

viên được chứa trong dãy khách hàng c Nếu ta đang ở nút lá, ta tìm các dãy trong nút

lá được chứa trong dãy c và bổ sung tham chiếu tới chúng vào tập kết quả Nếu ta đang

ở tại nút trung gian và đã đạt được bằng cách băm litemset i, ta thực hiện băm trên mỗi litemset trong c mà xuất hiện trong một giao dịch sau khi giao dịch chứa i và áp dụng

đệ quy thủ tục này cho các nút trong bucket tương ứng Đối với nút gốc, ta thực hiện

băm trên mọi litemset trong c

Để thấy tại sao hàm tìm dãy con trả về tập các tham chiếu mong muốn, xem xét

những gì xảy ra tại nút gốc Đối với bất kỳ dãy s nào được chứa trong dãy khách hàng

c, litemset đầu tiên của s phải ở trong c Tại nút gốc, bằng cách băm trên mỗi litemset

trong c, ta đảm bảo rằng chỉ bỏ qua các dãy mà bắt đầu bằng một litemset không nằm trong c Lập luận tương tự áp dụng ở độ sâu hơn Chỉ bổ sung nhân tố đó khi các litemsets trong bất kỳ dãy ứng viên hoặc dãy phổ biến thể hiện cho một tập các phần

tử được mua trong các giao dịch khác nhau, nếu chúng ta đạt đến nút hiện hành bằng

Trang 27

cách băm litemset i, ta chỉ cần xem xét các litemsets trong c xảy ra trong các giao dịch sau khi các giao dịch có chứa i

2.2.2 Thuật toán AprioriSome

 Thuật toán AprioriSome được trình bày như sau:

// Forward Phase

L1 = {large 1-sequences}; // Result of the litemset phase

C1 = L1; // so that we have a nice loop condition

last = 1; // we last counted C last

for ( k = 2; C k-1 ≠ Ø and L last ≠ Ø; k++ ) do

begin

if (L k-1 known) then

C k = New candidates generated from L k-1;

else

C k = New candidates generated from C k-1;

if ( k = = next(last) ) then begin

foreach customer-sequence c in the database do

Increment the count of all candidates in C k that are contained in c

L k = Candidates in C k with minimum support

if ( L k was not determined in the forward phase ) then begin

Delete all sequences in C k contained in some L i , i > k;

foreach customer-sequence c in D T do

Increment the count of all candidates in C k that are contained in c

Trang 28

L k = Candidates in C k with minimum support

end

else begin // L k already known

Delete all sequences in L k contained in some L i , i > k

end

Answer = k L k;

Hình 2.13: Thuật toán AprioriSome

Trong giai đoạn duyệt xuôi (forward pass), chúng ta chỉ tính các dãy có độ dài nhất định Ví dụ, chúng ta có thể tính các dãy độ dài 1, 2, 4 và 6 trong các lần duyệt

xuôi và tính các dãy độ dài 3 và 5 trong các lần duyệt ngược Hàm next có tham số là

độ dài của dãy được tính trong lần duyệt trước và trả về độ dài của dãy trong lần duyệt tiếp theo Vì vậy, hàm này xác định chính xác các dãy được tính, và cân bằng một cách tốt nhất giữa chi phí thời gian trong việc tính các dãy không tối đa và việc tính phần

mở rộng của các dãy ứng viên không phổ biến Một hạn chế là next(k) = k +1 (k là

chiều dài mà ứng viên đã được tính trước đó), khi tất cả các dãy không tối đa được tính, nhưng không tính cho mở rộng của các dãy ứng viên không phổ biến Trong trường hợp này, thuật toán AprioriSome suy biến thành AprioriAll Một hạn chế khác,

hàm next(k) = 100 * k, trong khi hầu như không tính các dãy phổ biến không tối đa,

nhưng rất nhiều mở rộng của các ứng viên không phổ biến được tính

function next(k: integer)

begin

if (hitk < 0.666) return k + 1;

elsif (hitk < 0.75) return k + 2;

elsif (hitk < 0.80) return k + 3;

elsif (hitk < 0.85) return k + 4;

end

Lấy hitk biểu thị tỷ lệ giữa số lượng các dãy phổ biến k-sequences với số lượng

các dãy ứng viên k-sequences (tức là |L k | / |C k |) Chúng ta sử dụng hàm next trong các

thử nghiệm dưới đây Bằng trực quan và kinh nghiệm cho thấy rằng, tỷ lệ về số lượng các ứng viên trong lần duyệt hiện tại có độ hỗ trợ tối thiểu tăng lên, chi phí thời gian tính cho phần mở rộng của các dãy ứng viên không phổ biến giảm xuống khi chúng ta

bỏ qua độ dài

Ta sử dụng hàm apriori-generate đã nêu trong phần 2.2.1 để tạo ra các dãy ứng

viên mới Tuy nhiên, tại lần duyệt thứ k, ta không có được tập dãy phổ biến L k-1 sẵn có

Trang 29

vì ta đã không tính các dãy ứng viên (k – 1)-candidate Trong trường hợp này, ta sử dụng tập C k-1 các ứng viên để tạo ra C k , điều đó hoàn toàn đúng vì C k-1  L k-1

Trong giai đoạn duyệt ngược (backward phase), chúng ta tính các dãy có độ dài

mà ta đã bỏ qua trong suốt giai đoạn duyệt xuôi, sau lần loại bỏ đầu tiên tất cả các dãy được chứa trong một số dãy phổ biến Các dãy không phổ biến không thể được lựa chọn vì ta chỉ quan tâm đến các dãy tối đa Ta cũng loại bỏ các dãy phổ biến không phải dãy tối đa được tìm thấy trong giai đoạn xuôi

Khi thực thi, các giai đoạn duyệt xuôi và duyệt ngược được xen kẽ để giảm bộ nhớ sử dụng cho việc lưu trữ các ứng viên Tuy nhiên, chúng ta đã bỏ qua chi tiết này trong hình 2.13 để đơn giản hóa việc trình bày

CSDL) Để minh hoạ một cách đơn giản, f(k) = 2k Trong lần duyệt thứ hai, ta tính C2

để có được L2 (hình 2.9) Sau lần duyệt thứ ba, gọi hàm apriori-generate với L2 làm

tham số để có được C3 Các ứng viên trong C3 được thể hiện trong

hình 2.14 Ta không tính C3, và do đó không sinh ra L3 Tiếp theo, gọi hàm generate với C3 làm tham số để có được C4, mà khi lược bớt, được kết quả C4 như

apriori-hình 2.6 Sau khi tính C4 để có được L4 (hình 2.11), ta tiếp tục tạo ra C5 và cho kết quả

C5 là rỗng

Sau đó chúng ta bắt đầu với giai đoạn duyệt ngược (backward phase) Không có

gì bị loại bỏ từ L4 vì không có dãy lớn hơn Ta đã bỏ qua việc tính mức hỗ trợ cho các

dãy trong C3 ở giai đoạn xuôi (forward phase) Sau khi loại bỏ trong C3 những dãy là

dãy con của các dãy trong L4, tức là các dãy con của <1 2 3 4>, chúng ta thu được các dãy ở hình 2.12 Chúng sẽ được tính để nhận <1 3 5> như là dãy phổ biến tối đa 3-

sequences Tiếp theo, tất cả các dãy trong L2 trừ <4 5> được loại bỏ vì chúng được

chứa trong một số dãy dài hơn Cũng với lý do, tất cả các dãy trong L1 cũng được loại

bỏ

Trang 30

Trong ví dụ này, thuật toán AprioriSome chỉ tính hai dãy 3-sequences so với sáu dãy 3-sequences được tính bởi thuật toán AprioriAll, và nó không tính bất kỳ dãy nào không được tính bởi AprioriAll Tuy nhiên, nhìn chung, thuật toán AprioriSome sẽ tính một số mở rộng của các dãy ứng viên không phổ biến, mà không được tính bởi AprioriAll Điều đó sẽ xảy ra trong ví dụ này nếu C4 tạo ra từ C3 lớn hơn C4 tạo ra từ

So sánh hiệu suất thực hiện giữa hai thuật toán AprioriSome và AprioriAll cho thấy AprioriSome hiện tốt hơn khi độ hỗ trợ ở các mức thấp hơn, vì có nhiều dãy phổ biến hơn, và do đó có nhiều dãy không tối đa hơn

2.2.3 Thuật toán GSP (Generalized Sequential Patterns)

Thuật toán GSP khai phá mẫu dãy tổng quát Theo đánh giá dựa trên thực nghiệm sử dụng dữ liệu mô phỏng và dữ liệu thực tế cho thấy GSP là nhanh hơn nhiều lần so với thuật toán AprioriAll đã được giới thiệu ở trên Có hai lý do chính [2]:

- Thuật toán GSP tính số lượng ứng viên ít hơn so với AprioriAll

- Thuật toán AprioriAll phải tìm kiếm lần đầu tập các phần tử phổ biến xuất hiện trong mỗi thành phần của một dãy trong thời gian chuyển đổi dữ liệu, và sau đó tìm trong dữ liệu chuyển đổi các dãy ứng viên tồn tại trong đó Điều này thường dẫn đến chậm hơn so với tìm kiếm trực tiếp các dãy ứng viên Cấu trúc cơ bản của thuật toán GSP tìm kiếm mẫu dãy là thuật toán duyệt dữ liệu nhiều lần, lần duyệt đầu tiên xác định độ hỗ trợ của từng phần tử, tức là số lượng dữ liệu dãy có chứa các phần tử Kết thúc lần duyệt đầu tiên, thuật toán đưa ra được các phần tử thường xuyên, nghĩa là thỏa mãn độ hỗ trợ tối thiểu Mỗi phần tử như vậy tiết

lộ một dãy phổ biến 1-element chứa phần tử đó Mỗi dãy con bắt đầu duyệt với tập khởi đầu là các dãy phổ biến được tìm thấy trong lần duyệt trước đó Tập khởi đầu được sử dụng để sinh ra các dãy phổ biến tiềm năng mới, gọi là các dãy ứng viên Mỗi dãy ứng viên có ít nhất một phần tử thuộc dãy khởi đầu, vì thế tất cả các dãy ứng viên

Ngày đăng: 17/02/2014, 12:35

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Agrawal R., Srikant R. (1995), Mining sequential patterns. In Proceedings of the International Conference on Data Engineering (ICDE): 3–14, IEEE Computer Society Sách, tạp chí
Tiêu đề: Proceedings of the International Conference on Data Engineering (ICDE)
Tác giả: Agrawal R., Srikant R
Năm: 1995
[2]. Srikant R., Agrawal R. (1996), Mining sequential patterns: generalizations and performance improvements. Proceedings of the International Conference on Extending Data Base Technology (EDBT), Lecture Notes in Computer Science, 1057: 3–17 Sách, tạp chí
Tiêu đề: Proceedings of the International Conference on Extending Data Base Technology (EDBT), Lecture Notes in Computer Science
Tác giả: Srikant R., Agrawal R
Năm: 1996
[3]. Masseglia F., Teisseire M., Poncelet P. (2005), Sequential pattern mining: A survey on issues and approaches. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.106.5130 Sách, tạp chí
Tiêu đề: Sequential pattern mining: A survey on issues and approaches
Tác giả: Masseglia F., Teisseire M., Poncelet P
Năm: 2005
[5]. Zhuo Zhang, Lu Zhang, Shaochun Zhong, Jiwen Guan (2008), A New Algorithm for Mining Sequential Patterns, FSKD (2) 2008: 625-629 Sách, tạp chí
Tiêu đề: FSKD (2) 2008
Tác giả: Zhuo Zhang, Lu Zhang, Shaochun Zhong, Jiwen Guan
Năm: 2008
[6]. Floriana Esposito, Nicola Di Mauro, Teresa Maria Altomare Basile, Stefano Ferilli (2008), Multi-Dimensional Relational Sequence Mining, Fundam.Inform., 89(1): 23-43 Sách, tạp chí
Tiêu đề: Fundam. "Inform
Tác giả: Floriana Esposito, Nicola Di Mauro, Teresa Maria Altomare Basile, Stefano Ferilli
Năm: 2008
[7]. Yu Ning, Hongbin Yang (2008), Sequence Mining for User Behavior Patterns in Mobile Commerce, CMECG '08 Proceedings of the 2008 International Conference on Management of e-Commerce and e-Government: 61-64 Sách, tạp chí
Tiêu đề: CMECG '08 Proceedings of the 2008 International Conference on Management of e-Commerce and e-Government
Tác giả: Yu Ning, Hongbin Yang
Năm: 2008
[8]. Chun-Sheng Wang, Anthony J.T. Lee (2009), Mining inter-sequence patterns, Expert Systems with Applications, 36 (2009): 8649–8658 Sách, tạp chí
Tiêu đề: Expert Systems with Applications
Tác giả: Chun-Sheng Wang, Anthony J.T. Lee (2009), Mining inter-sequence patterns, Expert Systems with Applications, 36
Năm: 2009
[9]. D. Vasumathi, Dr. A. Govardhan, K.Venkateswara Rao (2009), Performance improvement and efficient approach for mining periodic sequential acess patterns, International Journal of Computer Science and Security (IJCSS),2009, 3 (5):358-370 Sách, tạp chí
Tiêu đề: International Journal of Computer Science and Security (IJCSS)
Tác giả: D. Vasumathi, Dr. A. Govardhan, K.Venkateswara Rao
Năm: 2009
[10]. Ding-Ying Chiu, Yi-Hung Wu, Arbee L. P. Chen (2009), Efficient frequent sequence mining by a dynamic strategy switching algorithm, VLDB J. , 18(1):303-327 Sách, tạp chí
Tiêu đề: VLDB J
Tác giả: Ding-Ying Chiu, Yi-Hung Wu, Arbee L. P. Chen
Năm: 2009
[11]. Karine Zeitouni (2009), From Sequence Mining to Multidimensional Sequence Mining, Mining Complex Data 2009: 133-152 Sách, tạp chí
Tiêu đề: Mining Complex Data 2009
Tác giả: Karine Zeitouni
Năm: 2009
[12]. Ming-Yen Lin, Sue-Chen Hsueh, Ming-Hong Chen, Hong-Yang Hsu (2009), Mining Sequential Patterns for Image Classification in Ubiquitous Multimedia Systems, Intelligent Information Hiding and Multimedia Signal Processing 2009(IIH-MSP '09): 303-306 Sách, tạp chí
Tiêu đề: Intelligent Information Hiding and Multimedia Signal Processing 2009(IIH-MSP '09)
Tác giả: Ming-Yen Lin, Sue-Chen Hsueh, Ming-Hong Chen, Hong-Yang Hsu
Năm: 2009
[13]. Manish Gupta, Jiawei Han (2010), Pattern Discovery Using Sequence Data Mining: Applications and Studies,http://www.cs.illinois.edu/homes/gupta58/sequence_data _mining.doc Sách, tạp chí
Tiêu đề: Pattern Discovery Using Sequence Data Mining: Applications and Studies
Tác giả: Manish Gupta, Jiawei Han
Năm: 2010
[14]. M. Gholizadeh, M. M. Pedram, J. Shanbehzadeh (2010), Sequence Mining for Similar Mental Concepts, IMECS 2010: 518-521 Sách, tạp chí
Tiêu đề: IMECS 2010
Tác giả: M. Gholizadeh, M. M. Pedram, J. Shanbehzadeh
Năm: 2010
[4]. Jiawei Han and Micheline Kamber, (2006), Data Mining: Concepts and Techniques 2nd ed, University of Illinois at Urbana-Champaign Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.5:  Kiến trúc tổng thể của hệ thống quản lý thông tin di động - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 1.5 Kiến trúc tổng thể của hệ thống quản lý thông tin di động (Trang 16)
Hình 2.1: CSDL đã được chuyển đổi từ Hình 1.3 - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 2.1 CSDL đã được chuyển đổi từ Hình 1.3 (Trang 22)
Hình 2.7: Dãy khách hàng - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 2.7 Dãy khách hàng (Trang 25)
Hình 2.10:  Dãy phổ biến 3-sequences - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 2.10 Dãy phổ biến 3-sequences (Trang 26)
Hình 2.16:  Ví dụ sinh dãy ứng viên - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 2.16 Ví dụ sinh dãy ứng viên (Trang 32)
Hình 2.19:  Thuật toán Dynamic DISC-all - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 2.19 Thuật toán Dynamic DISC-all (Trang 36)
Hình 2.22:  Cây tìm kiếm dãy thành phần: mũi tên nét liền biểu thị các dãy mở rộng, - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 2.22 Cây tìm kiếm dãy thành phần: mũi tên nét liền biểu thị các dãy mở rộng, (Trang 39)
Hình 2.23:  Ví dụ mã hóa khối cơ bản: (a) CSDL; (b) Mã hóa vị trí của a; (c) Mã - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 2.23 Ví dụ mã hóa khối cơ bản: (a) CSDL; (b) Mã hóa vị trí của a; (c) Mã (Trang 41)
Hình 3.1:  Mô hình triển khai hệ thống cấp nước Hà Nội - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 3.1 Mô hình triển khai hệ thống cấp nước Hà Nội (Trang 43)
Hình 3.2:  Sơ đồ quy trình phát sinh khách hàng mới  Khách hàng  mới sau  khi  khai báo  sẽ được hệ thống tự động sinh ra  một  mã số  duy nhất gọi là mã khách hàng có độ dài 9 chữ số theo quy tắc: XX-XXXXXX-X - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 3.2 Sơ đồ quy trình phát sinh khách hàng mới Khách hàng mới sau khi khai báo sẽ được hệ thống tự động sinh ra một mã số duy nhất gọi là mã khách hàng có độ dài 9 chữ số theo quy tắc: XX-XXXXXX-X (Trang 44)
Hình 3.3: Sơ đồ quy trình lập và in hóa đơn - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 3.3 Sơ đồ quy trình lập và in hóa đơn (Trang 48)
Hình 3.5:  Cấu trúc bảng dữ liệu BILLS - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 3.5 Cấu trúc bảng dữ liệu BILLS (Trang 51)
Hình 4.1:  CSDL gốc - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 4.1 CSDL gốc (Trang 55)
Hình 4.3:  Kết quả khai phá luật dãy áp dụng AprioriAll - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 4.3 Kết quả khai phá luật dãy áp dụng AprioriAll (Trang 56)
Hình 4.2:  CSDL dãy sau khi chuyển đổi  Bước 2: Nhập ngưỡng min_sup, thực hiện thuật toán AprioriAll - một số thuật toán khai phá luật dãy và ứng dụng thử nghiệm vào hệ thống quản lý khách hàng và tính hóa đơn nước
Hình 4.2 CSDL dãy sau khi chuyển đổi Bước 2: Nhập ngưỡng min_sup, thực hiện thuật toán AprioriAll (Trang 56)

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