2.1.1. Khái niệm luật kết hợp
Đƣợc giới thiệu từ năm 1993, bài toán khai thác luật kết hợp nhận đƣợc rất nhiều sự quan tâm của nhiều nhà khoa học. Ngày nay việc khai thác các luật nhƣ thế vẫn là một trong những phƣơng pháp khai thác mẫu phổ biến nhất trong việc khám phá tri thức và khai thác dữ liệu. Mục đích chính của khai phá dữ liệu là các tri thức đƣợc kết xuất ra sẽ đƣợc sử dụng trong dự báo thông tin trợ giúp trong sản xuất kinh doanh và nghiên cứu khoa học.
Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại siêu thị, các nhà quản lý rất thích có đƣợc các thông tin mang tính thống kê nhƣ: “90% phụ nữ có xe máy màu đỏ và đeo đồng hồ Thuỵ Sỹ thì dùng nƣớc hoa hiệu Chanel” hoặc “70% khách hàng là công nhân khi mua ti vi thƣờng mua loại ti vi 21 inches”. Những thông tin nhƣ vậy rất hữu ích trong việc định hƣớng kinh doanh. Vậy vấn đề đặt ra là liệu có tìm đƣợc các luật nhƣ vậy bằng các công cụ khai phá dữ liệu hay không? Câu trả lời là hoàn toàn có thể. Đó chính là nhiệm vụ khai phá luật kết hợp.
Giả sử chúng ta có một cơ sở dữ liệu D. Luật kết hợp cho biết phạm vi mà trong đó sự xuất hiện của tập các mục S nào đó trong các bản ghi của D sẽ kéo theo sự xuất hiện của một tập những mục U cũng trong những bản ghi đó. Mỗi luật kết hợp đƣợc đặc trƣng bởi một cặp tỉ lệ. Mỗi tỉ lệ hỗ trợ đƣợc biểu diễn bằng tỉ lệ % những bản ghi trong D chứa cả S và U.
Vấn đề khám phá luật kết hợp đƣợc phát biểu nhƣ sau: Cho trƣớc tỉ lệ hỗ trợ và độ tin cậy . Đánh số tất cả các luật trong D có các giá trị tỉ lệ hỗ trợ và tin cậy lớn hơn và tƣơng ứng.
Giả thiết D là cơ sở dữ liệu giao dịch và với = 40%, = 90%. Vấn đề phát hiện luật kết hợp đƣợc thực hiện nhƣ sau:
Liệt kê, đếm tất cả những qui luật chỉ ra sự xuất hiện một số các mục sẽ kéo theo một số mục khác.
Chỉ xét những qui luật mà tỉ lệ hỗ trợ lớn hơn 40% và độ tin cậy lớn hơn 90%.
Hãy tƣởng tƣợng, một công ty bán hàng qua mạng Internet. Các khách hàng đƣợc yêu cầu điền vào các mẫu bán hàng để công ty có đƣợc một cơ sở dữ liệu về các yêu cầu của khách hàng. Giả sử công ty quan tâm đến mối quan hệ "tuổi, giới tính, nghề nghiệp và sản phẩm". Khi đó có thể có rất nhiều câu hỏi tƣơng ứng với luật trên. Ví dụ trong lứa tuổi nào thì những khách hàng nữ là công nhân đặt mua mặt hàng gì đó, ví dụ áo dài chẳng hạn là nhiều nhất, thoả mãn một ngƣỡng nào đó?
2.1.2. Lý thuyết về luật kết hợp 2.1.2.1 Khái niệm 2.1.2.1 Khái niệm
Cho I={I1, I2, .., Im} là tập hợp của m tính chất riêng biệt. Giả sử D là cơ sở dữ liệu, với các bản ghi chứa một tập con T các tính chất (có thể coi nhƣ T I), các bản ghi đều có chỉ số riêng. Một luật kết hợp là một mệnh đề kéo theo có dạng X Y, trong đó X, Y I, thỏa mãn điều kiện XY= . Các tập hợp X và Y đƣợc gọi là các tập hợp tính chất (itemset). Tập X gọi là nguyên nhân, tập Y gọi là hệ quả.
Có 2 độ đo quan trọng đối với luật kết hợp: Độ hỗ trợ (support) và độ tin cậy (confidence), đƣợc định nghĩa nhƣ phần dƣới đây.
Định nghĩa độ hỗ trợ
Định nghĩa 1: Độ hỗ trợ của một tập hợp X trong cơ sở dữ liệu D là tỷ số giữa các bản ghi T D có chứa tập X và tổng số bản ghi trong D (hay là phần trăm của các bản ghi trong D có chứa tập hợp X), ký hiệu là
support(X ) hay supp(X).
Ta có: 0 ≤ supp(X) ≤ 1 với mọi tập hợp X
Định nghĩa 2: Độ hỗ trợ của một luật kết hợp X Y là tỷ lệ giữa số lƣợng các bản ghi chứa tập hợp X Y, so với tổng số các bản ghi trong D - Ký hiệu supp(X Y)
Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là có 50% tổng số bản ghi chứa X Y. Nhƣ vậy, độ hỗ trợ mang ý nghĩa thống kê của luật.
Trong một số trƣờng hợp, chúng ta chỉ quan tâm đến những luật có độ hỗ trợ cao (Ví dụ nhƣ luật kết hợp xét trong cửa hàng tạp phẩm). Nhƣng cũng có trƣờng hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn cần quan tâm (ví dụ luật kết hợp liên quan đến nguyên nhân gây ra sự đứt liên lạc ở các tổng đài điện thoại)
Định nghĩa độ tin cậy
Định nghĩa 1: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lƣợng các bản ghi trong D chứa X Y với số bản ghi trong D có chứa tập hợp X. Ký hiệu độ tin cậy của một luật là conf(r). Ta có 0 ≤ conf(r) ≤ 1.
Nhận xét: Độ hỗ trợ và độ tin cậy có xác suất sau: Supp(XY)=P(X Y)
Conf (XY) = P(Y/X)=supp(X Y)/supp(X) Có thể định nghĩa độ tin cậy nhƣ sau:
supp(X) = {TD X T}
D (2.1)
supp(X Y) = {TD XY T}
D (2.2)
Định nghĩa 2: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lƣợng các bản ghi chứa X Y so với tổng số các bản ghi chứa X.
Nói rằng độ tin cậy của một luật là 90%, có nghĩa là có tới 90% số bản ghi chứa X chứa luôn cả Y. Hay nói theo ngôn ngữ xác suất là: “ Xác suất có điều kiện để sảy ra sự kiện Y đạt 85%”. Điều kiện ở đây chính là: “Xảy ra sự kiện X”.
Nhƣ vậy, độ tin cậy của luật thể hiện sự tƣơng quan giữa X và Y. Độ tin cậy đo sức nặng của luật, và ngƣời ta hầu nhƣ chỉ quan tâm đến những luật có độ tin cậy cao. Một luật kết hợp đề cập đến những mặt hàng thƣờng hay đƣợc khách hàng mua kèm với mặt hàng chính mà độ tin cậy thấp sẽ không có ích cho công tác quản lý.
Việc khai thác các luật kết hợp từ cơ sở dữ liệu chính là việc tìm tất cảc các luật có độ hỗ trợ và độ tin cậy do ngƣời sử dụng xác định trƣớc. Các ngƣỡng của độ hỗ trợ và độ tin cậy đƣợc ký hiệu là minsup và mincof.
Ví dụ: Khi phân tích giỏ hàng của ngƣời mua trong một siêu thị ta đƣợc luật kiểu nhƣ: 85% khách hàng mua sữa thì mua bánh mì, 30% thì mua cả hai thứ. Trong đó: “mua sữa” là tiền đề còn “mua bánh mì ” là kết luận của luật. Con số 30% là độ hỗ trợ của luật còn 80% là độ tin cậy của luật.
Chúng ta nhận thấy rằng tri thức đem lại bởi luật kết hợp dạng trên có sự khác biệt rất nhiều so với những thông tin thu đƣợc từ các câu lệnh truy vấn dữ liệu thông thƣờng nhƣ SQL. Đó là những tri thức, những mối liên hệ chƣa biết trƣớc và mang tính dự báo đang tiềm ẩn trong dữ liệu. Những tri thức này không đơn giản là kết quả của phép nhóm, tính tổng hay sắp xếp mà là của một quá trình tính toán khá phức tạp.
Định nghĩa tập hợp
Định nghĩa 1: Tập hợp X đƣợc gọi là tập hợp thƣờng xuyên (Frequent Itemset) nếu có supp(X) minsup, với minsup là ngƣỡng độ hỗ
trợ cho trƣớc. Kí hiệu các tập này là FI
Tính chất 1.1: Giả sử A,B I là hai tập hợp với A B thì supp(A)
supp(B). Nhƣ vậy, những bản ghi nào chứa tập hợp B thì cũng chứa tập hợp A
Tính chất 1.2: Giả sử A, B là hai tập hợp, A,B I, nếu B là tập hợp thƣờng xuyên và A B thì A cũng là tập hợp thƣờng xuyên.
Thật vậy, nếu B là tập hợp thƣờng xuyên thì supp(B) minsup, mọi tập hợp A là con của tập hợp B đều là tập hợp thƣờng xuyên trong cơ sở dữ liệu D vì supp(A) supp(B) (Tính chất 1.1).
Tính chất 1.3: Giả sử A, B là hai tập hợp, AB và A là tập hợp không thƣờng xuyên thì B cũng là tập hợp không thƣờng xuyên.
Định nghĩa 2: Một tập mục X đƣợc gọi là đóng (closed) nếu không có tập cha nào của X có cùng độ hỗ trợ với nó, tức là không tồn tại một tập mục X‟ nào mà X X‟ và t(X) = t(X‟) (với t(X) và t(X‟) tƣơng ứng là tập các giao tác chứa tập mục X và X‟). Ký hiệu tập phổ biến đóng là FCI.
Định nghĩa 3: Nếu X là phổ biến và không tập cha nào của X là phổ biến, ta nói rằng X là một tập phổ biến lớn nhất (maximally frequent itemset). Ký hiệu tập tất cả các tập phổ biến lớm nhất là MFI. Dễ thấy MFI
FCI FI.
2.1.2.2. Một số hƣớng tiếp cận trong khai phá luật kết hợp
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. Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn… và có một số hƣớng chính nhƣ sau:
Luật kết hợp nhị phân là hƣớng nghiên cứu đầu tiên của luật kết hợp. Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân. Trong dạng luật kết hợp này, các mục, thuộc tính, chỉ đƣợc quan tâm là có hay không xuất hiện trong giao tác của cơ sở dữ liệu chứ không quan tâm về “mức độ” xuất hiện. Ví dụ: Trong hệ thống tính cƣớc điện thoại thì việc gọi 10 cuộc điện thoại và một cuộc đƣợc xem là giống nhau. Thuật toán tiêu biểu nhất khai phá dạng luật này là thuật toán Apriori và các biến thể của nó. Đây là dạng luật đơn giản và các luật khác cũng có thể chuyển về dạng luật này nhờ một số phƣơng pháp nhƣ rời rạc hoá, mờ hoá, … Một ví dụ về dạng luật này: “gọi liên tỉnh= „yes‟ AND gọi di động= „yes‟ => gọi quốc tế= „yes‟ AND gọi dịch vụ 108 = „yes‟, với độ hỗ trợ 20% và độ tin cậy 80%”
Luật kết hợp có thuộc tính số và thuộc tính hạng mục: Các thuộc
tính của các CSDL thực tế có kiểu rất đa dạng, nhƣ số nhị phân, giá trị định tính, định lƣợng... Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một số phƣơng pháp rời rạc hoá nhằm chuyển dạng luật này về dạng nhị phân để có thể áp dụng các thuật toán đã có. Một ví dụ về dạng luật này “phƣơng thức gọi = „Tự động‟ AND giờ gọi IN [„23:00:39.. 23:00:59‟] AND Thời gian đàm thoại IN [„200.. 300‟] => gọi liên tỉnh = „có‟ , với độ hỗ trợ là 23. 53% , và độ tin cậy là 80%”.
Luật kết hợp tiếp cận theo hƣớng tập thô: Tìm kiếm luật kết hợp
dựa trên lý thuyết tập thô.
Luật kết hợp nhiều mức: Cách tiếp cận theo luật 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 AND mua phần mềm tiện ích văn phòng, …” thay vì chỉ những luật quá cụ thể nhƣ “mua máy tính IBM PC => mua hệ điều hành Microsoft Windows AND mua phần
mềm tiện ích văn phòng Microsoft Office, …”. Nhƣ vậy dạng luật đầu là dạng luật tổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khác nhau.
Luật kết hợp mờ: Với những hạn chế còn gặp phải trong quá trình
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ờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với ngƣời sử dụng một ví dụ của dạng này là: “thuê bao tƣ nhân = „yes‟ AND thời gian đàm thoại lớn AND cƣớc nội tỉnh = „yes‟ => cƣớc không hợp lệ = „yes‟, với độ hỗ trợ 4% và độ tin cậy 85%”. Trong luật trên, điều kiện thời gian đàm thoại lớn ở vế trái của luật là một thuộc tính đã đƣợc mờ hoá.
Luật kết hợp với thuộc tính đƣợc đánh trọng số: Trong thực tế,
các thuộc tính trong cơ sở dữ liệu không phải lúc nào cũng có vai trò nhƣ nhau. Có một số thuộc tính đƣợc chú trọng hơn và có mức độ quan trọng cao hơn các thuộc tính khác. Ví dụ khi khảo sát về doanh thu hàng tháng, thông tin về thời gian đàm thoại, vùng cƣớc là quan trọng hơn nhiều so với thông tin về phƣơng thức gọi... Trong quá trình tìm kiếm luật, chúng ta sẽ gán thời gian gọi, vùng cƣớc các trọng số lớn hơn thuộc tính phƣơng thức gọi. Đây là hƣớng nghiên cứu rất thú vị và đã đƣợc một số nhà nghiên cứu đề xuất cách giải quyết bài toán này. Với luật kết hợp có thuộc tính đƣợc đánh trọng số, chúng ta sẽ khai thác đƣợc những luật “hiếm” (tức là có độ hỗ trợ thấp, nhƣng có ý nghĩa đặc biệt hoặc mang rất nhiều ý nghĩa).
Luật kết hợp song song: Bên cạnh khai thác luật kết hợp tuần tự,
ngƣời ta cũng tập trung vào nghiên cứu các thuật giải song song cho quá trình phát hiện luật kết hợp. Nhu cầu song song hoá và xử lý phân tán là cần thiết bởi kích thƣớc dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng nhƣ dung lƣợng bộ nhớ của hệ thống phải đƣợc đảm bảo. Có rất nhiều thuật toán song song khác nhau đã đề xuất để có thể không phụ thuộc vào phần cứng.
Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nhà nghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ cơ sở dữ liệu.
Ngoài ra, còn có một số hƣớng nghiên cứu khác về khai thác luật kết hợp nhƣ: khai thác luật kết hợp trực tuyến, khai thác luật kết hợp đƣợc kết nối trực tuyến đến các kho dữ liệu đa chiều thông qua công nghệ OLAP, MOLAP, ROLAP, ADO.
2.2. Khai phá luật kết hợp
2.2.1. Khai phá luật kết hợp từ cơ sở dữ liệu
Khai phá luật kết hợp là công việc phát hiện ra các luật kết hợp thỏa mãn các ngƣỡng độ hỗ trợ () và ngƣỡng độ tin cậy (α) cho trƣớc. Bài toán khai phá luật kết hợp đƣợc chia thành hai bài toán nhỏ, hay nhƣ ngƣời ta thƣờng nói, việc giải bài toán trải qua hai pha:
Pha 1: Tìm tất cả các tập phổ biến (tìm FI) trong cơ sở dữ liệu T. Pha 2: Sử dụng tập FI tìm đƣợc ở pha 1 để sinh ra các luật tin cậy. Ý tƣởng chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng ta có thể xác định luật AB CD với tỷ lệ độ tin cậy:
Nếu conf minconf thì luật đƣợc giữ lại (và thỏa mãn độ hỗ trợ tối thiểu vì ABCD là phổ biến).
Trong thực tế, hầu hết thời gian của quá trình khai thác luật kết hợp là thực hiện ở pha 1. Nhƣng khi có những mẫu rất dài (mẫu chứa nhiều mục) xuất hiện trong dữ liệu thì việc sinh ra toàn bộ các tập phổ biến hay các tập phổ biến đóng là không thực tế. Hơn nữa, có nhiều ứng dụng mà chỉ cần sinh tập phổ biến lớn nhất là đủ, nhƣ khám phá mẫu tổ hợp trong các ứng dụng sinh học.
conf = Supp(ABCD) Supp(AB)
Có rất nhiều nghiên cứu về các phƣơng pháp sinh tất cả các tập phổ biến và tập phổ biến lớn nhất một cách có hiệu quả. Khi các mẫu phổ biến dài có từ 15 đến 20 items thì tập FI, thậm chí cả tập FCI trở nên rất lớn và hầu hết các phƣơng pháp truyền thống phải đếm quá nhiều tập mục mới có thể thực hiện đƣợc. Các thuật toán dựa trên thuật toán Apriori – đếm tất cả 2k tập con của mỗi k- itemsets mà chúng quét qua, và do đó không thích hợp với các itemsets dài đƣợc.
2.2.2. Khai phá luật kết hợp từ dữ liệu chuỗi thời gian
Một chuỗi thời gian là một bộ sƣu tập quan sát các hạng mục dữ liệu đƣợc xác định thông qua các phép đo lặp đi lặp lại theo thời gian. Dữ liệu chuỗi thời gian tồn tại trong nhiều ứng dụng thực tế, từ các lĩnh vực khoa học