Thuật toán khai phá luật kết hợp mờ

Một phần của tài liệu Khai phá luật kết hợp mờ và áp dụng vào bài toán đầu tư chứng khoán (Trang 45)

Thuật toán khai phá luật kết hợp mờ dựa trên thuật toán Apriori và Apriori nhị phân và một số thay đổi trong quá trình cài đặt thực tế nhằm cải thiện thời gian tìm luật. Thuật toán khai thác luật kết hợp mờ chia làm 3 pha chính sau:

Pha 1: Mô hình hóa bài toán: chuyển dữ liệu ban đầu thông qua hàm thuộc của các tập mờ tương ứng với từng thuộc tính

Pha 2: Tìm tất cả các tập thuộc tính mờ phổ biến dạng <X,A> có độ hỗ trợ lớn hơn

độ hỗ trợ cực tiểu của người dùng nhập vào: fs(<X,A>)≥ fminsupp

Pha 3: Sinh các luật mờ tin cậy từ các tập phổ biến đã tìm thấy ở pha thứ nhất Nếu <X,A> là tập thuộc tính mờ phổ biến thì luật kết hợp mờđược sinh từ X có dạng X’ is A’ → X\X’ is A\A’.

Trong đó: X’ là tập con khác rỗng của X, X\X’ is A\A’. Trong đó:

X’ là tập con khác rỗng của X, X\X’ là hiệu của 2 tập hợp X và X’. fc là độ

tin cậy của luật thỏa mãn fc ≥ fminconf (do người dùng xác định)

A’ là tập con khác rỗng của A và là tập các tập mờ tương ứng với các thuộc tính trong X’. A\A’ là hiệu của 2 tập A và A’

Đầu vào của thuật toán: Cơ sở dữ liệu D với tập các thuộc tính I và các bản ghi T, ngưỡng hàm thuộc Wf, độ hỗ trợ tối thiểu fminsupp, độ tin cậy tối thiểu fminconf và toán tử Tnorm

Đầu ra của thuật toán: Tất cả các luật kết hợp mờ tin cậy.

Bảng 2.5. Ký hiệu sử dụng trong thuật toán khai phá luật kết hợp mờ

Ký hiệu Ý nghĩa

D Cơ sở dữ liệu ban đầu

43

I Tập các thuộc tính trong D T Tập các bản ghi trong D

Df Cơ sở dữ liệu mờ được tính toán từ cơ sở dữ liệu ban đầu thông qua hàm thuộc của các tập mờ tương ứng với từng thuộc tính

If Tập các thuộc tính trong Df, mỗi thuộc tính đều được gắn với 1 tập mờ. Mỗi tập mờ f có 1 ngưỡng Wf

Tf Tập các bản ghi trong Df, các thuộc tính trong mỗi bản ghi đã được chuyển sang một giá trị trong khoảng [0,1] nhờ hàm thuộc của các tập mờ tương ứng với từng thuộc tính

Fminsupp Độ hỗ trợ tối thiểu Fminconf Độ tin cậy tối thiểu

Ck Tập các thuộc tính có kích thước k

Fk Tập các thuộc tính phổ biến có kích thước bằng k F Tập tất cả các thuộc tính phổ biến

FC Tập tất cả các luật mờ sinh ra từ Fk

Thuật toán khai thác luật kết hợp mờ

