a. Định nghĩa
Cây quyết định (decision tree) là một trong những hình thức mô tả dữ liệu trực quan nhất, dễ hiểu nhất đối với người dùng. Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo (prediction model), nghĩa là ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng.
b. Cấu trúc
Một cây quyết định là một sơ đồ có cấu trúc dạng cây bao gồm các nút và các nhánh.
Nút dưới cùng được gọi là nút lá, trong mô hình phân lớp dữ liệu chính là các giá trị của các nhãn lớp (gọi tắt là nhãn). Các nút khác nút lá được gọi là các nút con, đây còn là các thuộc tính của tập dữ liệu, hiển nhiên các thuộc tính này phải khác thuộc tính phân lớp.
Các lần huấn luyện Giá trị hàm đánh giá (RMSE)
Lần 1 0.5035 Lần 2 0.5008 Lần 3 0.4978 Lần 4 0.3694 Lần 5 0.3031 Lần 6
Mỗi một nhánh của cây xuất phát từ một nút p nào đó ứng với một phép so sánh dựa trên miền giá trị của nút đó. Nút đầu tiên được gọi là nút gốc của cây
Hình 5.5 – Mô hình cây quyết định
Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trước
Dữ liệu được cho dưới dạng các bản ghi có dạng: (x, y) = (x1, x2, x3….xk, y)
Biến phụ thuộc y là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hóa x1, x2, x3…. là các biến sẽ giúp ta thực hiện công việc đó
c. Thực nghiệm với mô hình cây quyết định
Trong weka mô hình cây quyết định được thực hiện bởi dòng lệnh: weka.classifiers.trees.J48
Dựa trên một vài thực nghiệm về cây quyết định trên các tập huấn luyện và kiểm chứng khác nhau rồi tổng hợp những kết quả thu được tôi nhận thấy rằng với tham số C = 0.25 và M = 3 thì sẽ thu được mô hình cây quyết định với độ chính xác khá tốt. Thực hiện tính toán với cây quyết trên mười bộ dữ liệu ta có bảng thống kê kết quả như sau:
Bảng 5.2 – Huấn luyện cây quyết định 5.3.2. Mô hình phân lớp xác suất ngây thơ naïve bayes
Bộ phân lớp bayes là bộ phân lớp đơn giản mà dựa trên lý thuyết bayes. a. Thuật toán naïve bayes và công thức phân lớp
Định lý bayes: P(A/B) =
Giả sử:
D là tập dữ liệu huấn luyện
C i,D là tập các mẫu thuộc D của lớp Ci
Ci là một lớp trong tập dữ liệu X = <x1, x2, …., xn> là điều kiện độc lập Ta có công thức: P(Ci/X) = Vì các x là độc lập nên ta có: Các lần huấn luyện Giá trị hàm đánh giá (RMSE)
Lần 1 0.4946 Lần 2 0.5107 Lần 3 0.4938 Lần 4 0.5016 Lần 5 0.3239 Lần 6 ( / ) ( )∗ ( ) ( | ) ( )∗ ( )
P(Ci) = , P(xk|Ci) =
Trong đó Ci,D{xk}: số mẫu Ci thỏa mãn điều kiện xk
| ) Trong trường hợp P(xk|Ci) = 0 ta có thể áp dụng công thức làm trơn laplace: P(Ci) = , P(xk|Ci) = M : là số mẫu (lớp), r là số giá trị rời rạc của thuộc tính Luật phân lớp: X sẽ được cho vào lớp mà có giá trị công thức sau là lớn nhất: ( ) ( | )∗ b. Thực nghiệm với mô hình naïve bayes Thực nghiệm với mô hình naïve bayes trong weka bằng dòng lệnh: weka.classifiers.b ayes.NaiveBayes với mười bộ dữ liệu nói ở trên ta thu được bảng kết quả sau:
47 P(X|Ci) = ∏ ( | )= ( | ). ( | ) … . . ( | | | , | | , | , { } { } | | , , ,
Bảng 5.3 – Huấn luyện naïve bayes
Căn cứ vào những kết quả thu được ở trên ta lập bảng sô sánh giữa các mô hình như sau:
Bảng 5.4 – So sánh các mô hình
Từ bảng so sánh trên cho thấy cả hai mô hình ở trên đều cho kết quả với độ chính xác không cao bằng mô hình mạng noron mà tôi đã xây dựng ở trên.
Các lần huấn luyện Giá trị hàm đánh giá (RMSE)
Lần 1 0.7467 Lần 2 0.6868 Lần 3 0.6633 Lần 4 0.744 Lần 5 0.3333 Lần 6 Đại lượng đánh giá Mô hình mạng nơ ron
Chương 6. KẾT LUẬN
Trong khóa luận này, bước đầu tôi đã tìm hiểu được lĩnh vực khai phá dữ liệu cùng các vấn đề liên quan đến khai phá dữ liệu nói chung, và cơ sở lý thuyết của mạng noron cũng như là thuật toán lan truyền ngược (back-propagation) thực hiện việc học cho mạng noron để áp dụng vào bài toán dự báo giá chứng khoán nói riêng. Từ những cơ sở lý thuyết đó tôi đã tiến hành:
-
-
-
-
Xây dựng cho mình một mô hình mạng noron dựa theo tám bước: chọn lựa các biến, thu thập dữ liệu, tiền xử lý dữ liệu, phân hoạch dữ liệu, xác định cấu trúc mạng, xác định tiêu chuẩn đánh giá, huấn luyện mạng, thực thi trong thực tế
Xây dựng thuật toán lựa chọn được bộ tham số tốt nhất cho mạng noron nhằm tạo ra một mô hình với độ chính xác cao.
Áp dụng mô hình thu được để xây dựng phần mềm dự báo giá chứng khoán dựa trên sự kết hợp từ hai phần mềm mã nguồn mở là Jstock và Weka. Cuối cùng tôi so sánh mô hình mạng noron mà tôi đã xây dựng với hai mô hình khác là mô hình cây quyết định và mô hình naïve bayes. Kết quả thu được từ sự so sánh này cho thấy mô hình mạng noron là tốt hơn, nên bước đầu phản ánh quá trình xây dựng mô hình của tôi là có hiệu quả.
Tuy nhiên do thời gian thực hiện khóa luận không đủ dài nên bên cạnh những điều đã làm được ở trên thì vẫn còn tồn tại một số điểm chưa đạt và cần bổ sung:
-
-
-
Thuật toán tối ưu tham số mà tôi sử dụng trong luận văn chưa thực sự tốt, mặc dù nó chạy khá chính xác nhưng lại chạy rất chậm nên chỉ áp dụng được trong không gian các tham số khá nhỏ. Để khắc phục điều này có thể sử dụng thuật toán sử dụng gradient (gradient descent), thuật toán di truyền (General Algorithm ) …
Việc thu thập dữ liệu từ Jstock là online nhưng việc xây dựng và tiến hành học mô hình là offline. Để làm tăng độ chính xác của việc dự đoán lên nữa có thể chuyển việc học sang học trực tuyến (online learning).
Giao diện xây dựng của mềm phần còn tương đối đơn giản, mới chỉ chọn một vài mẫu chứng khoán làm thử nghiệm. Sau này cần xây dựng giao diện có sự tương tác với người dùng.
TÀI LIỆU THAM KHẢO Tài liệu tham khảo tiếng việt
[1] [2] [3] [4] [5] [6] [7] [8] [9]
Hà Quang Thụy. Giáo trình khai phá dữ liệu web. Nhà xuất bản giáo dục, 2009, tr. 1 - 38
Ứng dụng mạng noron cho vấn đề nhận dạng tiếng nói. http://tailieuhay.com/chi- tiet-tai-lieu/ung-dung-mang-neuron-cho-van-de-nhan-dang-tieng-noi-149- trang/2227.html , tr. 1 - 49
Tài liệu tham khảo tiếng anh
Ben Krose, Patrick van der smagt. An introduction to neural networks. University of Amsterdam, 1996, tr 1 – 47.
Luis Torgo (2003). Data Mining with R: learning by case studies. LIACC-FES, University of Porto – Portugar.1 – 3, 79 – 110
Iebeling Kaastra, Milton Boyd (1995). Designing a neural network for forecasting
financial and economic time series. University of Manitoba – Canada.
Freeman J.A. and Skapura D.M. (1991). Neural Networks - Algorithms,
Applications and Programming Techniques. Addison Wesley, tr.89-124.
J.O. Katz. Developing neural network forecaster for trading. Technical Analysis of
Stocks and Commodities. April 1992. Tr 58-70
Ian H. Witten and Eibe Frank. Data mining – practical machine learning tools and techniques. Morgan Kaufmann, 2005
forecasting-financial-time-series/ [10] http://www.cs.waikato.ac.nz/ml/weka/ [11] http://jstock.sourceforge.net/ [12] http://www.java.com/en/download/ [13] http://netbeans.org/ 50