Xác định số lượng phân cụm tối ưu :
1 mr ∈M = {m ,..., m }NM : IF isr A is r r r i i i R x X∈ THEN y Y r B∈
Bước tiếp theo sẽ là xác định số lượng cụm phù hợp nhất với dữ liệu huấn luyện được cung cấp ứng với một thang đo. Ta kí hiệu , ,
r c Mod k
y là đầu ra của mô hình thu được bởi véc
tơ dữ liệu thứ k trong tập véc tơ dữ liệu huấn luyện đầu vào với mức độ mờ sử dụng là mr và c là số lượng các luật. Tiếp đến, ta kí hiệu sai số bình phương (RMSE) của kết quả
, , r c Mod k y là , , (yr c ) Mod k
SE . Với số lượng cụm ban đầu là c, ta có kết quả đầu ra tối ưu cho véc tơ dữ liệu huấn luyện thứ k là yMo kc d, , được tính bởi công thức sau :
', , ',
, {y , | (y , ) minNM1 [ (y , )]}
c r c r c r c
Mod k Mod k Mod k r Mod k
y SE SE
=
= =
Với c=cmin...cmax, k=1...ND. Vậy ta có được tổng sai số bình phương cho một số lượng cụm c cụ thể sẽ là SSE(c). SSE(c) được tính như sau :
2 , 1 ( ) ( ) ND c k Mod k k c SSE y y = =∑ − Với c=cmin...cmax. Số lượng luật tối ưu c* lúc đó sẽ được xác định bằng biểu thức sau :
ax min min ax ( ) ( ) * { c | min(cm )} m p c c c c p c SSE SSE = = ≤ ≤ =
Ở bước này, số lượng cụm tốt nhất c* đã được chọn và tất cả các tham số tiền đề và kết luận được xác định cho c* với các giá trị độ mờ khác nhau, m ∈M.
3.2.2 Xây dựng bảng tra cứu m
Bước cuối cùng của công đoạn xác định cấu trúc mô hình sẽ là xây dựng bảng tra cứu m. Kí hiệu mk là giá trị độ mờ tối ưu ứng với một mô hình mờ loại một nhúng có sai số bình phương nhỏ nhất cho dữ liệu huấn luyện đầu vào thứ k. mk được xác định như sau :
Ở đây ta đã xác định xong tất cả các tham số của tập tiền đề, kết luận và xác định được bảng tra cứu m. Vậy bước xác định cấu trúc mô hình đã được hoàn thành.
= 1, ..., ND k ∀ ' ', * , * , 1 , m | ( ) min[ ( )] { NM } r r c r c k Mod k r Mod k m M SE y SE y = = ∈ =
3.2.3 Các bước suy diễn
Phương pháp suy diễn mờ được đề xuất ở đây có thể xem như là sự mở rộng loại hai. Sự khác biệt lớn nhất so với các mô hình loại hai thông thường là bước giảm loại được sử dụng ngay đầu tiên trong quá trình suy diễn, việc giảm loại từ loại hai sang loại một bằng cách lựa chọn mô hình mờ loại một nhúng phù hợp nhất cho mỗi một véc tơ dữ liệu kiểm tra đầu vào (đánh giá mức độ phù hợp dựa trên một thang đo chính xác). Như đã đề cập ở trên, mô hình hệ mờ loại hai được xây dựng do độ bất định trong quá trình lựa chọn giá trị mức độ mờ, m. Do đó lựa chọn mô hình mờ loại một nhúng phù hợp cũng tương đương với lựa chọn giá trị độ mờ m thích hợp cho giá trị kiểm tra đầu vào. Bảng tra cứu m được xây dựng nhằm phục vụ cho quá trình suy diễn này.
Cho một vecto dữ liệu đầu vào x’, giải thuật suy diễn được tóm tắt trong 5 bước sau :
1. Chọn giá trị tối ưu m tương ứng với x’. Giá trị đó được kí hiệu là m’ , m’ ∈ M. 2. Tìm độ đốt cháy cho mỗi luật với vecto dữ liệu kiểm tra x’.
3. Tìm tập mờ đầu ra mô hình của mỗi luật sau khi sử dụng mức độ đốt cháy tương ứng.
4. Kết tập các tập mờ đầu ra của mỗi luật tạo ra tập mờ đầu ra tổng cộng. 5. Dùng phương pháp xác định điểm trọng tâm để tìm giá trị đầu ra chính xác.
Vì thế, mô hình tập mờ loại hai phải được giảm loại để thực thi các bước suy diễn mờ cổ điển. Như đã đề cập trước đóm bảng tra cứu m xác định trong pha xây dựng cấu trúc mô hình đề xuất được sử dụng cho mục đích này. Khi một dữ liệu kiểm thử x’ được đưa vào mô hình, đầu tiên dữ liệu huấn luyện gần nhất (theo thang đo khoảng cách) sẽ được chọn. Sau đó, mô hình tập mờ loại một tương ứng với giá trị m trong bảng tra cứu sẽ được sử dụng. Bước này được thực hiện bằng biểu thức:
1 ' { | ( ', ) min ( ', )ND ( )} f f k k m m d x x d x x = = =
Với f ∈{1,...,ND} , m'∈M và mf giá trị độ mờ trong bảng tra cứu của véc tơ dữ liệu huấn luyện f. Bởi vậy, bằng việc chọn mô hình hệ mờ loại một tương ứng với giá trị m’, chúng ta đã giảm loại từ mô hình mờ loại hai sang loại một với bộ tham số suy diễn
Sau khi có được mô hình mờ loại một nhúng tra trong bảng giá trị độ mờ, chúng ta sẽ dùng nó để tìm ra đầu ra mô hình với dữ liệu vào x’.
Mức độ đốt cháy luật thứ i cho giá trị vào x’ có thể được xác định như sau:
* 1 2 , *, * * 1 , *, * 1 ( ') ( ', ) ( ', )) ( (c X r c r ) i m X r c j j x i d x vd x v µ − − = = ∑
Bước thứ 3 của phương pháp suy diễn đề xuất này là tìm tập mờ đầu ra của mô hình cho mỗi luật bằng cách sử dụng toán tử kéo theo cho sự tương ứng giữa mức độ đốt cháy tập luật với các tập mờ đầu ra. Phương pháp được đề xuất này dựa trên cơ sở mô hình mờ Mamdani, toán tử thực hiện phép kéo theo được lựa chọn là min. Giả thiết rằng tập mờ đầu ra của mỗi luật được biểu diễn bằng ma trận phân tán chứa NS giá trị mẫu đầu ra và chúng tương ứng với các giá trị độ thuộc trong mỗi luật. Do đó, tập mờ đầu ra của luật thứ i là Bi* sẽ được biểu diễn toán học bằng hàm thuộc µi*(y) được xác định bằng cặp giá trị :
Với µi*(yp) được tính như sau :
Bước thứ tư là kết tập các tập mờ đầu ra. Bước này được thực hiện bằng cách sử dụng toán tử ALSO. Phép tuyển mờ này chọn Max. Đầu ra mô hình tổng thể có thể được biểu diễn toán học bằng hàm thuộc µ*(y) được xác định bằng công thức :
Bước cuối cùng là tìm đầu ra rõ của mô hình, y* , bằng phương pháp xác đinh điểm trọng tâm của tập mờ đầu ra theo biểu thức :
Như vậy, khi kết thúc quá trình suy diễn của phương pháp mô hình hóa này chúng ta sẽ thu được đầu ra rõ y* của hệ thống.
, min( ( ) ( '), ( ) * y {(yp x yp )} i i i µ = µ µ * 1 , *, * 2 * 1 , *, * 1 ( , ) ( , ) ( ) * ( ( ) r ) Y r c c p i m p Y r c j p j d y v d y v y i µ − − = = ∑ 1.. *ax min( ( ( '), ( ))) ( ) * {y , } p im c i x i yp y µ µ µ = = 1 1 ax min ( '), ( ) * ax min ( '), ( ) ( ) ( ) ( ) ( ) NS p p p NS p p y m x y y m x y µ µ µ µ = = = ∑ ∑
3.2.4 Bộ dữ liệu huấn luyện
Áp dụng với bộ dữ liệu dữ liệu thực nghiệm được trình bày bởi Michio Sugeno và Takahiro Yasukawa trong “A Fuzzy-Logic-Based Approach to Qualitative Modeling” lEEE TRANSACTIONS ON FUZZY SYSTEMS, VOL. I, NO. I. FEBRUARY 1993 Bộ 50 dữ liệu luyện tập :
Bộ 50 dữ liệu kiểm thử
Với bộ dữ liệu trên ta có biểu đồ giá của cổ phiếu A :
Hình 3.3: Biểu đồ mức độ thay đổi giá của cổ phiếu A Trong đó các biến hệ thống có thể được định nghĩa như sau :
x1: past change of moving averageover a middle period
x2: present changeof moving average over amiddle period
x3 : past separation ratio w.r.t moving average over a middle period
x4: present separation ratio w.r.t moving average over a middle period
x5: present change of moving average over a short period
x6: past change of price
x7: present change of price
x8: past separation ratio w.r.t moving average over a short period
x9: present change of moving average over a long period
x10 : present separation ralio w.r.t moving average over a short period
y : prediction of stock price
Với các tham số được cung cấp ban đầu là:
- m thuộc {1.01, 1.2, 1.5, 1.8, 2, 2.2, 2.5, 2.8, 3, 3.2, 3.5}
- c = 2,3…19,20
Với bộ dữ liệu và tham số đầu vào ban đầu, tổng cộng ta sẽ phải xây dựng là 209 mô hình nhúng tương ứng với các cặp ( m,c ) đã cho ở trên với 3 biến hệ thống x4,x8, x10 được chọn là có ý nghĩa quan trọng nhất ảnh hưởng trực tiếp tới biến đầu ra y , nên ta sẽ có tập không gian dữ liệu đầu vào ba chiều (x4,x8,x10) và tập không gian dữ liệu đầu ra một chiều (y).
Ví dụ : Xét một trường hợp cụ thể với m=2, c=5 ta có :
Áp dụng giải thuật phân cụm FCM với 2 tham số {m,c} = {2,5} gán nhãn cho các cụm mờ sau khi được phân cụm theo từng chiều của X ta sẽ có bộ luật cơ sở sau
Hình 3.4 :Tập luật cơ sở của Michio Sugeno và Takahiro Yasukawa
If x4 is less than zero and x8 is more or less zero and x10 is more less zero THEN y is rise If x4 is minus and x8 is more or less zero and x10 is more or less zero THEN
y is sort of rise If x4 is sort of minus and x8 is more or less zero and x10 is more or less zero THEN
y is level If x4 is more or less zero and x8 is more or less zero and x10 is more or less zero THEN
y is sort of decline If x4 is more than zero and x8 is sort of plus and x10 is more than zero THEN y is decline ……….
Bộ luật này được cung cấp bởi Michio Sugeno ,Takahiro Yasukawa trong “A Fuzzy- Logic-Based Approach to Qualitative Modeling ”, lEEE Transactions on Fuzzy Systems, Vol. I, No. I . February 1993.
Thay vì tập luật có tiền đề biểu diễn bởi sự kết tập của các tập mờ biến đầu vào thì ta có tập luật rút gọn như sau :
If X is A1 then y is rise.
If X is A2 then y is sort of rise. If X is A3 then y is level.
If X is A4 then y is sort of decline. If X is A5 then y is decline.
…….
Với X={x1, x2, x3} và tập mờ đa chiều
A1 = {less than zero,more or less zero, more less zero} A2= { minus, more or less zero, more or less zero} A3= { sort of minus,more or less zero,more or less zero}
A4= { more or less zero, more or less, more or less zero} A5= { more than zero, sort of plus, more than zero}
…….
Sau khi xây dựng xong bộ các mô hình mờ loại một nhúng, thực hiện bước tối ưu ta thu được số lượng phân cụm tốt nhất cho mô hình mờ loại hai là c*.
Từ đó ta tiếp tục xây dựng bảng tra cứu mk = m1,…,m50 tương ứng với 50 giá trị dữ liệu luyện tập đầu vào. Với mỗi giá trị mk {l.0l, 1.2, 1.5, 1.8, 2, 2.2, 2.5, 2.8, 3, 3.2, 3.5}. Bảng tra cứu m chi xét với số lượng cụm c* tối ưu.
3.3 KẾT LUẬN
Những nội dung trong chương đã trình bày chi tiết cách thức xây dựng một mô hình mờ dựa trên tập dữ liệu mẫu lấy từ thực tế. Ta đã lần lượt giải quyết các vấn đề nêu ra trong chương trước, từ việc xây dựng các mô hình mờ nhúng, cho đến việc tối ưu mô hình mờ loại hai. Đồng thời xây dựng được bảng tra cứu m giúp cho quá trình suy diễn của mô hình mờ loại hai trở nên dễ dàng hơn.
Các vấn đề trình bày trong chương đều được khái quát hóa thông qua các biểu diễn toán học. Cơ sở luật được tạo ra từ các thuật toán này sẽ được sử dụng để biểu diễn mô hình mờ Mamdani nhúng với công cụ của Matlab sẽ được trình bày trong chương tiếp theo.
CHƯƠNG IV: XÂY DỰNG HỆ THỐNG DỰ BÁO GIÁ CỔ PHIẾU TRONG THỊ TRƯỜNG CHỨNG KHOÁN
4.1 GIỚI THIỆU CÔNG CỤ MATLAB
MATLAB là một môi trường tính toán số và lập trình, được thiết kế bởi công ty MathWorks. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật, trong đó bộ thư viện về hệ mờ loại một ( Fuzzy Inference System ) bao gồm các mô hình Mamdani và Tagaki-Sugeno rất hữu ích cho ta xây dựng mô hình mờ loại hai trong đồ án này.
4.1.1 Xây dựng mô hình mờ với Fuzzy Logic Toolbox của Matlab
Sử dụng Fuzzy Logic Toolbox trong MATLAB chúng ta có các công cụ để xây dựng các hệ suy diễn. Dùng lệnh sau để xem chi tiết về hộp công cụ này
>> help fuzzy
Sử dụng giao diện đồ họa để mô phỏng một số hệ mờ. Matlab cung cấp 5 tool giao diện chính cho việc xây dựng, chỉnh sửa, và quan sát trong hộp công cụ:
Các cửa sổ giao diện này liên kết động với nhau. Vì vậy khi nhập thông tin từ bất kì cửa sổ nào có thông tin liên quan đến các cửa sổ khác đều được lưu lại. Có thể sử dụng lại chúng trong bất cứ hệ mờ nào cần tạo.
4.1.1.1 FIS Editor
Để vào màn hình giao diện cơ bản nhất FIS editor (Fuzzy Inference system) ta chạy lệnh sau :
>> fuzzy
Hình 4.2: Cửa sổ giao diện (Fuzzy Inference system)
Từ cửa sổ FIS editor cho phép ta khai báo ở mức cao của hệ mờ: - Bao nhiêu biến vào.
- Bao nhiêu biến ra. - Các nhãn của chúng.
Số đầu vào và số hàm thuộc không bị hạn chế và lớn nhất trong khả năng bộ nhớ của máy cho phép. Tuy nhiên nếu sử dụng quá lớn thì sẽ khó để phân tích cho các cửa sổ giao diện khác.
Cách sử dụng để khai báo các biến được chỉ ra như hình dưới:
Hình 4.3: Khai báo các tham số vào ra hệ thống
Ngoài ra Matlab còn cung cấp sẵn một số mô hình hay cung cấp các luật và các dạng hàm thuộc có sẵn trong file tipper.fis bằng cách chạy dòng lệnh >> fuzzy tipper
Sau khi đã khai báo xong thông tin chung của hệ suy diễn ta có thể đặt tên lưu file vào workspace để sử dụng và phải lưu vào ổ cứng để có khả năng sử dụng lại hệ suy diễn trong các phiên làm việc tiếp theo.
4.1.1.2 Membership Function Editor
Ở cửa sổ này ta có thể thấy và chỉnh sửa thông tin về hàm thuộc cho các biến vào và ra cho từng hệ mờ.
Để vào được cửa sổ này ta chạy lệnh sau: >>mfedit
Hình 4.4: Hàm thuộc tương ứng với các biến vào ra
Màn hình này để định nghĩa hàm thuộc cho các biến được tạo ra ở màn hình FIS Editor trước đó bằng cách tải file theo tên đã được lưu trong workspace.
Với mỗi biến tương ứng ta định nghĩa các hàm thuộc tương ứng. Phần màn hình định nghĩa hàm thuộc cho từng biến được chọn như sau:
Hình 4.5: Định nghĩa hàm thuộc cho từng biến
Ở cửa sổ này ta có thể định nghĩa miền xác định, miền hiển thị. Một số dạng hàm thuộc được Matlab cung cấp như gaussmf, gbellmf. sigmf…..và các tham số hệ thống tương ứng của các hàm thuộc.
4.1.1.3 Rule editor
Ở cửa sổ này cho phép tạo ra các luật bằng cách kết hợp các biến vào và ra bằng các phép logic and hay or ở mệnh đề điều kiện.
Để vào được cửa sổ này ta chạy lệnh sau: >> ruleedit
Hình 4.6: Xây dựng cơ sở luật
4.1.1.4 The Rule Viewer
Rule Viewer hiển thị sơ đồ của toàn bộ quá trình suy diễn. Nó dựa trên sơ đồ suy diễn đã được mô tả ở phần trước (thông tin mô tả trong các cửa sổ Fis Editor, Membership