1.Begin 2. ( Df , Tf , If )=MoHoa(D,I,T); 3. F1=Tạo_F1(Df,If,Tf,fminsupp); 4. F=∅,Cf=∅; 5. K=2; 6. While (Fk-1≠∅) 7. {Ck=Tao_F_k(Fk-1); 8. Fk=TinhSP_k(Ck,Df,fminsupp) 9. CFk=TimLuat(F,Fk,fminconf);

44

10. F=F ∪ Fk; 11. CF=CF ∪ CFk; 12. K=k+1; 13.End

Thuật toán sử dụng một số chương trình con sau:

Chương trình con MoHoa(D,I,T): Hàm này thực hiện nhiệm vụ chuyển đổi từ cơ

sở dữ liệu gốc D ban đầu sang cơ sở dữ liệu mờ Df. Các thuộc tính của D được gắn thêm các tập mờ và giá trị của các thuộc tính ở bản ghi T trong D được ánh xạ

thành một giá trị thuộc khoảng [0,1] thông qua các hàm thuộc (2.2), (2.3) ,(2.4)… của các tập mờ tương ứng với các thuộc tính.

Ví dụ : Cho cơ sở dữ liệu D như sau :

Bảng 2.6 Ví dụ cơ sở dữ liệu 13 cuộc gọi điện thoại

45

Ví dụ thuộc tính giờ gọi ban đầu trong bảng 2.7, sau khi mờ hóa ta sẽ được hai thuộc tính mới là [Giờ_thấp điểm ] (1) . [Giờ _cao_điểm] (2). Giờ_cao_điểm sử dụng hàm thuộc fcd(x;a,b,c,d)=max{min[(x-a)/(b-a),1,(d-x)/(d-c)],0}. Với a=02:00:00, b=08:00:00, c=17:00:00, d= 23:00:00. Giờ thấp điểm dùng phép bù của hàm fcd=1-fcd.

Sau khi thực hiện hàm MoHoa(D,I,T) , đã nêu trên ta sẽ có : IF ={[Giờ_BD, Giờ_thấp_điểm](1), [Giờ_BD, Giờ_cao_điểm](2),

{PTG,PTG_tự_động}(3),[PTG,PTG_nhân_công}(4),[TGĐT,TGĐT_ngắn}(5),{T GDT, TGĐT _trung_bình}(6), [TGĐT, TGĐT _dai}(7),

{LT,LT_có}(8), {LT, LT_không}(9)}

Như vậy IF bao gồm 9 thuộc tính đã được mờ hóa so với 4 thuộc tính ban

đầu trong cơ sở dữ liệu D. Mỗi thuộc tính mới là một cặp nằm trong dấu ngoặc vuông bao gồm tên thuộc tính ban đầu và tên của tập mờ gắn với thuộc tính ấy.

46

Bảng 2.7 –TF- Giá trị các thuộc tính tại các bản ghi đã được mờ hóa

Các chữ cái trong dòng đầu tiên có ý nghĩa như sau: G( giờ gọi ), P ( phương thức gọi ), T ( thời gian đàm thoại ( phút )), L ( có gọi liên tỉnh hay không ).

Do hàm thuộc của mỗi tập mờ f có một ngưỡng wf nên chỉ những giá trị nào vượt ngưỡng wf mới được tính đến, ngược lại những giá trị nào không vượt

ngưỡng được xem như bằng 0. ( theo công thức 2.12). Giả sử các thuộc tinh trong bảng 2.8 đều lấy wf bằng 0.5 thì những ô được tô mầu trong bảng là những ô vượt ngưỡng wf, những ô không được tô mầu xem như giá trị bằng 0.

Chương trình con F1=Tao_F1(Df,If,fminsupp,Wf) hàm này sinh ra F1 là tập tất cả

các tập phổ biến có 1 phần tử. Các tập phổ biến này phải có độ hỗ trợ lớn hơn hoặc bằng fminsupp

47

Thuật toán tạo F1:F1=Tạo_F1(Df,If,fminsupp,Wf) 1.F1=∅

2.For each I ∈ If

3. If(fs{i},wf≥fminsupp) then 4. F1=F1 ∪ {i};

5. End if

6.End for 7.Return F1

Ví dụ: Cơ sở dữ liệu như bảng 2.8 và fminsupp bằng 46% ta được bảng sau:

Bảng 2.8 : F1- Tập tất cả các thuộc tính mờ phổ biến có lực lượng bằng 1 Như vậy F1= {{3},{7},{8},{9}}

Chương trình con Ck=Tao_F_k(Fk-1): Hàm này thực hiện kết nối các cặp thuộc tính mờ từ tập các thuộc tính mờ phổ biến Fk-1 có k-1 phần tử để sinh ra tập các thuộc tính mờ Ck có k phần tử

Thuật giải tạo Fk từ Fk-1 Insert into Ck

Select P.Item_1,P.item_2,P.itemk-1,Q.itemk-1 From Lk-1P,Lk-1Q

48

AND (p.item_k-1<Q.item_k-1) AND (P.item_o_k-1 ≠ Q.item_0_k-1) Trong đó:

P.item_j, Q.item_j là thuộc tính mờ thứ j trong Lk-1

P.item_o_j,Q.item_o_j là thuộc tính gốc của các thuộc tính mờ thứ j trong Lk-1.

Với điều kiện P.Itemk-1<Q.itemk-1 nhằm không phát sinh các bộ không trùng nhau.Điều kiện (P.item_0_k-1 ≠ Q.item_0_k-1) sẽ đảm bảo không phát sinh các bộ thuộc tính mờ có cùng thuộc tính gốc.

Ví dụ : với F1 như sau ( bảng 2.9 )

49

Tập thuộc tinh [8, 9] là không hợp lệ vì có cùng thuộc tính ban đầu là LT. Chương trình con Fk= Tính_SP_K(Ck,DF,fminsupp,wf) : chương trình này duyệt quá cơ sở dữ liệu DF, chọn ngưỡng wf và toán tử T- norm để cập nhật độ hỗ

trợ cho các thuộc tính trong Ck. Sau khi duyệt xong, Tính_SP_K chỉ chọn những tập phổ biến có độ hỗ trợ lớn hoặc bằng fminsupp đểđưa vào Fk.

Ví dụ với K=2, và C2 như trên, fminsupp bằng 46% , wf=0.5 , sau khi thực hiện chương trình Tính_SP_K, ta được F2 .

Bảng F2được hình thành từ C2 như sau:

K=3, bảng tập các ứng cử viên 3 thuộc tính C3được tạo ra từ F2 là:

C3={{3, 7, 9}}

Tính đỗ hỗ trợ cho C3:

Bảng F3được hình thành từ C3 là tập rỗng vì không có tập thuộc tính nào lớn hơn fminsupp ( 46%) . Đến đây thuật toán dừng.

50

Chương trình con Fk=TinhSP_k(Ck,Df,Fminsupp,Wf): Hàm này duyệt qua cơ sở dữ

liệu Df, chọn ngưỡng wf và Tnorm để cập nhật độ hỗ trợ cho các thuộc tính trong Ck. Sau khi duyệt xong Tính_SP_k chỉ chọn những tập phổ biến có độ hỗ trợ lớn hơn hoặc bằng fminsupp đểđưa vào trong Fk.

Thuật giải 1.Fk=∅

2.For each X ∈ Fk-1 do

3. For each Y ∈ Fk-1 and X ≠ Y do 4. Begin

5. S = X ∪ Y

6. If(|S|= = k and fs(|S|) ≥ fminsupp) then

7. Fk=Fk ∪ {S};

8. End if

9. End 10. End for 11.End for

Chương trình con CFk =TimLuat(Fk,fminconf) chương trình con này sinh luật kết hợp mờ tin cậy từ các tập phổ biến Fk

1.CFk = ∅

2.For all X ∈ Fk do

3. For all Y ⊂ X and X ≠ Y and Y ≠ ∅) do 4. r = X \ Y → Y

