Mô hình giái quyết

Một phần của tài liệ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 (Trang 52)

CSDL thông tin tiêu thụ nƣớc trong năm của khách hàng trong hình 3.6 đã đƣợc sắp xếp theo thứ tự Mã khách hàng, Kỳ (tháng) hóa đơn, ta cần thực hiện biến đổi sang CSDL dãy.

Các giá trị tính lƣợng nƣớc tiêu thụ đƣợc quy đổi thành các loại <Không giảm,

Tháng>, <Giảm, Tháng>, trong đó: “Không giảm”, “Giảm” là lƣợng nƣớc (m3

) tháng đang xét <nhiều hơn hoặc giữ nguyên>, <giảm đi> so với tháng ngay trƣớc đó. “Tháng” là số hiệu các tháng trong năm: 1-12.

Với mỗi khách hàng, dãy thông tin tiêu thụ nƣớc theo chu kỳ hóa đơn đƣợc biểu diễn: <(1T, 2G, 3G, 4T, 5T, 6T, 7G, 8T, 9G, 10G, 11T, 12G)>. Trong đó, T thể hiện giá trị Không giảm, G thể hiện giá trị Giảm so với tháng trƣớc đó.

Khai phá luật dãy Nguyễn Đình Văn Để thuận tiện cho việc biểu diễn thông tin và xử lý dữ liệu, ta có thể viết thu gọn dãy trên thành: <TGGTTTGTGGTG>

Khi tính độ hỗ trợ s của một ứng viên bất kỳ (có độ tối đa là độ dài của dãy, = 12), mỗi một dãy khách hàng sẽ có 12 lần so sánh, tƣơng ứng với các dãy nhƣ sau:

<(1T, 2G, 3G, 4T, 5T, 6T, 7G, 8T, 9G, 10G, 11T, 12G)> <(12G) (1T, 2G, 3G, 4T, 5T, 6T, 7G, 8T, 9G, 10G, 11T)> <(11T, 12G) (1T, 2G, 3G, 4T, 5T, 6T, 7G, 8T, 9G, 10G)> <(10G, 11T, 12G) (1T, 2G, 3G, 4T, 5T, 6T, 7G, 8T, 9G)> ……….. <(3G, 4T, 5T, 6T, 7G, 8T, 9G, 10G, 11T, 12G) (1T, 2G)> <(2G, 3G, 4T, 5T, 6T, 7G, 8T, 9G, 10G, 11T, 12G) (1T)> Biến đổi về dạng rút gọn ta đƣợc 12 dãy tƣơng ứng:

<TGGTTTGTGGTG> <G TGGTTTGTGGT> <TG TGGTTTGTGG> <GTG TGGTTTGTG> ………….. <GTTTGTGGTG TG> <GGTTTGTGGTG T>.

Dấu cách đƣợc sử dụng để phân biệt vị trí của tháng 1 và 12. Từ vị trí của dấu cách trong dãy, ta có thể dịch đƣợc dãy rút gọn thành dãy đầy đủ thông tin.

VD: Tính độ hỗ trợ s của dãy <TTT> trong C3. Với dãy khách hàng <TGGTTTGTGGTG>, ta lần lƣợt thực hiện 12 lần so sánh: <TGGTTTGTGGTG>, <G TGGTTTGTGGT>, <TG TGGTTTGTGG>, <GTG TGGTTTGTG>, …, <GTTTGTGGTG TG>, <GGTTTGTGGTG T>. Kết quả khớp một lần với dãy bắt đầu từ tháng 4 <TTTGTGGTG TGG>. Lúc đó, độ hỗ trợ s của dãy <TTT> sẽ đƣợc tính tăng thêm 1 lần.

Độ hỗ trợ của dãy s tính trong toàn bộ dữ liệu là giá trị lớn nhất của một trong 12 lần tính. Lần 1 so sánh dãy ứng viên với tất cả các dãy khách hàng có phần tử bắt đầu là tháng 1, đƣợc kết quả s1. Lần 2 so sánh dãy ứng viên với tất cả các dãy khách hàng có phần tử bắt đầu là tháng 2, đƣợc kết quả s2. Tƣơng tự thực hiện đến s12. Độ hỗ trợ s = max(s1, s2, …, s12).

Khi có kết quả khai phá luật dãy thu đƣợc trong Lk ở lần duyệt cuối cùng, căn cứ vào dãy kết quả, độ hỗ trợ để tìm khoảng thời gian thỏa mãn yêu cầu của đề bài.

Khai phá luật dãy Nguyễn Đình Văn Sử dụng thuật toán AprioriAll đã nêu trong phần 2.2.1 để giải quyết bài toán.

Duyệt CSDL để tính độ hỗ trợ S cho mỗi dãy ứng viên

S >= min_sup

Xóa các dãy c trong Ck nếu dãy con (k-1)-subsequence của c  Lk-1 Bổ sung vào Lk Sinh tập = Null Maximal Sequences in k Lk Bắt đầu Duyệt CSDL để lấy tất cả các phần tử và độ hỗ trợ S của mỗi phần tử S >= min_sup Bổ sung vào L1 Lk-1join Lk-1 để sinh tập ứng viên Ck Đúng Đúng Đúng Sai

Khai phá luật dãy Nguyễn Đình Văn

Một phần của tài liệ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 (Trang 52)