CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP
2.5. Khai phá luật kết hợp định lượng
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à:
Chỉ quan tâm đến ngữ nghĩa thống kê của vấn đề.
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 R Iv. Giả thiết, mỗi thuộc tính xuất hiện ít nhất một lần trong một bản ghi. Chúng ta
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).
Bước 5: Xác định các luật thú vị tại đầu ra.
Ví dụ: Xét bảng “People” trong Bảng.2.4.a. Ở đây có hai thuộc tính định lượng là
“Tuổi” và “Số lượng xe”.
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.4.a. Bảng People
Bước 1: Phân hoạch “Tuổi” thành 4 khoảng (Bảng2.4.b).
Tuổi 20..24 25..29 30..35 35..39
Bảng.2.4.b. Phân hoạch “Tuổi”
Bước 2: Sau khi phân hoạch, ánh xạ các khoảng đã chia và giá trị của các mục phân loại tới các giá trị nguyên liên liếp ( Bảng.2.4.c,d,e).
ID Tuổi Đã kết hôn Số lƣợng xe 001
002 003 004 005
20..24 25..29 25..29 30..35 35..39
No Yes
No Yes Yes
1 1 0 2 2 Bảng 2.4.c. Sau khi đã phân hoạch Tuổi
Khoảng tuổi Giá trị nguyên
20..24 25..29 30..35 35..39
1 2 3 4
Bảng 2.4.d. Ánh xạ “Tuổi”
Bảng 2.4.e. Ánh xạ “Đã kết hôn”
B ảng 2.4.f. Bảng People sau khi đã ánh xạ các thuộc tính
Bước 3: Kết hợp hai khoảng liền kề của thuộc tính “Tuổi” đểm giảm bớt số lượng mục và tăng độ hỗ trợ cho các mục. Ta sẽ có hai khoảng Tuổi là 20..29 và 30..39. Tính toán độ hỗ trợ của các mục mới, từ đó tìm các tập mục phổ biến có độ hỗ trợ lớn hơn hoặc bằng Min-sup. Ta được bảng tập mục phổ biến như Bảng 2.4.h.
Bảng 2.4.g. Bảng People sau khi đã kết hợp hai khoảng tuổi liền kề.
Tập mục phổ biến (Trích mẫu) Độ hỗ trợ {<Tuổi: 20..29>}
{<Tuổi: 30..39>}
3 2 Đã kết hôn Giá trị nguyên
Yes No
1 2
ID Tuổi Đã kết hôn Số lƣợng xe 001
002 003 004 005
1 2 2 3 4
2 1 2 1 1
1 1 0 2 2
ID Tuổi Đã kết hôn Số lƣợng xe 001
002 003 004 005
1 1 1 2 2
2 1 2 1 1
1 1 0 2 2
{<Đã kết hôn: Yes>}
{<Đã kết hôn: No>}
{<Số lượng xe: 0..1>}
{<Số lượng xe: 2>}
{<Tuổi:30..39>,<Đã kết hôn: Yes>}
3 2 3 2 2 Bảng 2.4.h. Bảng các tập mục phổ biến và độ hỗ trợ
Bước 4: Sinh luật từ các tập mục phổ biến dựa trên độ tin cậy và xác định các luật đáng quan tâm. Ta có một số luật mẫu như trong Bảng 2.4.h
Luật (trích mẫu) Độ hỗ trợ Độ tin cậy
<Tuổi:30..39> và <Đã kết hôn: Yes> <Số lượng xe:2>
<Tuổi: 20..29> <Số lượng xe:0..1>
40% ( 2/5) 60% (3/5)
100% ( 2/2) 100% ( 3/3) Bảng 2.4.h. Sinh các luật kết hợp định lượng
2.3.2.4. Vấn đề phân hoạch các mục định lƣợng
Trong phần này có xem xét đến việc lựa chọn, nên hay không nên phân hoạch giá trị các mục định lượng thành các khoảng và nếu tiến hành phân hoạch thì số lượng các khoảng và cách thức phân hoạch như thế nào cho phù hợp. Việc phân hoạch phải hạn chế được hai vấn đề “Độ hỗ trợ tối thiểu” và “Độ tin cậy tối thiểu”. Để kiểm soát được lượng thông tin mất mát trong quá trình phân hoạch, chúng ta xét đến một khái niệm đó là Mức đầy đủ bộ phận.
a)Mức đầy đủ bộ phận:
Đặt C là tập tất cả các tập mục phổ biến trên D. Cho K có giá trị bất kỳ 1. Tập con P được gọi là tập K-đầy đủ (K-complete) đối với C nếu:
P C
X ϵ P và X’ X X’ ϵ P
X ϵ C, [∃ ϵ P thỏa mãn:
i) là trường hợp tổng quát của X và support ( ) K support(X), và
ii) Y X thì ∃ trong đó là trường hợp tổng quát của Y và support ( ) K support (Y) ].
Hai điều kiện đầu tiên đảm bảo rằng P chỉ chứa các tập mục phổ biến và chúng ta có thể sinh các luật từ P. Ý nghĩa của điều kiện thứ ba là:
Phần đầu của điều kiện thứ ba nói rằng với bất kỳ tập mục X thuộc C, tồn tại một trường hợp tổng quát của X mà độ hỗ trợ của nó lớn nhất bằng K lần độ hỗ trợ của X trong P.
Phần thứ hai cho rằng với mọi tập con Y của X, luôn tồn tại trường hợp tổng quát của Y là tập con của trường hợp tổng quát của X thỏa mãn độ hỗ trợ lớn nhất của bằng K lần độ hỗ trợ của Y. Lưu ý rằng nếu K=1, P trở nên giống với C.
Ví dụ:
Xét Bảng 2.5. Các tập mục 2,3,5 và 7 sẽ tạo thành một tập 1.5-đầy đủ, khi đó một vài tập mục X như là 2,3,5 hoặc là 7 là trường hợp tổng quát mà độ hỗ trợ của chúng tối đa bằng 1.5 lần độ hỗ trợ của X. Mặt khác, tập mục 2 là trường hợp tổng quát của tập mục 1, và độ hỗ trợ của tập mục 2 bằng 1.2 lần độ hỗ trợ của tập mục 1. Tập mục 3,5 và 7 không tạo thành tập 1.5-đầy đủ bởi vì, đối với tập mục 1, chỉ có trường hợp tổng quát giữa 3,5 và 7 là 3, và độ hỗ trợ của 3 lớn hơn 1.5 lần độ hỗ trợ của 1.
Số tập mục Tập mục Độ hỗ trợ
1 2 3 4 5 6 7
{<Tuổi: 20..30>}
{<Tuổi: 20..40>}
{<Tuổi: 20..50>}
{<Số lượng xe: 1..2>}
{<Số lượng xe: 1..3>}
{<Tuổi: 20..30>,<Số lượng xe: 1..2>}
{<Tuổi: 20..40>,<Số lượng xe: 1..3>}
5%
6%
8%
5%
6%
4%
5%
Bảng.2.5. Các tập mục định lượng phổ biến – độ hỗ trợ
Bổ đề 1: Cho P là một tập K-đầy đủ đối với tất cả các tập mục phổ biến C. Cho Rc là tập các luật sinh ra từ C với một mức tin cậy tối thiểu Min_conf. Cho RP là tập các luật sinh ra từ P với độ tin cậy tối thiểu được thiết lập bởi Min_conf / K. Khi đó, đối với bất kỳ luật AB nào thuộc Rc , cũng tồn tại một luật thuộc RP thỏa mãn: