Lĩnh vực khai thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau, như đề xuất nhằm cải tiến tính hiệu quả của một số thuật toán đã có hay đề xuất tìm kiếm các luật có ý nghĩa và đáng tin cậy hơn, v.v... Một số hướng khai phá luật kết hợp được đề cập ở đây như:
Khai phá luật kết hợp nhị phân (binary association rule ): là hướng nghiên cứu đầu tiên của luật kết hợp. Trong đó các mục(item) trong CSDL giao dịch đều là các thuộc tính Boolean thể hiện sự xuất hiện hay không xuất hiện của một mục hàng trong một giao dịch và đặc biệt là vai trò của chúng được xem là tương đương nhau. Ví dụ: Trong một giao dịch, việc bán một mặt hàng bột giặt và máy giặt được xem là tương đương nhau. Trên thực tế, việc bán một chiếc máy giặt đem lại lợi nhuận lớn hơn rất nhiều so với việc bán một túi bột giặt. Thuật toán tiêu biểu nhất của khai phá dạng luật này là thuật toán Apriori .
Khai phá luật kết hợp có trọng số ( Mining Weighted Association Rules): đây là hướng khai phá mở rộng cho bài toán khai phá luật kết hợp nhị phân. Trong đó phương pháp này quan tâm đến tầm quan trọng của các mục khác nhau trong CSDL. Các mục quan trọng thường là các mục đem lại nhiều lợi nhuận. Để xác định tầm quan trọng của các mục, người ta gán cho mỗi mục một giá trị mô tả mức độ quan trọng của các mục. Giá trị này thường được cho kèm theo bảng CSDL giao dịch và được gọi là trọng số mục. Trọng số càng lớn, mức độ quan trọng càng cao và ngược lại. Nhờ vậy, ta có thể thu được những luật “hiếm” ( tức là các luật có độ hỗ trợ thấp nhưng mang nhiều ý nghĩa). Bài toán khai phá luật kết hợp trên những CSDL được đánh trọng số như trên được C.H.Cai, Ada W.C.Fu, C.H Cheng và W.W Kwong giới thiệu năm 1998.
Khai phá luật kết hợp định lƣợng (Mining Quantitive Association Rules): Các thuộc tính trong cơ sở dữ liệu được phân làm hai loại là thuộc tính định lượng và thuộc tính phân loại. Thực hiện việc ánh xạ các thuộc tính định lượng và phân loại sang dạng nhị phân, từ đó áp dụng các phương pháp khai phá luật kết hợp nhị phân để tìm các luật mạnh.
Khai phá luật kết hợp tiếp cận theo hƣớng tập thô ( Mining association rules base on rough set ): tìm kiếm luật kết hợp dựa trên lí thuyết tập thô.
Khai phá luật kết hợp đa mức ( Multi-level association rules ): với cách tiếp cận luật kết hợp thế này sẽ tìm kiếm thêm những luật có dạng : mua máy tính PC mua hệ điều hành Window và mua phần mềm văn phòng Microsoft Office,… Khai phá luật kết hợp đa mức sử dụng một số chiến lược, dựa trên các ngưỡng hỗ trợ tối thiểu được định nghĩa ở mỗi mức trừu tượng, như là uniform support, reduced support, và group-based support. Dự phòng đa mức các luật kết hợp (hậu duệ) có thể bị loại bỏ nếu ngưỡng hỗ trợ và tin cậy của chúng gần với giá trị dự kiến, dựa trên luật gốc tương ứng của chúng .
Khai phá luật kết hợp mờ (Fuzzy association rules ): Với những khó khăn gặp phải khi rời rạc hoá các thuộc tính số, các nhà nghiên cứu đề xuất luật kết hợp mờ để khắc phục hạn chế đó và chuyển luật kết hợp về một dạng gần gũi hơn. Khai phá luật kết hợp song song (Parallel mining of association rule ). Nhu cầu
song song hoá và xử lí phân tán là cần thiết vì kích thước dữ liệu ngày càng lớn nên đòi hỏi tốc độ xử lí phải được đảm bảo
Trên đây là những biến thể của khai phá luật kết hợp cho phép ta tìm kiếm luật kết hợp một cách linh hoạt trong những cơ sở dữ liệu lớn. Trong phần tiếp theo luận văn sẽ làm rõ hơn về hướng Khai phá luật kết hợp định lƣợng (Mining Quantitive Association Rules).
2.5.2. Khai phá luật kết hợp định lượng
2.5.2.1. Tổng quan về khai phá luật kết hợp định lƣợng
Từ khi được đề xuất vào năm 1993, mô hình bài toán khai phá luật kết hợp nhị phân đã được nghiên cứu và ứng dụng hiệu quả trong nhiều lĩnh vực, tuy nhiên nó cũng cho thấy một số hạn chế, đó là:
Vai trò của các mục trong CSDL là tương đương nhau.
Không quan tâm đến các đặc tính dữ liệu vốn có của các mục.
Do vậy, việc phát triển các mô hình mở rộng mới là nhu cầu tất yếu. Bài toán khai phá luật kết hợp nhị phân là một trong những hướng phát triển của bài toán khai phá luật kết hợp.
Như chúng ta đã đề cập ở các phần trước, tất các các mục trên các bảng CSDL quan hệ đều thể hiện ở hai trạng thái là sự xuất hiện hay không xuất hiện mục đó trong mỗi giao dịch, nghĩa là chúng đều tồn tại ở dạng nhị phân. Trên bảng quan hệ, mỗi mục tương ứng với một item, mỗi bản ghi tương ứng với một giao dịch (Transaction). Giá trị mỗi mục trong mỗi bản ghi bằng 1 nếu mục này là một mặt hàng được mua trong ít nhất một giao dịch, ngược lại thì bằng 0. Bài toán khai phá luật kết hợp nhị phân cũng đã được đề cập đến trong phần 2.5.1 theo hướng xác định tầm quan trọng của các mục trong dữ liệu, bằng việc gán giá trị trọng số cho các mục (Khai phá luật kết hợp có trọng số). Tuy nhiên, trên thực tế, các bảng trong CSDL được tổ chức với nhiều kiểu dữ liệu khác nhau, có thể chia thành hai loại:
Chứa các thuộc tính định lƣợng (Quantitative). Ví dụ: tuổi, lương,...
Chứa các thuộc tính phân loại (Categorical). Ví dụ: biển số xe, CMTND,...
Ví dụ 2.4 ID Tuổi Đã kết hôn Số lƣợng xe 001 002 003 004 005 23 25 29 34 39 No Yes No Yes Yes 1 1 0 2 2
Bảng 2.3. Bảng “People” chứa thuộc tính định lượng và phân loại
Trong Bảng 2.3, các thuộc tính như “Tuổi” và “Số lượng xe” là các thuộc tính định lượng (Quantitative), và thuộc tính “Đã kết hôn” là thuộc tính phân loại (Categorical). Bài toán khai phá luật kết hợp trên các bảng dữ liệu chứa các thuộc tính định lượng và
thuộc tính phân loại như trên được gọi là Bài toán khai phá luật kết hợp định lƣợng
(Mining Quantitative Asociation Rules) được đề xuất bởi R.Srikant và R.Agrawal, 1996 [5]. Áp dụng những kỹ thuật đã biết đối với bài toán Khai phá luật kết hợp nhị
phân, luận văn này sẽ trình bầy những kỹ thuật được áp dụng trong Bài toán khai phá luật kết hợp định lượng với mục đích đưa ra những mẫu luật có dạng:
(Biết rằng: min-sup = 40%, min-conf =50%).
Luật ( mẫu) Độ hỗ trợ Độ tin cậy
<Tuổi: 30..39> và <Đã kết hôn: Yes> <Số lượng xe: 2> <Số lượng xe: 0..1> < Đã kết hôn: No>
40% 40%
100% 66.6%
2.5.2.2. Ánh xạ từ bài toán khai phá luật kết hợp định lƣợng về bài toán khai phá luật kết hợp nhị phân
Để áp dụng được các thuật toán khai phá đã có đối với luật kết hợp nhị phân, ta phải thực hiện việc ánh xạ các thuộc tính định lượng (quantitative) và các thuộc tính phân loại (categorical) về dạng các thuộc tính nhị phân. Tư tưởng của phương pháp ánh xạ này được thể hiện như sau:
Đối với các mục phân loại hoặc các mục định lượng chỉ có một vài giá trị thì việc ánh xạ các mục này thành các mục nhị phân được thực hiện như sau:
o Nếu mục phân loại (categrical) có n loại hoặc các mục định lượng (quantitative) có n giá trị thì ta xây dựng n mục nhị phân tương ứng với n cặp có dạng: (mục x, giá trị 1), (mục x, giá trị 2),..., ( mục x, giá trị n).
oMỗi mục nhị phân này sẽ nhận một trong hai giá trị 0 hoặc 1. Trong đó, với k = 1..n; (mục x, giá trị k) có giá trị bằng 1 nếu mục x có giá trị bằng k trên bản ghi gốc, các mục còn lại tương ứng của x sẽ có giá trị bằng 0. Nếu miền giá trị của mục định lượng rộng, ta sẽ chia miền giá trị thành các
khoảng (interval) và sau đó tiến hành ánh xạ từng cặp (mục, khoảng) của mục định lượng tương ứng với một mục nhị phân.
Ví dụ 2.5 Ánh xạ các mục định lƣợng/phân loại sang dạng nhị phân
Từ Bảng 2.3, ánh xạ các mục phân loại và định lượng sang dạng nhị phân như sau:
ID Tuổi 20..29 Tuổi 30..39 Đã kết hôn (Yes) Đã kết hôn ( No) Số lƣợng xe (0) Số lƣợng xe (1) Số lƣợng xe (2) 001 002 003 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0
004 005 0 0 1 1 1 1 0 0 0 0 0 0 1 1
Nhận thấy: Các mục trong bảng kết quả nhận được sau khi ánh xạ đều có giá trị nhị phân, tuy nhiên số lượng các mục cũng tăng lên đáng kể. Với kết quả ánh xạ này, ta hoàn toàn có thể sử dụng các thuật toán khai phá luật kết hợp nhị phân để tìm luật kết hợp định lượng. Tuy nhiên, phương pháp ánh xạ này lại tồn tại hai hạn chế cơ bản sau:
Về “Độ hỗ trợ tối thiểu – Min-sup”: Nếu ta chia miền giá trị của các mục định lượng thành nhiều khoảng hoặc các mục không được phân khoảng có nhiều giá trị thì độ hỗ trợ cho bất kỳ một khoảng đơn nào hay một giá trị nào có thể sẽ rất thấp. Vì vậy, một số luật chứa các mục này sẽ không tìm thấy, do chúng không có độ hỗ trợ cần thiết.
Về “ Độ tin cậy tối thiểu – Min-conf”: Một số thông tin có thể bị mất khi chúng ta chia miền giá trị thành các khoảng. Một số luật chỉ có độ tin cậy tối thiểu khi ở vế trái chỉ là một mục đơn hoặc là một khoảng nhỏ. Sự mất mát thông tin ngày càng tăng khi kích thước các khoảng được chia càng lớn.
Từ đó cho thấy, nếu kích thước các khoảng là quá nhỏ (chia mục thành quá nhiều khoảng) thì một số luật có thể không có độ hỗ trợ tối thiểu. Ngược lại, nếu kích thước các khoảng là quá lớn (chia mục thành ít khoảng hoặc không chia khoảng), thì dẫn đến khả năng có một số luật sẽ không có độ tin cậy tối thiểu.
Tuy nhiên, việc tăng số lượng các khoảng đồng thời kết nối các khoảng liền kề sẽ dẫn đến hai vấn đề mới:
“Thời gian thực”: Nếu một thuộc tính định lượng có n giá trị (hoặc n khoảng), thì có trung bình O(n2) vùng, bao gồm các giá trị hoặc các khoảng cụ thể. Do đó, số các mục trên mỗi bản ghi tăng lên rất lớn, điều này sẽ làm tăng thời gian thực hiện.
“Quá nhiều luật”: Nếu một giá trị (hoặc một khoảng) của thuộc tính định lượng có độ hỗ trợ tối thiểu, thì một vài vùng cũng sẽ chứa khoảng này. Do đó, số lượng các luật tăng lên. Nhiều trong số đó sẽ không đáng quan tâm.
Vì vậy cần một sự thỏa hiệp giữa việc đẩy nhanh thời gian thực hiện với số lượng khoảng ít hơn và việc giảm mất mát thông tin với nhiều khoảng hơn. Chúng ta có thể giảm việc mất mát thông tin bằng cách tăng số lượng các khoảng, tại đó chi phí cho việc tăng thời gian thực và tiềm ẩn khả năng sinh nhiều luật không thú vị. Như vậy,
chúng ta sẽ cần xác định khi nào nên hay không nên phân chia một mục định lượng thành các khoảng? Và nếu tiến hành phân chia thì nên chia thành bao nhiêu khoảng là đủ? Và cách thức phân chia như thế nào cho tối ưu? Vấn đề này sẽ được đề cập ở các phần tiếp theo.
2.3.2.3. Phát biểu bài toán
Để giải quyết hai vấn đề nêu trên, chúng ta sử dụng cùng một phương thức đối với cả thuộc tính định lượng và thuộc tính phân loại. Đối với các thuộc tính phân loại, mỗi giá trị của các thuộc tính được ánh xạ tới một tập các số nguyên liên tiếp. Đối với các thuộc tính định lượng không phân chia thành các khoảng, các thuộc tính của chúng được ánh xạ tới tập các số nguyên liên tiếp. Đối với các thuộc tính định lượng được chia khoảng, các khoảng được ánh xạ tới các số nguyên liên tiếp, trong đó thứ tự giữa các khoảng được đảm bảo. Không mất tính tổng quát, phương thức ánh xạ này giúp chúng ta chuyển việc xử lý một bản ghi của CSDL bằng xử lý một cặp (thuộc tính, giá trị số nguyên tương ứng).
a) Bài toán khai phá luật kết hợp định lƣợng:
Gọi I = {i1,i2,...,im} là tập các mục, được gọi là các thuộc tính. Đặt P là tập số nguyên dương.
Cho Iv được biểu diễn bởi tập IP. Cặp (x,v) ϵ Iv biểu diễn kết nối giữa thuộc tính x và giá trị v.
Cho IR được biểu diễn bởi tập {< x, l, u > ϵ IPP l u, nếu x là thuộc tính định lượng; l = u, nếu x là thuộc tính phân loại}.
Do đó, một bộ ba <x, l, u> ϵ IR biểu diễn một thuộc tính định lượng x có giá trị thuộc khoảng [l,u], hoặc một thuộc tính phân loại x có giá trị l. Chúng ta sẽ quy định bộ ba này là một item. Với bất kỳ tập X IR, attributes(X) biểu diễn tập {x <x,l,u> ϵ X }. Chú ý rằng, với định nghĩa trên, thuộc tính phân loại chỉ được kết hợp với giá trị, trong khi các thuộc tính định lượng có thể kết hợp với cả giá trị và khoảng. Nói một cách khác, các giá trị của các thuộc tính phân loại không được kết hợp.
Cho D là tập các bản ghi, trong đó, mỗi bản ghi R là một tập các giá trị thuộc tính với
nói rằng một bản ghi R support X IR, nếu <x,l,u> ϵ X ( (x,q) ϵ R sao cho l q u ).
Luật kết hợp định lượng là một quan hệ có dạng XY, trong đó X⊂ IR, Y⊂ IR, và
attributes(X) attributes(Y) = . Luật XY được xác định trên tập bản ghi D với độ tin cậy c nếu c% bản ghi của D hỗ trợ X thì cũng hỗ trợ Y. Luật XY có độ hỗ trợ s
trong tập bản ghi D nếu s% bản ghi của D hỗ trợ X Y.
Cho một tập bản ghi D, vấn đề của khai phá luật kết hợp định lượng là phải tìm ra tất cả các luật mà chúng có độ hỗ trợ và độ tin cậy lớn hơn độ hỗ trợ tối thiểu (Min-sup) và độ tin cậy tối thiểu (Min-conf) do người dùng đặt ra. Lưu ý rằng trên thực tế các mục trong một luật có thể là định lượng hoặc là các mục phân loại đã được ẩn trong định nghĩa của một luật.
b)Các bƣớc giải quyết bài toán:
Bài toán khai phá luật kết hợp định lượng được giải quyết qua 5 bước chính:
Bước 1: Xác định số vùng phân hoạch cho mỗi thuộc tính định lượng.
Bước 2: Đối với các thuộc tính phân loại, ánh xạ các giá trị của thuộc tính tới một tập các số nguyên liên tiếp. Đối với các thuộc tính định lượng không phân hoạch vào các khoảng, các giá trị của chúng được ánh xạ tới tập các số nguyên liên tiếp theo thứ tự tương ứng với những giá trị của chúng. Nếu một thuộc tính định lượng được phân hoạch vào các khoảng được ánh xạ tới các số nguyên liên tiếp theo thứ tự tương ứng với thứ tự các khoảng. Từ đây, thuật toán chỉ xét các giá trị (hoặc các khoảng giá trị) thay vì xét các mục định lượng và các mục phân loại tương ứng.
Bước 3: Tìm độ hỗ trợ cho mỗi giá trị của cả thuộc tính định lượng và các thuộc tính phân loại. Thêm nữa, đối với các thuộc tính định lượng, các giá trị liền kề sẽ được kết hợp lại thành các khoảng lớn hơn sao cho độ hỗ trợ của chúng lớn hơn độ hỗ trợ tối thiểu do người dùng thiết lập. Tìm tất cả các tập mục phổ biến bao gồm các mục có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu.
Bước 4: Sử dụng các tập mục phổ biến để sinh ra các luật kết hợp. Phương pháp sinh luật được thực hiện tương tự bài toán khai phá luật kết hợp nhị phân. Phương pháp được phát biểu như sau:
Cho các tập mục phổ biến ABCD và AB, luật ABCD có thể được xác định bằng cách tính toán tỷ số: Confidence (AB CD) = Support( ABCD) / Support(AB).
Nếu Confidence (AB CD) Min-conf, thì luật này được giữ lại (luật hiển nhiên thỏa mãn độ hỗ trợ tối thiểu do ABCD là các tập mục phổ biến).