51 5. If ( CF( r ) ≥ fminconf ) then 6. CFk = Fk \ {r} 7. EndIf 8. EndFor 9.EndFor

Với k= 2 thi hành chương trình con CFk =TimLuat(Fk,fminconf) với độ tin cậy cực tiểu fminconf là 70% kết qua CFk là các luật mờđược sinh ra từ Fk:

Kết luận chương

Trong chương hai đã trình bày tổng quan về khai thác luật kết hợp. phương pháp rời rạc hóa dữ liệu, các nhược điểm để từ đấy thấy việc sử dụng luật kết hợp mờ là cần thiết.Luật kết hợp mờ là một dạng luật kết hợp mở rộng mềm dẻo và gần gũi hơn dạng luật kết hợp cơ bản trong chương hai. Phần này cũng đưa ra thuật toán khai phá luật kết hợp mờ.

52

CHƯƠNG 3: BÀI TOÁN ĐẦU TƯ CHỨNG KHOÁN 3. 1 Nội dung bài toán

Cho trước một lượng lớn dữ liệu lưu các thông tin giao dịch trên sàn chứng khoán, người ta mong muốn phát hiện được những tri thức có giá trị như: chỉ số

chứng khoán của thị trường tăng hay giảm?, nên mua các cổ phiếu nào? khi nào thì nên bán các cổ phiếu ra? . . . nhằm phục vụ cho nhà đầu tư hoạch định chiến lược kinh doanh phù hợp.

Nhằm đạt được mục đích này người ta mong muốn nhận được từ các dữ liệu cho trước các phát biểu như: “40% những phiên giao dịch có giá trị giao dịch trái phiếu cao thì chỉ số VNIndex giảm”, hoặc “5% những giao dịch mua cổ phiếu hàng tiêu dùng có mua cổ phiếu của công ty cổ phần sữa Việt Nam”… những phát biểu như vậy gọi là luật kết hợp, nó ngầm định một số quan hệ kết hợp giữa một tập các

đối tượng.

3.1.1. Mô hình hoá bài toán

