.1 Các trường hợp của tham số đầu vào mạng nơ-ron

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu một số mô hình khai phá dữ liệu thời gian thực áp dụng vào bài toán dự báo ứng dụng trong phân tích số liệu tài chính (Trang 61 - 69)

Hàm seq() trong R tương tự như vịng lặp for trong các ngơn ngữ lập trình khác

cho phép tăng một giá trị từ x1 đến xn với bước nhảy t cho trước. Nghĩa là seq(x1, xn, t) thì các giá trị sẽ được tính như sau:

x2 = x1 + t; x3 = x2 + t; ..., xn = xn-1 + t;

Kết hợp việc sử dụng hàm expand.grid() và hàm seq() để tìm tham số tối ưu cho

mơ hình mạng nơ-ron như sau:

res <- expand.grid(Size=c(5,10,15,20),

Decay=seq(0.01,0.1, by = 0.01), MSE=0,Hit.Rate=0)

Ta thấy với size = 20, decay = 0.01 ta thu được bình phương lỗi nhỏ nhất (MSE) đạt giá trị tối ưu. Như vậy, với phương pháp vét cạn, ta thu được bộ tham số phù hợp cho mơ hình là size = 20, decay = 0.01. Ta sẽ chạy mơ hình với bộ tham số vừa tìm được như sau:

Hình 4.6 Kết quả dự đốn mơ hình mạng nơ-ron với bộ tham số tối ưu theo phương pháp vét cạn theo phương pháp vét cạn

So sánh kết quả thu được trong hình 4.5 và hình 4.6 ta thấy khả năng hội tụ của mạng nơ-ron với bộ tham số đã tối ưu theo phương pháp vét cạn cao hơn trong trường hợp huấn luyện mạng với bộ tham số ngẫu nhiên.

Kết quả khi chạy với mơ hình mạng NN đã tối ưu bằng phương pháp vét cạn ta thu được tỉ lệ chính xác trung bình bằng 82,4%. So với kết quả chưa tối ưu là 69.6% là cao hơn rất nhiều.

Mơ hình mạng nơ-ron trong trường hợp này như sau:

Hình 4.7 Mơ hình mạng nơ-ron với bộ tham số tối ưu theo phương pháp vét cạn

4.3.2Kết quả chạy với mơ hình máy vector hỗ trợ (SVM)

a. Huấn luyện mạng với bộ tham số đầu vào ngẫu nhiên

Với mơ hình SVM ta sử dụng thư viện e1071. Thư viện e1071 cung cấp cái

nhìn trực quan và kết quả dự báo hiệu quả, bao gồm cả việc tính tốn thơng thường, các phép tốn trên ma trận, vector hay chức năng thống kê.

Trong mơ hình ta sử dụng hai tham số đầu vào là gamma và cost. Trong đĩ: Gama là tham số nhân để xử lý phân loại phi tuyến tính.

Cost (viết tắt là c) là chi phí phân loại. Giá trị cost lớn nghĩa là phương sai lớn và ngược lại, giá trị cost nhỏ tức là chi phí phân lớp của bài tốn nhỏ. Như vậy việc tối ưu mơ hình SVM chính là đi tìm tham số c nhỏ nhất của mơ hình. Cross-validation và tìm kiếm vét cạn là một trong các phương pháp tốt nhất để tối ưu c.

Trong bài tốn của mình, chúng tơi đi huấn luyện mơ hình SVM với bộ tham số ngẫu nhiên với bộ tham số gamma=0.001, cost = 100.

gamma=0.001, cost =100)

Kết quả dự đốn thu được trong hình 4.8.

Hình 4.8 Kết quả dự đốn của mơ hình SVM

b. Tối ưu hĩa mơ hình SVM bằng phương pháp vét cạn

Như ta đã biết, với mơ hình SVM thì một trong số các cách tối ưu tham số của

mơ hình đem lại hiệu quả là sử dụng phương pháp vét cạn. R hỗ trợ hàm tune.svm()

dùng để tạo ra một tổ hợp các cách lựa chọn giữa giá trị gamma và cost. Ở đây ta sẽ sử

dụng hàm tune.svm() và giá trị gamma=10^(-6:-1), cost=10^(1:4).

tune <- tune.svm(r1.f1~.,data=ibm.train[,-ncol(ibm.train)], gamma=10^(-6:-1), cost=10^(1:4))

