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-1 join Lk-1 để sinh tập ứng viên Ck Đúng Đúng Đúng Sai
Khai phá luật dãy Nguyễn Đình Văn