Giả sử I = {i1,i2,…,in} là tập của các thuộc tính nhị phân gọi là các mục ( giá trị giao dịch trái phiếu, tổng giá trị giao dịch, giá trị đầu tư nước ngoài mua . . .

được xem là một mục), D là cơ sở dữ liệu của các tác vụ ( mỗi giao dịch trong một ngày nào đó được xem là một tác vụ). Mỗi một tác vụ t được biểu diễn như một véc tơ nhị phân, với t[k] =1 nếu t có mục ik, ngược lại t[k] = 0. Một tập của các mục X ⊂ I được gọi là tập mục (item set). Một luật kết hợp được ngầm định ở dạng X ∩ Y = ∅. Một tác vụ t được gọi là chứa tập mục X nếu X ⊂ t . Mỗi tập mục

được nói là có hỗ trợ s trong cơ sở dữ liệu D nếu có s % của các tác vụ trong D chứa tập mục này. Luật kết hợp được nói là có độ tin tưởng c trong D nếu có c% của các tác vụ chứa X cũng chứa Y. Như vậy nếu có ký thiệu s(X), c(X ⇒ Y) tương ứng là độ hỗ trợ của tập mục X và độ tin tưởng của luật X ⇒ Y thì c(x ⇒ Y)

53

= s(X ∪ Y)/ s(X). Luật (X ⇒ Y) có hỗ trợ s(X ⇒ Y) trong D nếu s(X ⇒ Y) = s(X

∪ Y).

Nói cách khác, các biểu thức trên nói rằng độ tin tưởng của luật X ⇒ Y chính là xác suất có điều kiện của các tác vụ chứa Y xét trong điều kiện chứa X, và

độ hỗ trợ của luật này chính là xác suất của X ∪ Y. * Ví dụ :

Các phát biểu kiểu như 40% những phiên giao dịch có giá trị giao dịch trái phiếu cao thì chỉ số VNIndex giảm”, hoặc “5% những giao dịch mua cổ phiếu hàng tiêu dùng có mua cổ phiếu của công ty cổ phần sữa Việt Nam”. Khi đó 40% là độ

tin tưởng, 5% là độ hỗ trợ của luật tương ứng.

3.1.2. Cách giải quyết bài toán

* Bài toán tìm lut: Cho trước I là tập thuộc tính, L1 là tập các từ mô tả, MI là tập các hàm thuộc biểu diễn I ứng với LI. D là cơ sở dữ liệu trên I, σ và ϒ lần lượt là các ngưỡng độ hỗ trợ và độ chắc chắn tối thiểu. Hãy tìm R ( D, σ , ϒ,MI)

* Bài toán thc tế: Trong đầu tư chứng khoán, trước khi đưa ra quyết định mua hoặc bán cổ phiếu, nhà đầu tư phải tiến hành phân tích để dự đoán xu hướng tăng giảm của thị trường.Những thông tin dự báo về thị trường chứng khoán thì có nhiều, tuy nhiên những thông tin dự báo này thường là những thông tin chung cho cả thị trường như các thông tin dự báo về chỉ số VNIndex, HaSTCIndex….. Nhưng trong thực tế chúng ta thấy rằng nhà đầu tư chỉđầu tư vào một số loại cổ phiếu chứ

không phải họ đầu tư vào tất cả các cổ phiếu được niêm yết trên thị trường . Để

giúp nhà đầu tư có thể xây dựng và dự báo được chỉ số chứng khoán cho riêng các cổ phiếu mà họ quan tâm, trong phần này sẽ tính toán chỉ số chứng khoán dựa vào các loại cổ phiếu mà người dùng chọn và ứng dụng luật kết hợp mờ để tìm các luật và các ngưỡng hỗ trợ và ngưỡng tin cậy tương ứng, từ đó dựa vào % ngưỡng hỗ trợ

54

Ta có cơ sở dữ liệu (D) thông tin giao dịch chứng khoán ( tập các thuộc tính I), LI là các từ mô tả các thuộc tính của I

(“VNI tăng nhẹ”,”VNI tăng trung bình”, “VNI tăng mạnh”;“VNI giảm nhẹ”,”VNI giảm trung bình”, “VNI giảm mạnh”; “Mua trái phiếu ít”,”Mua trái phiếu trung bình”, “Mua trái phiếu nhiều”; “Giá trị giao dịch thấp”, “Giá trị

giao dịch trung bình”, “Giá trị giao dịch lớn”; ”Nước ngoài mua ít”, “Nước ngoài mua trung bình”, “Nước ngoài mua nhiều”; ”Nước ngoài bán ít”, “Nước ngoài bán trung bình”, “Nước ngoài bán nhiều”;”Tâm lý thị trường tốt”,”Tâm lý thị trường không tốt”).

MI là tập hàm thuộc biểu diễn I ứng với LI. Cho trước 2 giá trị σ là ngưỡng

