Luận văn Ứng dụng mô hình học máy tiên tiến nhằm tăng cường khả năng dự báo xu thế của thị trường chứng khoán

Như vậy, về cơ bản thì mô hình cây quyết định là một mô hình tương đối tốt đối với dữ liệu thời gian thực. Độ chính xác khi xây dựng mô hình trên tập huấn luyện rất cao, cao hơn hẳn mô hình mạng nơron và SVM và thời gian xây dựng mô hình rất rất nhanh giúp nhà đầu tư có nhiều thời gian suy nghĩ trước khi quyết định hơn. Phần lớn các bộ dữ liệu có kết quả dự đoán gần với giá trị thực hơn so với mô hình mạng nơron và SVM

pdf74 trang | Chia sẻ: lylyngoc | Lượt xem: 2692 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Ứng dụng mô hình học máy tiên tiến nhằm tăng cường khả năng dự báo xu thế của thị trường chứng khoán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ên quan đến tập N trường hợp. Tập E không thuộc về các lớp đa số. Thay vì E/N, giải thuật C4.5 xác định một giới hạn trên của một phân phối nhị thức khi sự kiện E được quan sát trong N mẫu thử, một tham số riêng được sử dụng thường có giá trị là 0.25. • Cắt nhánh được lan truyền từ lá đến gốc của cây. Lỗi ước lượng tại nút lá với N 25 trường hợp và E lỗi là N lần tỉ lệ lỗi thiêu số như nêu trên. Cho mỗi cây con, C4.5 thêm các lỗi được ước lượng của các nhánh và so sánh nó với cây con được thay thế bới một lá; nếu kết quả sau cùng không cao hơn kết quả trước đó, cây con bị cắt. Tương tự, C4.5 kiểm tra các lỗi ước lượng nếu cây con được thay bằng một nhánh của nó và khi điều này tồn tại và có ích, cây được sửa đổi lại. Quá trình cắt nhánh được hoàn tất xuyên qua cây. Tổng kết Như vậy, ta đã biết một cây quyết định gồm những thành phần nào, các độ đo, các thuật toán dùng trong quyết định. Tóm lại, để xây dựng được một cây quyết định, chúng ta cần nắm vững những khái niệm sau: • Cấu trúc của một cây quyết định: nút lá, nhánh • Độ đo sử dụng để xác định điểm chia để xây dựng được một cây tối ưu So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương pháp có một số ưu điểm sau: • Cây quyết định dễ hiểu. Người ta có thể hiểu mô hình cây quyết định sau khi được giải thích ngắn • Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần thiết. Các kỹ thuật khác thường đòi hỏi chuấn hóa dữ liệu, cần tạo các biến phụ và loại bỏ các giá trị rỗng • Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị là tên thể loại. Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉ gồm một loại biến. Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên, trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng số • Cây quyết định là một mô hình hộp trắng. Nếu có thể quan sát một tình huống cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đó bằng logic Boolean. Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích cho kết quả quá phức tạp để có thể hiểu được • Có thể thẩm định một mô hình bằng các kiểm tra thống kê. Điều này làm cho ta có thể tin tưởng vào mô hình 26 • Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn. Có thể dung máy tính cá nhân để phân tích các lượng dữ liệu lớn trong thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của cây quyết định 27 Chương 3. Mô hình cây quyết định trong dự báo xu thế của thị trường chứng khoán 3.1. Giới thiệu chung về dữ liệu thời gian thực Định nghĩa: Dữ liệu thời gian thực hay chuỗi tuần tự theo thời gian (time series) là một chuỗi các giá trị của một đại lượng nào đó được ghi nhận là tuần tự theo thời gian [6, 15]. Những tập dữ liệu chuỗi thời gian rất lớn, xuất hiện trong nhiều lĩnh vực khác nhau như y khoa, kỹ thuật, kinh tế, tài chính.... Ví dụ: Số lượng hàng hóa được bán ra trong 12 tháng năm 2008 của một công ty. Các giá trị của chuỗi tuần tự theo thời gian của đại lượng X được kí hiệu là X1, X2, ….Xt,….Xn. với Xt là giá trị của X tại thời điểm t 3.1.1. Các thành phần của dữ liệu thời gian thực Các nhà thống kê thương chia chuỗi tuần tự theo thời gian thành 4 thành phần: • Thành phần xu hướng dài hạn (long-term trend componet) • Thành phần mùa (seasional componet) • Thành phần chu kỳ (cyclical componet) • Thành phần bất thường (irregular componet) Thành phần xu hướng dài hạn Thành phần này dùng để chỉ xu hướng tăng hay giảm của đại lượng X trong thời gian dài. Về mặt đồ thị thành phần này có thể biểu diễn bởi một đường thẳng thay một đường cong tròn (Smooth curve) 28 Hình 3-0: Thành phần xu hướng dài hạn Thành phần mùa Thành phần này dùng để chỉ xu hướng tăng hay giảm của đại lượng X tính theo mùa trong năm (có thể tính theo tháng trong năm) Ví dụ: Lượng tiêu thụ chất đốt sẽ tăng vào mùa đông và giảm vào mùa hè, ngược lại, lượng tiêu thụ xăng sẽ tăng vào mùa hè và giảm vào mùa đông Lượng tiêu thụ đồ dùng học tập sẽ tăng vào mùa khai trường Đồ thị: Hình 3-1: Thành phần mùa Thành phần chu kỳ Thành phần này chỉ sự thay đổi của đại lượng X theo chu kỳ. Thành phần này khác thành phần chu kỳ ở chỗ chu kỳ của đại lượng X kéo dài hơn 1 năm. Để đánh giá thành phần này các giá trị của chuỗi tuần tự theo thời gian được quan sát hàng năm 29 Ví dụ: Lượng dòng chảy đến hồ Trị An từ năm 1959 – 1985 Hình 3-2: Thành phần chu kỳ Thành phần bất thường Thành phần này dùng để chỉ sự thay đổi bất thường của các giá trị trong chuỗi tuần tự theo thời gian. Sự thay đổi này không thể dự đoán bằng các số liệu kinh nghiệm trong quá khứ, về mặt bản chất thành phần này không có tính chu kỳ. 3.1.2. Các phương pháp làm trơn Trong nhiều chuỗi tuần tự theo thời gian, thành phần mùa và thành phần bất thường thay đổi quá lớn dẫn tới việc xác định giá trị của thành phần xu hướng và thành phần chu kỳ gặp nhiều khó khăn. Để giải quyết vấn đề này, người ta có thể giảm nhỏ các giá trị thay đổi quá lớn của thành phần mùa và bất thường bằng các phương pháp làm trơn. Tôi xin giới thiệu hai phương pháp làm trơn đơn giản gồm: phương pháp trung bình dịch chuyển (moving average) và phương pháp làm trơn bằng hàm số mũ (exponential smoothing methods) Phương pháp trung bình dịch chuyển Nội dung của phương pháp này là thay thế giá trị quan sát Xt bằng giá trị Xt* là giá trị trung bình của chính nó với m giá trị trước nó và m giá trị sau nó: * 1 2 1 m t t j j m X X m +=− = + ∑ (3.0) 30 * 1 1... ... 2 1 t m t m t t m t m t X X X X XX m − − + + − ++ + + + + += + (3.1) Xt*: là giá trị dịch chuyển của 2m + 1 điểm Ví dụ: nếu m = 2, giá trị trượt trung bình của 5 điểm là * 2 1 1 2 5 t t t t t t X X X X XX − − + ++ + + += (3.2) Nếu t = 3 thì: * 1 2 4 53 5t X X X X XX + + + += (3.3) Phương pháp làm trơn bằng hàm số mũ đơn giản Phương pháp làm trơn bằng hàm số mũ đơn giản được tiến hành dựa trên sự xem xét liên tục của các giá trị trong quá khứ, dựa trên trung bình có trọng số của chuỗi dữ liệu. Trọng số có giá trị càng nhỏ khi nó càng cách xa điểm dự báo.Với ý nghĩa như vậy ta có: Vậy ta có: (1 )t t tX X Xα α= + − với 0 1,α α≤ ≤ là hệ số làm trơn (3.4) 3.2. Dữ liệu chứng khoán Dữ liệu chúng ta sử dụng là dữ liệu thời gian thực (time series). Đặc điểm chính để phân biệt dữ liệu có phải là thời gian thực hay không đó chính là sự tồn tại của cột thời gian được đính kèm trong đối tượng quan sát [12, 17]. Nói cách khác, dữ liệu thời gian thực là một chuỗi các giá trị quan sát của biến Y: 31 Mục đích chính của việc phân tích chuỗi thời gian thực là thu được một mô hình dựa trên các giá trị trong quá khứ của biến quan sát y1, y2, y3, …, yt-1, yt cho phép ta có thể dự đoán được giá trị của biến Y trong tương lai, tức là có thể dự đoán được các giá trị yt+1, …., yn. Trong bài toán của chúng ta, dữ liệu chứng khoán được biết tới như một chuỗi thời gian đa dạng bởi có nhiều thuộc tính cùng được ghi tại một thời điểm nào đó. Với dữ liệu đang xết, các thuộc tính là: Open, High, Low, Close, Volume Open: Giá cổ phiếu tại thời điểm mở cửa trong ngày High: Giá cổ phiếu cao nhất trong ngày Low: Giá cổ phiếu thấp nhất trong ngày Close: Giá cố phiểu được niêm yết tại thời điểm đóng cửa sàn giao dịch Volume: Khối lượng giao dịch cổ phiếu (bán, mua) trong ngày 32 3.3. Mô hình dự báo tài chính Hình 3-3: Mô hình cây quyết định dự báo chứng khoán M: Số phần tử nhỏ nhất mà một nút lá có C: Ngưỡng dùng cho việc cắt tỉa Mô hình gồm hai quá trình sau: Tập huấn luyện Xây dựng mô hình â Cây quyết định Mô hình Cây quyết định Tập kiểm chứng M, C Đánh giá Mô hình tốt nhất Dữ liệu kiểm tra Dự đoán 33 Huấn luyện mạng (training): Đầu vào của cây quyết định là các thiết lập của các tham số ban đầu như số nhánh mà các nút lá có thể có, một ngưỡng nào đó để cắt tỉa cây, tập huấn luyện (training set),….Khi có được mô hình cây quyết định đã được huấn luyện, chúng ta đưa tập dữ liệu kiểm chứng vào để đánh giá mô hình vừa xây dựng được, đồng thời điều chỉnh các tham số của mô hình để thu được một mô hình cây quyết định tốt nhất phục vụ dự báo. Cắt nhánh nằm nâng cao khả năng dự đoán và phân lớp của cây quyết định Dự đoán (forecasting): Sau khi kết thúc quá trình 1, ta sẽ thu được một mô hình cây quyết định với các tham số tốt nhất. Khi đó, ta dùng bộ dữ liệu kiểm tra (testing set) để đưa ra giá trị dự báo cho thị trường chứng khoán 3.4. Thiết kế cây quyết định cho dữ liệu thời gian thực Không có một phương pháp chung nào để xác định cấu trúc phù hợp của cây quyết định cho từng bài toán. Việc thiết kế cây quyết định có thành hay không phụ thuộc vào sự hiểu biết rõ ràng về vấn đề, có thể dựa vào thực nghiệm hoặc kinh nghiệm trong lĩnh vực đó Tương tự như quá trình khai phá dữ liệu cơ bản, để đạt được kết quả trong khai phá và thành công trong việc phân tích dữ liệu thì khi thiết kế cây dữ liệu cũng thực hiện theo sáu bước sau 1. Tập hợp dữ liệu 2. Xử lý dữ liệu 3. Thiết lập tập huấn luyện, tập kiểm thử, tập kiểm tra 4. Mô hình hóa cây quyết định 5. Tiêu chuẩn đánh giá 6. Triển khai 3.4.1. Tập hợp dữ liệu Các dữ liệu về chứng khoán của các công ty có thể thu thập được khá nhiều nguồn như: trung tâm giao dịch chứng khoán Hà Nội (www.hastc.org.vn), Sở giao dịch chứng khoán HCM (www.hsx.com), và một số trang khác như : www.vietstock.com, www.finalcial.yahoo.com, www.cafef.vn. 34 3.4.2. Tiền xử lý dữ liệu Dữ liệu được xử lý trước khi đưa vào sử dụng trong mô hình. Như đã giới thiệu trong chương 2, ngoài số nút, số nhánh của cây, ta cần xác định đầu vào và đầu ra của cây. Với bài toán dự báo dữ liệu thời gian thực, đầu ra là giá trị dự đoán cho thời điểm t+1, đầu vào là giá trị k ngày trước đó (với k cho trước và tùy thuộc vào từng bài toán) t(n) t(-1) t(n-2) …. t(n-k) Với bài toán này, ta tổ chức dữ liệu thời gian lùi với các cột đầu là giá trị lần lượt của k ngày trước đó được sắp xếp lùi dần theo thời gian t và cột cuối cùng là dự đoán T1 T2 Tk Tk+1 Class t(1) t(2) … t(k) t(k+1) Tang/Giam t(2) t(3) … t(k+1) t(k+2) Tang/Giam t(3) t(4) … T(k+2) t(k+3) Tang/Giam … … … … … … t(n) t(n+1) … t(n +k) t(n+k + 1) Tang/Giam Hình 3-4: Tổ chức dữ liệu của mô hình Khi xử lý dữ liệu, chúng ta nên xây dựng một vài bộ dữ liệu để xây dựng mô hình và thay đổi các tham số khai phá để cố gắng xây dựng các mô hình tốt nhất hay hiệu quả nhất 3.4.3. Phân hoạch dữ liệu Sau khi chuẩn hóa dữ liệu, chúng ta chia dữ liệu thành hai tập: tập huấn luyện (training set), tập kiểm chứng (validation test). Hai tập dữ liệu này được để trên hai bảng khác nhau. Tập huấn luyện thường là tập lớn nhất chiếm khoảng 70% tập dữ liệu ban đầu sử dụng để huấn luyện mô hình. Tập kiểm chứng chiếm khoảng 30% tập dữ liệu ban đầu 35 dùng để đánh giá mô hình được chọn có thật sự tốt hay không và để tìm ra được tham số tốt nhất cho mô hình Hiện tượng overfiting xảy ra khi cây được tạo ra có thể quá khít với dữ liệu huấn luyện. Việc quá khít có thể xảy ra trong những trường hợp quá nhiều nhánh, một số có thể phản ánh sự dị thường vì những phần tử hỗn loạn (noise) hoặc những phần tử nằm ngoài phân lớp (outlier). Kết quả nhận được thiếu chính xác đối với những mẫu chưa thấy. Với cây quyết định, số nhánh và kích thước tập huấn luyện có ảnh hưởng quyết định đến nguy cơ overfiting [21]. Để ngăn chặn nguy cơ overfitting (hiện tượng khả năng học của mạng là rất tốt nhưng khả năng tổng quát hóa của mạng là kém, tức là mạng dự đoán tốt với những dữ liệu đã được huấn luyện nhưng lại tỏ ra kém hiệu quả khi dữ liệu mới vào mô hình) thì người ta phân chia tập huấn luyện thành tập dữ liệu huấn luyện (2/3) và dữ liệu thử nghiệm (1/3), sử dụng sự đánh giá chéo. Cũng có một cách khác là sử dụng tất cả dữ liệu để huấn luyện nhưng áp dụng kiểm tra thống kê để định lượng khi nào mở rộng hoặc tỉa bớt một nút để có thể cải thiện toàn bộ sự phân phối Dữ liệu kiểm chứng Dữ liệu huấn luyện Hình 3-5: Tỷ lệ kích thước của tập huấn luyện và tập kiểm chứng 36 3.4.4. Mô hình hóa cây quyết định Lựa chọn độ đo để tìm thuộc tính chia cắt tốt nhất Chỉ rõ độ đo dùng để đo sự không thuần nhất cho cây quyết định: entropy, gain hay gini. Thông thường các thuật toán trong cây quyết định đã trình bày trong mục 2.7 đều lựa chọn một độ đo nào đó để tìm một giá trị chia cắt tốt nhất. Ví dụ như ID3 chọn độ đo là entropy, C4.5 chọn độ đo Gain Ratio, CART chọn độ đo là gini…. Hầu như tất cả các thuật toán đều tính độ chia cắt trên tất cả các thuộc tính đầu vào, sau đó tùy từng độ đo để tìm một thuộc tính có giá trị thích hợp: gain lấy thuộc tính có giá trị lớn nhất, gini lấy thuộc tính có giá trị nhỏ nhất. .…. Số nhánh trên một nút lá Nếu số nhánh này càng lớn thì cây sinh ra sẽ rộng, chiều cao của cây sẽ giảm xuống và ngược lại. Thông thường, mọi người đặt giá trị này là 2 để đỡ phải tìm số nhánh phù hợp cho cây. Nhưng như thế, nó có thể làm cho sự tương tác trong dữ liệu kém đi, đối với những dữ liệu lớn có thể sẽ tạo ra một cây với kích thước lớn, làm giảm khả năng học của cây. Bohanec và Bratko (1994) [12] xây dựng một cây quyết định để quyết định xem vị trí nào của con cờ trắng trên bàn cờ là hợp pháp. Họ đã chứng minh được rằng, khi xây dựng cây quyết định với 4 nhánh thì độ chính xác là 98.45%, với 5 nhánh là 99.57%, với 11 nhánh thì độ chính xác là lớn nhất 100%. Như vậy, lớn gấp đôi về số nhánh nhưng độ chính xác chỉ nhỏ hơn dưới 0.5%. Ngưỡng sử dụng cho việc cắt tỉa Nếu giá trị này càng nhỏ thì cây sinh ra sẽ được cắt càng nhiều và sẽ không tiếp tục phân chia nếu số lượng bản ghi nhỏ hơn giá trị này. Mặc định giá trị này là 0.25 Cắt nhánh Tránh overfitting và làm giảm những nhánh thừa không ảnh hưởng đến kết quả phân lớp trên dữ liệu huấn luyện, chúng ta sử dụng cắt nhánh trong quá trình lớn lên của cây. Có hai giá trị để chọn là “true” hoặc “false”. Mặc định là cây được cắt nhánh 37 3.4.5. Tiêu chuẩn đánh giá Do sự phụ thuộc thời gian giữa các mẫu, các thủ tục đánh giá mô hình dự đoán thời gian thực sẽ khác nhau xuất phát từ mô hình chuẩn. Các mô hình gần đây thường được xây dựng dựa trên chiến lược tái lấy mẫu. Ví dụ như chiến lược kiểm chứng chéo (Cross- Validation) – là việc phân nhóm một mẫu dữ liệu thành các mẫu con để cho việc phân tích ban đầu chỉ dựa trên tập mẫu con đơn, còn các mẫu còn lại được giữ kín để dùng cho việc xác nhận và kiểm chứng lại lần phân tích đầu tiên đó, hoặc hoạt động bằng cách lấy mẫu ngẫu nhiên từ dữ liệu gốc chưa được sắp xếp. Mục đích của phương pháp luận này cho dữ liệu thời gian thực có thể dẫn tới những tình huống không mong muốn như sử dụng các 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 với dữ liệu trong quá khứ. Để tránh những vấn đề này, tôi chia dữ liệu 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ự đoá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 hoàn toàn có thể tin tưởng rằng giá trị dự đoá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 kiểm chứng. Dữ liệu với thời gian trước t dùng để huấn luyện mô hình dự đoán, còn dữ liệu có được sau thời điểm t sẽ được sử dụng để kiểm chứng hiệu quả của mô hình đó Đầu tiên 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. Chúng ta có thể sử dụng chiến lược cửa sổ, đầu tiên là Growing window [10]. 38 Hoặc có thể sử dụng Sliding window [10] Những hướng tiếp cận cửa sổ trên rất phù hợp khi chúng ta sử dụng dữ liệu mới vào để kiểm tra mô hình, thời gian khi đó là liên tục. Tuy nhiên chúng yêu cầu một lượng lớn mô hình. Mặc dù còn tồn tại những thay đổi trung gian, trong nghiên cứu này ta sẽ áp dụng chiến lược mô hình đơn để đơn giản quá trình kiểm tra mô hình. Tuy nhiên, chiến 1. Cho chuỗi Rh(1),Rh(2), . . . ,Rh(n) và thời gian t (t < n) 2. Xây dựng mô hình dự đoán với tập dữ liệu huấn luyện Rh(1),Rh(2), . . . ,Rh(t−1) 3. LẶP a. Dự đoán giá trị của Rh(t) b. Ghi lại tỉ lệ lỗi dự đoán c. Thêm Rh(t) vào tập huấn luyện d. Xây dựng mô hình mới với tập huấn luyện mới e. Đặt t = t + 1 4. ĐẾN KHI t = n 1. Cho chuỗi Rh(1),Rh(2), . . . ,Rh(n), thời gian t và kích thước cửa sổ w 2. Xây dựng mô hình với tập dữ liệu huấn luyện Rh(t−w−1), . . . ,Rh(t−1) 3. LẶP a. Dự đoán giá trị cho Rh(t) b. Ghi lại tỉ lệ lỗi dự đoán c. Thêm Rh(t) vào tập huấn luyện và xóa Rh(t−w−1) ra khỏi tập huấn luyện d. Xây dựng mô hình mới với tập huấn luyện mới e. Đặt t = t + 1 4. ĐẾN KHI t = n 39 lược cửa sổ có thể giúp ta đạt được những kết quả tốt hơn về sau, vì vậy với những ứng dụng thực tế, những điều này không nên bỏ qua. Khi có quyết định thiết lập thử nghiệm, ta vẫn phải chọn công thức tỉ lệ lỗi sẽ sử dụng để đánh giá mô hình. Đồng thời, chúng ta cũng phải đề cập đến những giới hạn lỗi tương quan như chuẩn trung bình bình phương sai số (root mean squared error – RMSE) [19], cung cấp chỉ số lỗi tương quan của mô hình được tính như trong công thức (3.5) Đặt At = Giá trị thực ở thời điểm t (quan sát t) Ft = Giá trị dự báo ở thời điểm t n = số lượng quan sát sử dụng trong dự báo 2( )t tA FRMSE n −= ∑ (3.5) Trong kỹ thuật phân tích dữ liệu thời gian thực (time series) sử dụng cây quyết định, có một phương pháp điển hình là sử dụng một ma trận nhầm lẫn (confusion matrix) [11] . Confusion matrix bao gồm số trường hợp phân lớp đúng, số trường hợp phân lớp sai trong mỗi lớp. Những trường hợp phân lớp đúng của mỗi lớp nằm trên đường chéo chính của ma trận còn những trường hợp khác sẽ là phân lớp sai trong mỗi lớp. Trong trường hợp chúng ta có 2 lớp thì kích cỡ của ma trân là 2 x 2 như hình vẽ dưới đây Giá trị thực sự Giá trị dự đoán Tăng Giảm Tăng Giảm m11 m12 m21 m22 m10 m20 m01 m02 m Hinh 3-6: Bảng ma trận 2 x 2 Trong đó: m là tổng số trường hợp dự đoán có trong tập dữ liệu m11 là số dự đoán lớp“Tăng” và m22 là số dự đoán lớp “Giảm” là đúng m12 là số dự đoán lớp “Tăng” và m21 là số dự đoán “Giảm” là sai 40 Dựa trên ma trân này, chúng ta có thể tính được các độ đo dùng để đánh giá mô hình như độ chính xác của mô hình cũng như tỷ lệ các nhãn đã dự đoán sai Độ chính xác (Accuracy): phần trăm số trường hợp dự đoán đúng Accuracy = 11 22 11 12 21 22 m m m m m m + + + + (3.6) Misclassification rate là tỷ lệ giữa các lớp dự đoán sai so với tổng số các trường hợp phân lớp Misclassification rate = 12 21 11 12 21 22 m m m m m m + + + + (3.7) 3.4.6. Triển khai Triển khai được coi như là bước cuối cùng của việc thiết kế mô hình cây quyết định, nhưng thực tế yêu cầu việc triển khai phải được chú ý trước khi tập hợp dữ liệu. Dữ liệu, tiêu chuẩn đánh giá, thời gian huấn luyện đều phải được định hướng trong mô trường mà cây quyết định sẽ triển khai. Hầu hết các nhà cung cấp phần mềm cây quyết định đều cung cấp một mô hình đã được huấn luyện trong chương trình hoặc trong file cấu hình. Nếu không có sẵn phần mềm, cây quyết định cũng có thể được tạo ra dễ dàng khi hiểu kiến trúc của nó, số nhánh tối thiểu trên một nút lá, một ngưỡng dùng để cắt tỉa cây… Một ưu điểm của mô hình cây quyết định là khả năng thích ứng với sự thay đổi của môi trường qua sự huấn luyện tuần hoàn. Khi mô hình được triển khai, hiệu năng của mô hình sẽ giảm dần nếu không được huấn luyện lại nhưng không có nghĩa hiệu năng sẽ được duy trì như các biến độc lập. Do đó phải thường xuyên huấn luyện lại mô hình trong suốt quá trình thử nghiệm trên mô hình cuối cùng 3.5. Tổng kết Mục đích của chương này là giới thiệu cách thiết kế một mô hình dự báo chứng khoán. Thiết kế gồm 6 bước: (1) Tập hợp dữ liệu, (2) xử lý dữ liệu, (3) phân hoạch dữ liệu, (4) mô hình hóa cây quyết định, (5) tiêu chuẩn đánh giá, (6) triển khai. Với cách thiết 41 kế chi tiết cho từng bước đã chỉ ra ở trên, bạn đọc có thể tự xây dựng mô hình cây quyết định cho ứng dụng của mình. Chương 4. Thực nghiệm 4.1. Môi trường thực nghiệm Mô hình được cài đặt bằng phần mềm weka.3.6.1 chạy trên nền hệ điều hành window 7, máy tính tốc độ corei3 2.13 GHz, bộ nhớ 2GB RAM Nói một cách ngắn gọn, weka là môi trường thử nghiệm khai phá dữ liệu do các nhà khoa học thuộc trường đại học waitako, là từ viết tắt của Waitako Environment for Knowledge Analysis, khởi xướng và được sự đóng góp của rất nhiều nhà nghiên cứu trên thế giới. Weka là một gói phần mềm mã nguồn mở được viết bằng ngôn ngữ java, cung cấp công cụ trực quan và sinh động cho sinh viên và người ngoài ngành công nghệ thông tin tìm hiểu về khai phá dữ liệu. Nó bao gồm một tập lớn các công cụ và thuật toán học máy dùng để phân tích và xây dựng mô hình dự đoán. Giao diện chính của weka có cho phép người dùng có thể chọn lựa 4 kiểu giao diện khác nhau để thao tác [1, 14] o Explorer : giao diện đồ họa, cho phép truy xuất vào tất cả tiện ích của nó bằng cách sử dụng trình lựa chọn và thay đổi các tham số o Knowledge Flow: cho phép thiết kế, cấu hình cho xử lý dòng dữ liệu. o Experimenter: cho phép tự động xử lý dễ dàng phân loại, lọc với các tham số khác nhau o Simlpe CLI: cho phép truy xuất thông qua các câu lệnh 42 Hình 4-0: Giao diện chính của weka Có thể tải phần mềm và tài liệu hướng dẫn tại trang web Trong khóa luận này này, tôi sử dụng giao diện CLI để thực nghiệm trên tập dữ liệu fpt_stock bởi các tính năng ưu việt mà weka cung cấp cũng như hỗ trợ giải thuật cây quyết định C4.5 4.2. Xây dựng cơ sở dữ liệu 4.2.1. Dữ liệu chứng khoán Dữ liệu tài chính của các công ty được niêm yết giá công khai trên các sàn giao dịch chứng khoán và trên internet. Có thể thu thập được dữ liệu tài chính của các công ty niêm yết giá trên sàn giao dịch ở khá nhiều trang như: trung tâm giao dịch chứng khoán Hà Nội (www.hastc.org.vn), Sở giao dịch chứng khoán HCM (www.hsx.com), và một số trang khác như: www.viestock.com, www.finalcial.yahoo.com, www.cafef.vn, Khóa luận đã thu thập được dữ liệu chứng khoán của sàn giao dịch chứng khoán HCM, dữ liệu giao dịch của công ty fpt từ năm 2008 đến 31/3/2010. Ta sẽ sử dụng chỉ số vnindex thu thập được từ năm 2008 đến năm 2010 của công ty fpt để tiến hành thực nghiệm mô hình Sau khi xử lý dữ liệu, loại bỏ các thông tin nhiễu, thiếu thông tin và không cần thiết. Dữ liệu có thể được lưu trong một file txt hoặc csv. 4.2.2. Xây dựng dữ liệu cho mô hình Dữ liệu thu được từ các sàn giao dịch chứng khoán bao gồm rất nhiều thông tin như giá mở cửa (open), giá đóng cửa (close), giá cao nhất trong ngày (high), giá thấp nhất (low), khối lượng giao dịch (volume)…Tất cả các thông tin đều trợ giúp một phần khi xây 43 dựng mô hình dự báo nhưng để đơn giản trong khóa luận tôi chỉ sử dụng giá đóng cửa trong các phiên giao dịch. Hình 4-1: Dữ liệu chứng khoán thu được từ sàn chứng khoán Để đảm bảo tính ngẫu nhiên của dữ liệu và tránh tình trạng sử dụng dữ liệu của tương lai để huấn luyện hoặc dữ liệu của quá khứ để kiểm chứng mô hình. Tôi chia bộ dữ liệu của năm 2008-2010 thành 10 bộ dữ liệu, mỗi bộ dữ liệu gồm 12 tháng khác nhau lấy một cách ngẫu nhiên tuần tự dùng để huấn luyện mô hình và lấy dữ liệu của 3 tháng kế tiếp để làm tập dữ liệu kiểm chứng. Tôi đã viết một chương trình bằng C/C++ để lấy giá đóng cửa của các phiên giao dịch trong các bộ dữ liệu và chuyển về dữ liệu dưới dạng ma trận như đã trình bày ở mục 3.4.2 44 Đầu vào của chương trình là các file dữ liệu sau khi đã tách ra từng bộ dữ liệu có dạng như sau: (a) 45 (b) Hình 4-2: (a) Một trong số những dữ liệu huấn luyện từ 1/2008-12/2008 (b) Một trong số những bộ kiểm chứng từ 1/2009-3/2009 Chương trình sẽ lấy giá đóng cửa của các phiên giao dịch sau đó chuyển về dữ liệu dưới dạng bảng với các T1, T2, …., T20 là giá cổ phiếu của 20 ngày giao dịch trong quá khứ, T1 là ngày gần với ngày cần dự đoán nhất, rồi tính toán xem với các giá cổ phiếu trong giai đoạn được đưa ra ấy tăng hay giảm và đưa ra kết luận ở trường Class ở file đầu ra. File đầu ra được lưu dưới định dạng .csv có dạng Hình 4-3: Một trong những file dữ liệu đầu ra của chương trình Sau khi xử lý xong dữ liệu, ta đưa dữ liệu vào trong weka. Weka CLI cung cấp một số lệnh để đọc hoặc chuyển sang định dạng chuẩn mà gói weka thường xử lý (.arff), các lệnh đó là: Weka.core.converters.CSVLoader: đọc dữ liệu có định dạng CSV Weka.core.converters.C45Loader: đọc dữ liệu có định dạng C4.5 46 Hình 4-4: Lệnh đọc file CSV và chuyển thành file ARFF Sau khi thực hiện những câu lệnh này, dữ liệu trong file csv được đưa vào trong weka và chuyển sang định sạng .arff để sử dụng cho việc huấn luyện mô hình. Hình sau mô tả dữ liệu sau khi đã đưa vào trong weka - java weka.core.converters.CSVLoader F:\fpt_train_1.csv > F:\fpt_train_1.arff - java weka.core.converters.CSVLoader F:\fpt_validation_1 > F:fpt_validation_1.arff - …… 47 Hình 4-5: Dữ liệu dưới định dạng arff trong weka Dữ liệu này khi đưa vào mô hình cây quyết định sẽ dự báo giá đóng cửa của ngày hôm sau phụ thuộc vào 20 ngày trước đó. 4.3. Thực nghiệm mô hình cây quyết định cho dữ liệu thời gian thực Với bài toán dự báo thị trường chứng khoán, có hai cách xây dựng mô hình cây quyết định như sau: Một là, ta xây dựng mô hình với mục đích dự đoán giá cổ phiếu của ngày thứ t+1 tăng hay giảm khi biết giá cố phiếu của n ngày trước đó: t, t-1, t-2, …., t-n+1. Sau đó dựa 48 vào kết quả dự báo này như một gợi ý để nhà đầu tư đưa ra các quyết định giao dịch của riêng mình Hai là, ta xây dựng hệ thống đoán nhận giúp người dùng đưa ra quyết định trực tiếp. Theo hướng tiếp cận này, ta sẽ có tập mẫu các giá trị đầu ra: “mua”, “bán”, “giữ lại”. Hệ thống sẽ đoán nhận ngày thứ t+1 sẽ thuộc giao dịch nào, nó giống như bài toán phân loại mẫu vậy. Thị trường chứng khoán là thị trường rất nhạy cảm và bị tác động bởi nhiều yếu tố, với dữ liệu thu thập được và thời gian hạn hẹp, khóa luận chọn hướng tiếp cận đầu tiên cho nghiên cứu của mình 4.3.1. Mô hình dự báo tài chính thời gian thực Sử dụng dữ liệu đã được xây dựng sẵn ở trên, dùng các tập huấn luyện fpt_train_1.arff, fpt_train_2.arff, …., fpt_train_10.arff để huấn luyện mô hình và các tập kiểm tra tương ứng fpt_validatoion_1.arff, ……,fpt_validation_10.arff để kiểm thử mô hình. Ta sử dụng lệnh phân lớp dùng cây quyết định với 10 bộ dữ liệu đã xử lý để thu được mô hình dự báo giá chứng khoán như sau: - Bộ dữ liệu thứ 1 java weka.classifiers.trees.J48 –C 0.25 –M 2 –t F:\fpt_train_1.arff -d F:\fpt_1.model - Bộ dữ liệu thứ 2 java weka.classifiers.trees.J48 –C 0.25 –M 2 –t F:\fpt_train_2.arff -d F:\fpt_2.model - …. - Bộ dữ liệu thứ 10 java weka.classifiers.trees.J48 –C 0.25 –M 2 –t F:\fpt_train_10.arff -d F:\fpt_10.model 49 Hình 4-6: Lệnh huấn luyện dữ liệu Trong các lệnh huấn luyện trên, tôi cung cấp tập dữ liệu đầu vào là các tập huấn luyện đã xử lý fpt_train_1.arff, fpt_train_2.arff, ….fpt_train_10.arff và các tập kiểm chứng fpt_validatoion_1.arff, ……, fpt_validation_10.arff với các tham số mặc định của phân lớp bằng cây quyết định trong weka. Số phần tử nhỏ nhất trên một nút lá (-M) là 2 và ngưỡng sử dụng cho việc cắt tỉa (-C) là 0.25. Kết quả của quá trình phân lớp được lưu ra các file như fpt_1.model, fpt_2.model, …., fpt_10.model. Tập hợp kết quả của các lần huấn luyện, ta có bảng sau Tập dữ liệu Thời gian xây dựng mô hình (s) Accuracy (%) Missclassification (%) fpt_train_1 0.03 98.2063 1.7937 fpt_train_2 0.02 98.6175 1.3825 fpt_train_3 0.03 97.7578 2.2422 fpt_train_4 0.03 98.2063 1.7937 fpt_train_5 0.02 99.1071 0.8929 fpt_train_6 0.02 99.1189 0.8811 fpt_train_7 0.02 99.1228 0.8772 fpt_train_8 0.02 99.1228 0.8772 fpt_train_9 0.02 97.807 2.193 fpt_train_10 0.02 97.8261 2.1739 Kết quả trung bình 0.023 98.4893 1.5107 Hình 4-7: Kết quả qua các lần huấn luyện Kết quả này cho chúng ta biết, độ chính xác của các trường hợp phân lớp trên tập dữ liệu huấn luyện trung bình là 98.4893% và có 1.5107% các trường hợp phân lớp sai. Thời gian trung bình để huấn luyện các mô hình là 0.023s 50 4.3.2. Đánh giá mô hình Chúng ta thường quan tâm xem xét độ chính xác trong dự đoán xu hướng của thị trường chứng khoán. Ví dụ như giá trị dự đoán của một ngày sau tăng hay giảm. Như đã giới thiệu trong mục 3.4.5, chúng ta sử dụng ma trận nhầm lẫn (confusion matrix) để tính cách độ đo như độ chính xác (accuracy), misclassification. Ta sử dụng Accuracy để ước lượng độ chính xác của mô hình trong việc dự đoán thị trường chứng khoán là tăng hay giảm. Misclassfication sử dụng cho những dự đoán sai so với dữ liệu thực tế Trong weka CLI, sau khi huấn luyện mô hình thông qua tập training, chúng ta cung cấp các tập kiểm chứng vào mô hình huấn luyện để xác định Accuracy và misclassification Hình 4-8: Lệnh đánh giá dựa trên tập kiểm chứng Kiểm thử mô hình với 10 bộ dữ liệu kiểm chứng và 10 mô hình đã xây dựng được chúng ta có kết quả đánh giá trên tập kiểm chứng như sau: - Bộ dữ liệu thứ 1 java weka.classifiers.trees.J48 -l F:\fpt_1.model –T F:\fpt_validation_1.arff - Bộ dữ liệu thứ 2 java weka.classifiers.trees.J48 –l F:\fpt_2.model –T F:\fpt_validation_2.arff - …. - Bộ dữ liệu thứ 10 java weka.classifiers.trees.J48 –l F:\fpt_10.model–T F:\fpt_validation_10.arff 51 Tập kiểm chứng Accuracay (%) Misclassification (%) fpt_validation_1 48.6486 51.3514 fpt_validation _2 85.3659 14.6341 fpt_validation _3 90.2439 9.7561 fpt_validation _4 100 0 fpt_validation _5 93.3333 6.6667 fpt_validation _6 93.4783 6.5217 fpt_validation _7 100 0 fpt_validation _8 100 0 fpt_validation _9 79.5455 20.4545 fpt_validation _10 58.6957 41.3043 Kết quả trung bình 84.9311 15.0689 Hình 4-9: Kết quả đánh giá trên tập kiểm chứng Từ kết quả trên ta thấy rằng, hiệu năng của mô hình cây quyết định không phải là hằng số, nó thay đổi với các bộ dữ liệu khác nhau hay nói cách khác nó thay đổi theo các tháng khác nhau 4.3.3. Lựa chọn mô hình tốt nhất Trong các phần trước, khóa luận đã xây dựng một một vài mô hình hồi quy có thể được sử dụng để dự đoán giá đóng cửa của chỉ số vnindex một ngày sau thời điểm t nào đó. Đồng thời, khóa luận cũng đã đưa ra một vài đại lượng nhằm đánh giá mô hình. Khi có được đánh giá cho các mô hình, bài toán sử dụng mô hình tốt nhất để dự báo Chúng ta không cần thiết phải sử dụng các loại mô hình khác nhau. Đó có thể là các mô hình với cùng kỹ thuật khai phá dữ liệu nhưng các tham số khi sử dụng lại khác nhau. Ví dụ như mô hình cây quyết định được giới thiệu ở trên, có ít nhất hai tham số tham có thể tác động: số nút nhỏ nhất trên một nút lá, nhân tố dùng để chia cắt . Những thiết lập tham số khác nhau dẫn đến các mô hình cây quyết định khác nhau. Câu hỏi đặt ra là làm thế nào có được bộ tham số tốt nhất là một vấn đề lựa chọn mô hình. 52 Chúng ta đã mô tả một vài hệ số thống kê có thể đánh giá mô hình dự đoán chứng khoán. Tuy nhiên, các thiết lập thử nghiệm để đánh giá mô hình lại có vai trò quyết định. Việc thiết lập này bao gồm việc chia dữ liệu thành hai phần: huấn luyện và thử nghiệm. Để lựa chọn mô hình, ta sẽ phân chia tập huấn luyện thành hai phần: một phần để lấy được các tập tham số của mô hình (tập train) và một phần khác để chọn ra tập tham số tốt nhất (tập kiểm chứng –validation set). Sau khi có được bộ tham số tốt nhất này, chúng ta sẽ xây dựng được mô hình tốt nhất. Sử dụng mô hình này cho toàn bộ tập huấn luyện (training set), kể cả phần dữ liệu kiểm chứng (validation set) Đầu tiên ta minh họa chiến lược lựa chọn mô hình bằng cách sử dụng nó để tìm ra những thiết lập ban đầu tốt nhất cho từng kỹ thuật khai phá dữ liệu riêng biệt. Tất cả các kỹ thuật khai phá dữ liệu đều có một vài biến bạn có thể thay đổi để có được kết quả tốt nhất. Thậm chí có một vài công cụ còn tự động thay đổi các biến này để có kết quả tốt nhất Trong bài toán này, ta sẽ thiết lập một số thay đổi cho hai biến minNumObj (-M) và confidenceFactor (-C) của cây quyết định. • minNumObj (-M) là nhánh tối thiểu trên một nút lá, nếu giá trị này càng lớn thì cây bị cắt thành nhiều nhánh. Mặc định trong weka CLI là 2 • confidenceFactor (-C) là một ngưỡng sử dụng cho việc cắt tỉa, nếu giá trị này nhỏ thì cây sinh ra sẽ được cắt càng nhiều. Mặc định trong weka CLI là 0.25 Trong luận văn này, tôi tiến hành thay đổi các tham số -M và -C với 10 bộ dữ liệu huấn luyện kết hợp với tập kiểm chứng để tìm ra các độ chính xác (Accuracy) và chuẩn trung bình bình phương sai số (root mean squared error) để đánh giá mô hình thu được. Mô hình cho kết quả tốt nhất là mô hình có độ chính xác là lớn nhất và hệ số RMSE là nhỏ nhất Bộ tham số (C, M) Accuracy (%) RMSE (0.01, 1) 89.12427 0.25059 (0.01, 2) 89.12427 0.25964 53 (0.01, 3) 79.12427 0.34199 (0.01, 4) 78.03731 0.35424 (0.01,5) 77.81004 0.35634 (0.01, 7) 72.25953 0.41067 (0.01, 10) 66.57771 0.44587 (0.05, 1) 89.12427 0.25053 (0.05, 2) 89.12427 0.25958 (0.05, 3) 89.12427 0.28272 (0.05, 4) 89.12427 0.28272 (0.05, 5) 88.897 0.28488 (0.05, 7) 83.34649 0.34549 (0.05, 10) 66.57771 0.44592 (0.1, 1) 89.12427 0.25072 (0.1, 2) 89.12427 0.25977 (0.1, 3) 89.12427 0.28272 (0.1, 4) 89.12427 0.28272 (0.1, 5) 88.897 0.28482 (0.1, 7) 83.34649 0.34549 (0.1, 10) 66.57771 0.44592 (0.25, 1) 88.07164 0.271 (0.25, 2) 88.0716 0.28005 (0.25,3) 90.0334 0.25026 (0.25,4) 89.8061 0.2782 (0.25,5) 89.5788 0.2803 (0.25,7) 83.3465 0.34612 54 (0.25,10) 66.5777 0.44592 (0.4,1) 88.0716 0.271 (0.4,2) 88.0716 0.2827 (0.4,3) 89.8061 0.2557 (0.4,4) 89.8061 0.27823 (0.4,5) 89.5788 0.28033 (0.4,7) 83.3465 0.3461 (0.4,10) 66.0857 0.4524 (0.5,1) 88.0716 0.271 (0.5,2) 88.0716 0.28271 (0.5,3) 89.8061 0.25572 (0.5,4) 89.1539 0.281 (0.5,5) 88.9266 0.2831 (0.5,7) 83.3465 0.3461 (0.5,10) 66.0857 0.45237 Hình 4-10: Kết quả khi thay đổi các tham số -C, -M Thiết lập tham số -C với các giá trị 0.01, 0.05, 0.1, 0.25, 0.4, 0.5, tham số -M với các giá tri 1, 2, 3, 4, 5, 7, 10 kết quả thu được trên hình 4-10, các kết quả không khác xa nhau là mấy chỉ trừ các bộ tham số có số nhánh là 7 và 10 thì kết quả bị lệch nhiều. Kết quả có accuracy lớn nhất là 90.0334 và RMSE nhỏ nhất là 0.25026 ứng với C = 0.25 và M = 3 Như vậy ta đã tìm ra bộ tham số tốt nhất với C=0.25, M=3, xây dựng lại mô hình cây quyết định với bộ tham số ở trên ta thu được kết quả như sau 55 Tập dữ liệu Thời gian huấn luyện (s) Accuracy trên tập huấn luyện (%) Accuracy trên tập kiểm chứng(%) RMSE fpt_train_1 0.03 97.8571 100 0 fpt_train _2 0.05 98.9209 93.3333 0.2582 fpt_train _3 0.03 98.5915 93.4783 0.2597 fpt_train _4 0.04 99.2982 100 0.1267 fpt_train _5 0.03 97.9239 100 0 fpt_train _6 0.03 97.9522 81.8182 0.3859 fpt_train _7 0.04 96.587 63.0435 0.5853 fpt_train _8 0.03 96.2329 81.8182 0.4134 fpt_train _9 0.04 97.2603 89.4737 0.3135 fpt_train _10 0.04 96.6216 97.3684 0.1599 Trung bình 0.029 97.7246 90.0334 0.25026 Hình 4-11: Kết quả khi huấn luyện lại mô hình với tham số tốt nhất Khi xây dựng mô hình với bộ tham số tốt nhất thì độ chính xác trên tập kiểm chứng tăng 5.1023% so với độ chính xác của tập kiểm chứng khi huấn luyện mô hình với tham số mặc định 4.4. Một số mô hình khác Trong khai phá dữ liệu có nhiều kỹ thuật để xây dựng mô hình dự đoán khác nhau, mỗi kỹ thuật đều có những thiết lập, hỗ trợ và điểm mạnh riêng. Mục đích chính của tất cả các phương pháp là dự đoán giá trị của tương lai sử dụng dữ liệu của quá khứ. Vậy sử dụng phương pháp nào sẽ cho mô hình dự đoán tốt nhất ?. Trong khóa luận này tôi xin giới hiệu hai mô hình của hai kỹ thuật khác cho bài toán của mình, và lấy kết quả để đánh giá với mô hình cây quyết định mà tôi đã xây dựng 56 trong những phần trước để thấy được kỹ thuật nào là tốt cho dự đoán. Ta sử dụng dữ liệu vnindex đã qua xử lý ở phần trước, kết quả của hai mô hình này tương ứng với kết quả trung bình trên 10 bộ dữ liệu kiểm chứng (validation set) như trong mô hình cây quyết định ở trên để thuật lợi cho việc đánh giá. Đồng thời sử dụng độ chính xác (Accuracy), RMSE và thời gian huấn luyện để đánh giá kết quả giữa các mô hình 4.4.1. Mô hình mạng nơ ron Mạng nơ ron là một trong những phương pháp mô hình hóa tập trung vào các bài toán phi tuyến, do đó được lựa chọn nhiều trong bài toán dự báo tài chính. Mạng nơ ron là mạng các phần tử (gọi là nơ ron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) để thực hiện một công việc cụ thể nào đó [7] Mạng nơ ron có thể được xem như là một mô hình toán học: Y = F(X) với X là vector số liệu vào và Y là vector số liệu ra. Chỉ cần đưa vào mạng một tập hợp mẫu dữ liệu, trong quá trình học thì mạng có khả năng phát hiện những đặc trưng, rằng buộc này trong quá trình sử dụng mạng Mạng nơ ron thực hiện nhiệm vụ của mình thông qua các thao tác: nhận đầu vào từ các nơ ron trước nó, xử lý đầu vào bằng cách nhân mỗi đầu vào này với trọng số liên kết tương ứng và tính tổng các tích thu được rồi đưa qua một hàm truyền, sau đó gửi kết quả cuối cùng cho các nơ ron tiếp theo hoặc đưa ra output Khả năng học của mạng nơ ron chủ yếu dựa trên kỹ thuật lan truyền ngược sai số (backpropagation). Việc huấn luyện mạng với thuật toán lan truyền ngược sai số gồm hai pha ngược chiều nhau: quá trình truyền thẳng (lan truyền xuôi) và quá trình lan truyền ngược 57 (a) (b) Hình 4-12: (a) Cấu trúc một nơ ron (b) Cấu trúc mạng nơ ron Khi huấn luyện mạng trong weka, có ba tham số chính làm thay đổi độ chính xác của mô hình huấn luyện là Số vòng lặp (training time): tỷ lệ thuận với hiệu suất của mạng nhưng đến một mức nào đó nó sẽ gây ra hiện tượng học vẹt (over learning) sẽ bỏ qua trạng thái tối ưu. Giá trị mặc định trong weka là 500. Số lớp ẩn (hiddenLayers):được tính theo công thức a = (số trường hợp + số lớp) / 2 Tốc độ học (learningRate): cũng ảnh hưởng đến hiệu suất của mạng đối với số vòng lặp xác định. Giá trị tham số này càng nhỏ thì mạng hiệu chỉnh trọng số càng chậm. Nhưng muốn đạt đến trạng thái tối ưu thì ta phải tăng số vòng lặp nhiều hơn. Giá trị mặc định trong weka là 0.3 Như vậy, ta sẽ xây dựng mô hình mạng với các giá trị của các tham số: tốc độ học = 0.7, số vòng lặp 600, số tầng ẩn a 58 Tập dữ liệu Thời gian huấn luyện (s) Accuracy trên tập huấn luyện (%) Accuracy trên tập kiểm chứng (%) RMSE NR DS NR DS NR DS NR DS fpt_train_1 4.69 0.03 96.0714 97.857 1 100 100 0.0256 0 fpt_train_2 4.07 0.05 97.1223 98.920 9 93.3333 93.333 3 0.2398 0.2582 fpt_train_3 4.18 0.03 96.831 98.591 5 93.4783 93.478 3 0.2517 0.2597 fpt_train_4 4.51 0.04 97.193 99.298 2 100 100 0.0072 0.1267 fpt_train_5 4.4 0.03 95.1557 97.923 9 100 100 0 0 fpt_train_6 4.6 0.03 96.9283 97.952 2 84.0909 81.818 2 0.3857 0.3859 fpt_train_7 4.48 0.04 96.587 96.587 73.913 63.043 5 0.4832 0.5853 fpt_train_8 4.29 0.03 97.2603 96.232 9 77.2727 81.818 2 0.4746 0.4134 fpt_train_9 4.39 0.04 96.5753 97.260 3 89.4737 89.473 7 0.3242 0.3135 fpt_train_1 0 4.37 0.04 97.973 96.621 6 97.3684 97.368 4 0.1621 0.1599 trung bình 4.398 0.029 96.7697 97.724 6 90.8930 3 90.033 4 0.23541 0.2502 6 59 Hình 4-13: So sánh kết quả giữa Mạng nơ ron và cây quyết định Từ công thức ( 3-5), ta thấy rõ: mẫu số của biểu thức là không đổi. Độ lệch chuẩn bình phương (RMSE) nhỏ hơn tức là giá trị dự đoán gần với giá trị thực sự của dữ liệu hơn. Với cùng các bộ dữ liệu, nếu dựa vào kết quả trung bình thì ta sẽ thấy rằng mô hình mạng nơ ron có hệ số RMSE nhỏ hơn mô hình cây quyết định một lượng là 0.01519 nhưng nhìn trên từng bộ dữ liệu thì có tới 5 bộ dữ liệu khi huấn luyện bằng cây quyết định có hệ số RMSE cao hơn khi huấn luyện bằng mạng nơ ron và 1 bộ dự liệu có RMSE ở cả hai mô hình bằng nhau. Xét về thời gian xây dựng mô hình thì cây quyết định đưa ra mô hình nhanh gấp 151 lần so với mạng nơ ron, độ chính xác khi phân lớp trên tập huấn luyện sử dụng cây quyết định cũng cao hơn so với mạng nơ ron. 4.4.2. Mô hình SVM (support vector machine) SVM là một phương pháp máy học tương đối mới nhiều ứng dụng thành công trong lĩnh vực khai phá dữ liệu đặc biệt là trong bài toán dự báo thời gian thực. SVM được nhận định là phương pháp phân lớp nhanh, giải quyết vấn đề overfiting rất tốt và có thể xử lý hiệu quả với bài toán dữ liệu có số chiều lớn Tư tưởng chính của SVM là chuyển tập mẫu từ không gian biểu diễn Rn của chúng sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd, tìm một số siêu phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, cũng có nghĩa là tìm ra miền phân bố của từng lớp trong không gian Rn để từ đó xác định được phân lớp của một mẫu cần dự đoán Khi xây dựng mô hình với SVM, chúng ta cần phải chọn các tham số tốt nhất cho thuật toán. SMO (Sequential minimal optimization) - thuật toán tối ưu tuần tự là thuật toán tối ưu dành riêng cho phương pháp SVM do J.Platt đưa ra vào năm 1988. Thuật toán có 3 tham số làm thay đổi độ chính xác của mô hình [8] Hệ số phức tạp (Complexity factor): Quyết định sự cân bằng giữa lỗi tối thiểu của mô hình trên dữ liệu huấn luyện và trên mô hình phức tạp. Giá trị mặc định trong weka là C = 1.0. Để đẩm bảo tính ổn định của quá trình huấn luyện, giá tri của tham số C càng lớn càng tốt, ví dụ C = 100 [8]. 60 Epsilon: là một thiết lập SVM ứng dụng để xây dựng mô hình hồi quy. Giá trị của epsilon ảnh hưởng đến số lượng vector hỗ trợ vì vậy gián tiếp ảnh hưởng đến sự cân bằng giữa mô hình phức tạp và tổng quát. Dung sai: độ lệch lớn nhất của một tiêu chuẩn hội tụ. Nếu giá trị này lớn thì quá trình xây dựng mô hình sẽ nhanh hơn nhưng độ chính xác sẽ thấp hơn. Giá trị mặc định là 0.001 Ta sẽ xây dựng mô hình SVM với các thiết lập tham số C = 100, P (epsilon) = 1.0E- 12, L (dung sai) = 0.001 Tập dữ liệu Thời gian huấn luyện Accuracy trên tập huấn luyện(%) Accuracy trên tập kiểm chứng (%) RMSE SVM DS SVM DS SVM DS SVM DS fpt_train_1 0.35 0.03 89.6429 97.8571 100 100 0 0 fpt_train_2 0.21 0.05 91.3669 98.9209 93.3333 93.3333 0.2582 0.2582 fpt_train_3 0.14 0.03 91.9014 98.5915 93.4783 93.4783 0.2554 0.2597 fpt_train_4 0.05 0.04 97.193 99.2982 100 100 0 0.1267 fpt_train_5 0.15 0.03 95.8478 97.9239 100 100 0 0 fpt_train_6 0.11 0.03 95.9044 97.9522 75 81.8182 0.5 0.3859 fpt_train_7 0.06 0.04 95.9044 96.587 65.2174 63.0435 0.5898 0.5853 fpt_train_8 0.07 0.03 95.8904 96.2329 84.0909 81.8182 0.3989 0.4134 fpt_train_9 0.25 0.04 92.8082 97.2603 89.4737 89.4737 0.3244 0.3135 fpt_train_10 0.21 0.04 92.9054 96.6216 97.3684 97.3684 0.1622 0.1599 trung bình 0.16 0.029 93.9365 97.7246 89.796 90.0334 0.24889 0.25026 Hình 4-14: So sánh kết quả giữa mô hình SVM và cây quyết định Xét về thời gian xây dựng mô hình, độ chính xác (Accuracy) trên tập huấn luyện, và trên tập kiểm chứng thì mô hình cây quyết định đều cao hơn so với SVM. Riêng có hệ số 61 RMSE thì khi nhìn vào kết quả trung bình ta có thể thấy mô hình SVM có kết quả thấp hơn so với mô hình cây quyết định là 0.00137 nhưng xét trên từng tập dữ liệu thì có tới 5 bộ dữ liệu khi sử dụng mô hình cây quyết định thì kết quả RMSE cao hơn so với SVM và có tới 2 bộ dữ liệu có kết quả bằng nhau khi sử dụng mô hình cây quyết định và mô hình SVM Như vậy, về cơ bản thì mô hình cây quyết định là một mô hình tương đối tốt đối với dữ liệu thời gian thực. Độ chính xác khi xây dựng mô hình trên tập huấn luyện rất cao, cao hơn hẳn mô hình mạng nơ ron và SVM và thời gian xây dựng mô hình rất rất nhanh giúp nhà đầu tư có nhiều thời gian suy nghĩ trước khi quyết định hơn. Phần lớn các bộ dữ liệu có kết quả dự đoán gần với giá trị thực hơn so với mô hình mạng nơ ron và SVM 62 Kết luận Kết quả đạt được của luận văn Khai phá dữ liệu hiện nay là một hướng nghiên cứu còn khá mới mẻ, thu hút sự quan tâm không chỉ của giới CNTT mà còn của nhiều ngành khoa học khác. Ngày nay có nhiều phương pháp và các thuật toán kinh điển, tạo nên một bức tranh hết sức sôi động về lĩnh vực nghiên cứu còn khá mới mẻ này. Thông qua việc tìm hiểu, tiếp thu những kiến thức cơ bản và kết quả của một số công trình nghiên cứu mới được công bố gần đây, tôi đã trình bày một cách tương đối đầy đủ và có hệ thống về các vấn đề liên quan đến khai phá dữ liệu nói chung và khai phá dữ liệu bằng cây quyết định nói riêng. Áp dụng khai phá dữ liệu bằng cây quyết định vào bài toán dự báo xu thế thị trường chứng khoán, trong khóa luận tôi đã lấy giá đóng cửa qua các phiên giao dịch của công ty fpt để làm thực nghiệm. Đặc biệt đã đi sâu phân tích, đánh giá và so sánh với một số phương pháp khác Tuy nhiên do việc hạn chế về thời gian, kinh nghiệm nên kết quả thực nghiệm vẫn chưa thực sự thuyết phục, mặc dù phương pháp và kỹ thuật mà luận văn trình bày là hoàn toàn khả thi, đó chính là điểm hạn chế của luận văn này Hướng nghiên cứu tiếp theo Khai phá dữ liệu nói chung và khai phá dữ liệu bằng cây quyết định nói riêng hiện nay vẫn là vấn đề nghiên cứu và triển khai mang tính thời sự. Những vấn đề dưới đây sẽ là nội dung nghiên cứu tiếp theo của luận văn này • Sử dụng một số thuật toán tối ưu tổ hợp như thuật toán di truyền (General Algorithm –GA) hay thuật toán đàn kiến (Ant Colony Algorithm –ACO) để tối ưu hóa việc chọn các tham số như số số nhánh tối thiểu trên một nút lá, ngưỡng dùng để cắt tỉa • Đưa thêm các mối tương quan của một số thuộc tính như: khối lượng giao dịch trong ngày (Volume), giá dầu, giá vàng trên thị trường để mô hình gần với thực tế và kết quả của mô hình có sức thuyết phục hơn • Xây dựng mô hình hoàn chỉnh có giao diện tương tác với người sử dụng, triển khai ứng dụng vào thực tế 63 PHỤ LỤC-MỘT SỐ THUẬT NGỮ ANH –VIỆT Thuật ngữ Giải nghĩa Supervised learning Học có giám sát Root mean squared error Chuẩn trung bình bình phương sai số Overfiting Hiện tượng mô hình nhận dạng các mẫu đã học tốt nhưng khả năng tổng quát hóa để nhận dạng các mẫu chưa học lại kém Testing set Tập mẫu kiểm tra mô hình Time series Chuỗi tuần tự theo thời gian/Dữ liệu thời gian thực Training set Tập mẫu huấn luyện mô hình Unsupervised learning Học không có giám sát Validation set Tập mẫu kiểm chứng mô hình Confusion matrix Ma trận nhầm lẫn Accuracy Độ chính xác Missclassification Tỷ lệ các trường hợp phân lớp sai Time series Thời gian thực Informatin Gain Độ lợi thông tin Gain ratio Tỷ lệ độ lợi 64 TÀI LIỆU THAM KHẢO Tài liệu tham khảo tiếng việt [1] Nguyễn Đức Cường. Tổng quan về khai phá dữ liệu. Kỷ yếu hội nghị Khoa học và Công nghệ lần thứ 9, Đại học Bách khoa, Tp. Hồ Chí Minh [2] Bùi Quang Huy.Một số vấn đề liên quan đến khai phá dữ liệu bằng cây quyết định.Luận văn thạc sĩ, ngành Công nghệ thông tin - Đại học công nghệ - Đại học quốc gia Hà Nội 2006. [3] Lê Văn Tường Lân.Phụ thuộc dữ liệu và tác động của nó đối với bài toán phân lớp của khai phá dữ liệu. Tạp chí khoa học, Đại học Huế, Số 53, 2009 [4] Nguyễn Thái Nghe. Một phân tích giữa các kỹ thuật trong dự đoán kết quả học tập. Khoa công nghệ thông tin và truyền thông, Đại học Cần Thơ [5] Phạm Hữu Tài.Xây dựng Cơ sở dữ liệu các cấu hình An toàn thông tin trên Internet cho hệ thống Phòng chống dịch hại. Cần thơ, 10/2009 [6] Cao Hào Thi. Phân tích chuỗi tuần tự theo thời gian và dự báo. Đại học kỹ thuật TP. Hồ Chí Minh [7] Đặng Thị Ánh Tuyết. Tìm hiểu và ứng dụng một số thuật toán khai phá dữ liệu time series áp dụng trong bài toán dự báo tài chính. Khóa luận tốt nghiệp, Đại học Công nghệ - Đại học Quốc gia Hà Nội, 2008 Tài liệu tham khảo tiếng anh [8] Biljana Miveva-Boshkoska and Mile Stankovski. Prediction of Missing Data for Ozone Concentrations Using Support Vector Machines and Radial Basis Neural Networks. Department of Automatics, Faculty for Electrotechnics and Information Technologies [9] Lior Rokach and Oded Maimon. Data mining with decision trees, theory and applications. World Scientific Publishing Co.Pte Ltd, 2008 [10] Luis Torgo. Data mining with R: learning by case studies. LIACC-FEF, University of Porto, May 22, 2003 65 [11] Matthew N. Anyanwu and Sajjan G. Shiva. Comparative Analysis of Serial Decision Tree Classification Algorithms. International Journal of Computer Science and Security,2009 [12] Minos Garofalakis, Dongjoon Hyun, Rajeev Rastogi, Kyuseok Shim. Building Decision Tree With Constraints. Data Mining and Knowleadge Discovery, 2003 [13] Ramon Lawrence . Using Neural Networks to Forecast Stock Market Prices. Department of Computer Science University of Manitoba, 1997 [14] Remco R.Bouckaert, Eibe Frank, Mark Hall, Richard Kirkby, Peter Reutemann, Alex Seewald, David Scuse. Weka Manual for version 3-6-1, June 4, 2009 [15] Ruey S.Tsay. Analysis of Financial Time Series. University of Chicago,2005, tr.192-194 [16] Stefan Zemke. Data mining for Prediction Financial Series Case. Department of Computer and System Sciences, December 2003 [17] Thomas Hellstrom and Kenneth Holmstrom. Predicting the Stock Market. Department of Mathematics and Physics Malardalen University, August 12, 1998, [18] 12.pdf [19] [20] [21] [22] [23] ây_quyết_định

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN- ỨNG DỤNG MÔ HÌNH HỌC MÁY TIÊN TIẾN NHẰM TĂNG CƯỜNG KHẢ NĂNG DỰ BÁO XU THẾ CỦA THỊ TRƯỜNG CHỨNG KHOÁN.pdf