Kết quả thu được như sau:

Parameter tuning of ‘svm’:

- sampling method: 10-fold cross validation - best parameters:

gamma cost 0.001 10000

- best performance: 0.025

Kết quả thu được với bộ tham số tối ưu là gamma = 0.001, cost = 10000. Ta sẽ

Hình 4.9 Mơ hình dự đốn SVM tối ưu theo phương pháp vét cạn

Như vậy ta thấy, sau khi tối ưu bằng phương pháp vét cạn ta thấy khả năng hội tụ

của mơ hình với bộ tham số đã tối ưu theo phương pháp vét cạn cao hơn trong trường hợp huấn luyện mơ hình với bộ tham số ngẫu nhiên.

c. Tối ưu hĩa mơ hình sử dụng giải thuật di truyền

Áp dụng cải tiến mơ hình bằng cách sử dụng giải thuật GA để tối ưu hĩa tham số gamma và c của mơ hình. Ngồi packages “GA” để dự đốn mơ hìnhSVM, ở đây ta sử dụng thêm 2 packages là “kernlab” và “ROCR”.

Giải thuật di truyền là kĩ thuật giúp giải quyết bài tốn bằng cách mơ phỏng theo sự tiến hố và đấu tranh sinhh tồn của sinh vật trong tự nhiên theo thuyết tiến hố muơn lồi của Darwin.

Một thuật tốn di truyền cho phép ta tối ưu hĩa các thơng số bằng cách sử dụng một thuật tốn tiến hĩa trong sinh học. Nĩ sẽ chạy qua nhiều thế hệ của các giá trị để

tối ưu hĩa hàm thích nghi (fitness). Kết quả trả về là các tham số mà cho ta hàm thích

nghi tối ưu nhất [5].

Gĩi GA (Genetic Algorithm) trong R cho phép sử dụng số nhị phân hoặc số thực

làm các tham số cho hàm fitness.

Hàm fitness được tính bằng việc dự đốn với giá trị AUC (được tính bằng việc

lấy các vector đầu vào cĩ mặt/các vector vắng mặt) mà cho kết quả cao nhất.

Ý tưởng của giải thuật di truyền là mơ phỏng cơ chế của quá trình chọn lọc và di truyền trong tự nhiên. Từ tập các lời giải ban đầu, thơng qua nhiều bước tiến hĩa để hình thành các tập mới với những lời giải tốt hơn, cuối cùng sẽ tìm được lời giải tối ưu nhất. GA sử dụng các tham số:

- Tập quần thể ban đầu (population) chính là tập hợp các lời giải cho bài tốn. - Mỗi lời giải được biểu diễn bởi một nhiễm sắc thể (chromosome).

- Nhiễm sắc thể được tạo thành từ các gen. Một gen là một đoạn thơng tin cĩ thể được định nghĩa là một giá trị nhị phân.

Một quá trình tiến hĩa được thực hiện trên một quần thể tương ứng với sự tìm kiếm trên khơng gian các lời giải cĩ thể của bài tốn. Quá trình tìm kiếm này luơn địi hỏi sự cân bằng giữa hai mục tiêu khai thác lời giải tốt nhất và xem xét tồn bộ khơng gian tìm kiếm.

Tập lời giải trải qua nhiều bước tiến hĩa, tại mỗi thế hệ, một tập mới các các thể được tạo ra cĩ chứa các phần của những cá thể thích nghi nhất trong thế hệ trước đĩ.

Việc đánh giá cá thể cĩ thích nghi hay khơng thơng qua hàm thích nghi (fitness). Như

vậy các đặc trưng được đánh giá tốt sẽ cĩ cơ hội phát triển và các tính chất khồng tốt (khơng thích nghi với mơi trường) sẽ cĩ xu hướng biến mất.

Với cơ sở dữ liệu ta đã thu được trong phần 4.2 là các số thực. Ta sẽ tiến hành xử lý dữ liệu để phù hợp hơn với mơ hình GA sử dụng các số nguyên bằng cách gấp 10000 lần các giá trị trong bảng dữ liệu ban đầu để thu được bảng dữ liệu như sau:

r1.f1 r1.t0 r1.t1 r1.t2 r1.t3 r1.t4 r1.t5 r1.t6 r1.t7 r1.t8 r1.t9 14 7 -85 -85 260 -107 145 177 -131 0 7 43 14 7 -85 -85 260 -107 145 177 -131 0 21 43 14 7 -85 -85 260 -107 145 177 -131 -71 21 43 14 7 -85 -85 260 -107 145 177 -143 -71 21 43 14 7 -85 -85 260 -107 145

Việc tăng đều các giá trị trong cơ sở dữ liệu ban đầu lên 10000 lần sẽ khơng làm ảnh hưởng đến kết quả đánh giá của mơ hình.

Quá trình đánh giá mơ hình theo các bước như trong hình sau[11]:

Ta sẽ đi tiến hành tối ưu mơ hình với tham số là Gamma và c bằng giải thuật GA.

rbga.results = rbga(c(0.001, 0.001), c(200, 200), popSize=population, iters=generation, mutationChance=mutation.rate, elitism=elitisme, monitorFunc=monitor, evalFunc=evaluate)

Kết quả thu được chính là giá trị tốt nhất của tham số gamma và tham số c trong quần thể khởi tạo. Ta sẽ dùng mơ hình SVM để tìm ra hai tham số tối ưu đĩ.

> optimum.model <- ksvm(Status~., data=TRAIN, type = "C-svc", kernel = "rbfdot",kpar = list(gamma = bestGamma), C =bestC, cross=5, prob.model=TRUE)

> optimum.model

Kết quả thu được của sau khi tối ưu tham số gamma và c như sau:

Support Vector Machine object of class "ksvm" SV type: C-svc (classification)

parameter : cost C = 6.23384502653475 Gaussian Radial Basis kernel function. Hyperparameter : gamma = 155.78793130156 Number of Support Vectors : 3000

Vậy sigma = 155.78; c= 6.233 là giá trị tối ưu thu được từ quá trình tối ưu tham số của mơ hình SVM sử dụng GA.

Sau đây ta sẽ đi dự đốn mơ hình SVM với bộ dữ liệu tối ưu vừa thu được.

> sv <- svm(r1.f1~ .,data=ibm.train[,-ncol(ibm.train)], gamma=155.78793, cost=6.23384)

> sv.preds <- predict(sv,ibm.test)

Đánh giá mơ hình ta thu được độ chính xác là 81.6%. Độ chính xác này là khá cao so với sử dụng phương pháp vét cạn (70.1%). Điều này cho thấy tối ưu mơ hình SVM bằng giải thuật GA cho ta kết quả tối ưu hơn so với việc tối ưu bằng phương pháp vét cạn.

4.3.3Kết quả chạy với mơ hình ARIMA

a. Kết quả chạy mơ hình ARIMA với bộ tham số ngẫu nhiên

Trong R hỗ trợ hàm arima cho phép dự đốn để đưa ra hàm mục tiêu của mơ hình. Ta chạy mơ hình với bốn bộ tham số c = (p, d, q) trong đĩ:

+ p là bậc của mơ hình tự hồi quy (AR(p))

+ d là số lần lấy hiệu để chuỗi thời gian trở thành chuỗi tĩnh + q là bậc của mơ hình trung bình di động (MA(q))

Ta sử dụng tiêu chuẩn AIC để đánh giá mơ hình. Mơ hình được lựa chọn là mơ hình cĩ AIC bé nhất.

>ar <- arima(ibm.data$r1.f1, order=c(2,0,0)) > ar$aic [1] -40041.74 > ar <- arima(ibm.data$r1.f1, order=c(0,0,1)) > ar$aic [1] -40041.74 >

> ar<- arima(ibm.data$r1.f1, order=c(1,0,1)) > ar$aic

[1] -40040.93 >

> ar<- arima(ibm.data$r1.f1, order=c(0,0,2)) > ar$aic

[1] -40041.69

b. Kết quả chạy mơ hình ARIMA với bộ tham số tối ưu bằng phương pháp vét cạn

best.order<- c(0,0,0) best.aic<-Inf for (i in 0:2) for (j in 0:2) { fit.aic<-AIC(arima(ibm.data$r1.f1, order=c(i,0,j))) if (fit.aic < best.aic) { best.order <- c(i,0,j)

best.arma <- arima(ibm.data$r1.f1, order=best.order) best.aic <-fit.aic

}}

Kết quả thu được như sau:

Call:

arima(x = ibm.data$r1.f1, order = best.order) Coefficients:

ar1 ar2 intercept -0.0238 -0.0162 1e-04 s.e. 0.0111 0.0111 2e-04