độ hỗ trợ tối thiểu, ϒ là ngưỡng độ tin cậy tổi thiểu. Tìm R ( D, σ , ϒ,MI) có nghĩa là chúng ta đi tìm các luật và các ngưỡng hỗ trợ và ngưỡng tin cậy tương ứng.

Theo tài liệu của Kuok, thuộc tính giá trị mua trái phiếu được xác định bởi các tập tuổi mờ của mua trái phiếu ít, mua trái phiếu trung bình và mua trái phiếu nhiều. Một tập mờ được biểu diễn bởi một hàm thuộc, hàm thuộc này sẽ gắn mỗi giá trị của thuộc tính vào một giá trị nằm trong khoảng (0,1). Ví dụ, hàm thuộc của mua trái phiếu ít được gán giá trị 1.0 cho giá trị 50 tỉ,0.8 cho 100 tỉ và 0 cho 200 tỉ; trong khi đó hàm thuộc của mua trái phiếu trung bình gián giá trị 0 cho giá trị 50 tỉ, 1 cho giá trị 200 tỉ ,và 0 cho giá trị 500 tỉ

Hình 3.1: Hàm thuộc hình thang (2.3) cho các tập mua trái phiếu ít và mua trái phiếu trung bình

0,0 1

100 200

Mua trái phiếu trung bình

50 500 Giá trị giao dịch

Mua trái phiếu ít Hàm thuộc

55

3.1.3. Chuyển đổi cơ sở dữ liệu

Ta có cơ sở dữ liệu (D) chứa thông tin giao dịch chứng khoán như sau: Bảng 3.1. ví dụ về dữ liệu giao dịch chứng khoán theo ngày

Ngày VN Index +/- Giá trị giao dịch (000 vnd) Trái phiếu (000 vnd) ĐTNN Mua ĐTNN Bán Tâm lý thị trường 28/12/2007 927 5 538,797,171 71,180 90,136,026 -90,981,955 27/12/2007 921 -3 576,412,315 122,200,000 196,019,380 -42,665,218 26/12/2007 924 6 539,411,147 276,822,690 90,288,738 -38,509,255 25/12/2007 918 - 12 588,682,931 45,143,520 124,976,913 -77,242,865 24/12/2007 930 -4 552,461,696 109,532,148 98,325,303 -54,034,088 21/12/2007 935 5 773,072,217 135,536,865 170,307,149 -56,576,693 20/12/2007 930 - 16 742,075,292 170,889,950 155,557,594 -26,881,918 19/12/2007 946 27 871,405,095 130,420,080 116,900,862 -231,017,369 18/12/2007 919 8 770,366,041 5,572,840 181,540,126 -54,776,892 17/12/2007 911 - 11 725,738,763 155,810 123,828,549 -55,557,871 14/12/2007 922 -8 564,981,562 250,115,500 114,465,363 -170,015,309 13/12/2007 930 - 16 648,306,032 50,296,540 122,445,026 -30,650,594

Bảng 3.2. ví dụ về dữ liệu giao dịch của từng cổ phiếu theo ngày

Ngày CK Số lượng CP Giá đóng cửa SL giao dịch Tổng Giá trị Giao dịch Giá trị ĐTNN Mua Giá trịĐTNN Bán 28/12/2007 ABT 6,299,999 90 2,650 238,500 0 70,200 28/12/2007 AGF 12,859,288 83 48,910 4,030,620 2,644,000 2,255,900 28/12/2007 ALT 3,995,125 82 7,570 614,780 0 0 28/12/2007 BBC 10,770,782 100 6,890 683,195 0 1,000 28/12/2007 BBT 6,840,000 22.3 20,520 456,296 0 0 28/12/2007 BHS 16,847,727 49.5 20,850 1,040,665 0 54,540

56 28/12/2007 BMC 3,934,200 332 3,730 1,240,590 0 0 28/12/2007 BMP 14,040,580 165 7,080 1,168,100 8,250 0 28/12/2007 BPC 3,800,000 37 5,120 189,450 0 0 28/12/2007 BT6 10,997,850 59.5 21,880 1,311,340 6,050 60,500 28/12/2007 BTC 1,351,286 72 4,530 322,515 0 23,265 28/12/2007 CAN 5,000,000 26.8 4,020 108,036 0 0 28/12/2007 CII 40,000,000 64 113,640 7,199,455 2,647,890 0

Một phần của tài liệu Khai phá luật kết hợp mờ và áp dụng vào bài toán đầu tư chứng khoán (Trang 45)