sigma^2 estimated as 0.0004302: log likelihood = 20024.87, aic = - 40041.74

Nhìn vào kết quả ta thấy, mơ hình 1, và 2 ứng với c(0,0,1) hoặc c(2, 0, 0) là phù hợp nhất cho mơ hình arima với dữ liệu đầu vào đã cho. Kết quả AIC = -40041.74. Kết quả đự đốn bằng mơ hình ARIMA kết hợp phương pháp vét cạn thể hiện trong hình vẽ 4.12 như sau:

Hình 4.12 Kết quả dự đốn bằng mơ hình ARIMA kết hợp phương pháp vét cạn

Trong đồ thị trên, đường nét màu đen thể hiện giá thực tế, đường nét màu xanh thể hiện giá dự đốn bằng mơ hình arima với tham số tốt nhất thu được bằng phương pháp vét cạn c=(2,0,0).

4.4 So sánh và đánh giá kết quả

Trong phần này chúng ta sẽ đi đánh giá mơ hình thời gian thực bằng cách lấy mẫu ngẫu nhiên từ các dữ liệu chưa được sắp xếp. Việc sử dụng phương pháp thời gian thực cĩ thể dẫn đến các trường hợp khơng mong muốn như sử dụng mẫu quan sát ở tương lai cho các biến với mục đích huấn luyện, hoặc đánh giá mơ hình dữ liệu trong quá khứ. Để tránh được vấn đề này chúng ta thường chia dữ liệu thời gian thực thành

các cửa sổ thời gian, cĩ được mơ hình huấn luyện với thời gian trong quá khứ và kiểm tra nĩ với khoảng thời gian sau đĩ.

Mục đích chính của bất kì chiến lược đánh giá nào là độ chính xác của mơ hình dự đốn đạt được một giá trị đáng tin cậy nào đĩ. Nếu như sự đánh giá của chúng ta đáng tin cậy, chúng ta cĩ thể hồn tồn cĩ thể tin tưởng rằng giá trị dự đốn sẽ khơng lệch nhiều so với kết quả thực tế khi ta đưa dữ liệu mới vào mơ hình.

Thiết lập thời gian khởi tạo t là thời gian bắt đầu giai đoạn thử nghiệm. Dữ liệu với thời gian trước t dùng để huấn luyện mơ hình dự đốn, cịn dữ liệu cĩ được sau thời điểm t sẽ được sử dụng để kiểm tra mơ hình đĩ. Ta phải thu được mơ hình đánh giá với dữ liệu trước thời điểm t và sau đĩ kiểm tra mơ hình với dữ liệu sau thời điểm

t. Quá trình này được thể hiện rất rõ thơng qua thuật tốn cửa sổ trượt (Sliding

window) đã được mơ tả chi tiết trong chương 3.

Trong quá trình đánh giá người ta đưa ra giới hạn lỗi nhằm đánh giá tính chính xác của mơ hình. Hệ số Theil được đưa ra như trong biểu thức 3.11 để đánh giá độ chính xác của mơ hình được thể hiện trong chương trình như sau:

naive.returns <- c(vnindex.train[nrow(vnindex.train),1], vnindex.test[1:(nrow(vnindex.test)-1),1]) theil <- function(preds,naive,true) {

sqrt(sum((true-preds)^2))/sqrt(sum((true-naive)^2)) }

Kết quả đối với mơ hình ANN sử dụng tối ưu bằng phương pháp vét cạn:

N Theil HitRate PosRate NegRate Perc.Up Perc.Down avg 3142 0.824 0.509 0.516 0.503 0.507 0.493 1990 253 0.735 0.488 0.488 0.487 0.506 0.494 1991 253 0.711 0.494 0.491 0.496 0.486 0.514 1992 254 0.755 0.527 0.530 0.523 0.496 0.504 1993 253 0.713 0.481 0.491 0.471 0.510 0.490 1994 252 0.676 0.519 0.509 0.529 0.500 0.500 1995 252 0.704 0.485 0.488 0.482 0.492 0.508 1996 254 0.715 0.565 0.569 0.559 0.512 0.488

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu một số mô hình khai phá dữ liệu thời gian thực áp dụng vào bài toán dự báo ứng dụng trong phân tích số liệu tài chính (Trang 61 - 69)

Tải bản đầy đủ (PDF)

(73 trang)