Khóa luận Nguyên cứu và xây dựng hệ thống quản lý và dự đoán xu thế giá chứng khoán dựa trên nền tảng mã nguồn mở

Trong những năm gần đây, người ta thường nhắc đến khai phá dữliệu (datamining) – khái niệm được dùng đểtham chiếu đến quá trình phát hiện tri thức và khai phá dữliệu (KDD – Knowledge Discovery and Data mining) –như là một phương pháp xác định ra tri thức từmột lượng dữliệu khổng lồ. Sựphát triển của công nghệthông tin và việc ứng dụng công nghệthông tin trong nhiều lĩnh vực của đời sống, kinh tếxã hội trong nhiều năm qua cũng đồng nghĩa với lượng dữliệu đã được các cơ quan thu thập và lưu trữngày một tích luỹnhiều lên. Hơn nữa thông tin thu thập được từnhiều chiều khác nhau và gây nhiễu cho nhau đã thực sựtrởthành một vấn đềnan giải cho con người đểxửlý lượng thông tin lớn đang tăng lên từng ngày một. Với những lý do như vậy, các phương pháp quản trị và khai thác cơ sởdữliệu truyền thống ngày càng không đáp ứng được thực tế đã làm phát triển một khuynh hướng kỹthuật mới đó là Kỹthuật phát hiện tri thức và khai phá dữliệu (KDD - Knowledge Discovery and Data Mining). Có nhiều kỹthuật đểkhai phá dữliệu trong đó kỹthuật dựa vào mạng Noron khá là phổbiến [2]. Một trong những ứng dụng kinh điển của mạng Noron là lớp các bài toán dự đoánvì mạng Noron ngoài khả năng dự đoán với độchính xác cao nó còn có ưu điểm là mềm dẻo và thích nghi cao với môi trường, rất thích hợp cho bài toán dự đoán với dữliệu thay đổi nhanh theo thời gian. Chính vì vậy, khóa luận sẽsửdụng mạng Noron đểdự đoán xu thếcủa giá chứng khoán. Các hệthống chứng khoánthường là những hệthống rất phức tạp vì vậy rất khó có thểdự đoán được dữliệu của nó. Nó phụthuộc vào rất nhiều yếu tố trong đó có những yếu tốkhông thể định lượng được như: tâm lý, sựmù quáng của nhà đầu tư . Mặc dù vậy thị trường chứng khoán không phải là một quá trình ngẫu nhiên và nó có quy luật của nó và có thểdự đoán được. Tìm ra được xu hướng của thị trường chứng khoán sẽlà chìa khóa giúp cho quá trình hỗtrợquyết định của nhà đầu tư.

pdf57 trang | Chia sẻ: lvbuiluyen | Ngày: 17/11/2013 | Lượt xem: 1177 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Khóa luận Nguyên cứu và xây dựng hệ thống quản lý và dự đoán xu thế giá chứng khoán dựa trên nền tảng mã nguồn mở, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Vũ Đức Việt NGUYÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ DỰ ĐOÁN XU THẾ GIÁ CHỨNG KHOÁN DỰA TRÊN NỀN TẢNG MÃ NGUỒN MỞ KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: TS. Nguyễn Hà Nam HÀ NỘI – 2010 2TÓM TẮT Bài toán dự báo tài chính ngày càng được nhiều người quan tâm trong bối cảnh phát triển kinh tế xã hội ở Việt Nam hiện nay. Đầu tư vào thị trường chứng khoán đòi hỏi nhiều kinh nghiệm và hiểu biết của các nhà đầu tư. Các kĩ thuật khai phá dữ liệu được áp dụng nhằm dự báo sự lên xuống của thị trường là một gợi ý giúp các nhà đầu tư có thể ra các quyết định giao dịch. Khóa luận này giới thiệu một kỹ thuật khai phá dữ liệu hiệu quả được sử dụng rộng rãi trong nhiều lĩnh vực đó là mô hình mạng nơ ron và cách áp dụng vào dữ liệu thời gian thực. Cấu trúc và hoạt động cũng như cách thiết kế mạng cho dữ liệu thời gian thực áp dụng trong bài toán dự báo tài chính được trình bày chi tiết nhằm làm rõ cách áp dụng mô hình vào bài toán thực tế. 3MỤC LỤC TÓM TẮT..................................................................................................................... MỤC LỤC .................................................................................................................... DANH MỤC HÌNH VẼ ............................................................................................... DANH MỤC BẢNG BIỂU .......................................................................................... Chương 1. GIỚI THIỆU............................................................................................. 1 Chương 2. GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU VÀ PHÁT HIỆN TRI THỨC. 2 2.1. Khai phá dữ liệu và phát hiện tri thức ..............................................................2 2.2 Tại sao phải tiến hành khai phá dữ liệu? ...........................................................4 2.3. Kiến trúc điển hình của một hệ khai phá dữ liệu..............................................5 2.4. Các bài toán khai phá dữ liệu điển hình ...........................................................6 2.5. Các ứng dụng điển hình của khai phá dữ liệu ..................................................8 2.6. Kết luận.............................................................................................................8 Chương 3. CƠ SỞ LÝ THUYẾT CỦA MẠNG NORON CHO VẤN ĐỀ DỰ BÁO9 3.1. Khái niệm về mạng noron.................................................................................9 3.2. Mô hình của một noron nhân tạo và hàm truyền..............................................9 3.2.1. Mô hình của một noron............................................................................. 9 3.2.2. Hàm truyền ............................................................................................. 12 3.3. Mô hình của mạng noron ................................................................................14 3.3.1. Mạng tiến ................................................................................................ 14 3.3.2. Mạng hồi quy.......................................................................................... 16 3.4. Phương pháp học và thuật toán lan truyền ngược cho mạng.........................17 3.4.1. Cơ sở lý thuyết học của mạng................................................................. 17 43.4.2. Thuật toán lan truyền ngược (back – propagation)................................. 18 Chương 4. MẠNG NORON CHO QUÁ TRÌNH DỰ ĐOÁN ................................. 23 4.1. Mô hình mạng noron cho việc dự báo ............................................................23 4.2. Các bước thiết kế mô hình ..............................................................................24 4.2.1. Chọn lựa các biến ................................................................................. 25 4.2.2. Thu thập dữ liệu ................................................................................... 25 4.2.3. Tiền xử lý dữ liệu ................................................................................. 25 4.2.4. Phân hoạch tập dữ liệu ......................................................................... 26 4.2.5. Xác định cấu trúc mạng........................................................................ 27 4.2.6. Xác định tiêu chuẩn đánh giá ............................................................... 30 4.2.7. Huấn luyện mạng nơ ron ...................................................................... 32 4.2.8. Triển khai ............................................................................................. 33 4.3 Tổng kết ...........................................................................................................34 Chương 5. XÂY DỰNG CHƯƠNG TRÌNH VÀ..................................................... 35 ĐÁNH GIÁ ............................................................................................................... 35 5.1. Vài nét về các phần mềm nguồn mở được sử dụng........................................35 5.1.1. Weka ....................................................................................................... 35 5.1.2. Jstock ...................................................................................................... 37 5.2. Mô hình kết hợp giữa hai gói phần mềm mã nguồn mở.................................38 5.2.1. Chuyển dữ liệu thời gian thực ................................................................ 39 5.2.2. Xác định mô hình phù hợp ..................................................................... 40 5.2.3. Chuyển kết quả cho stock hiển thị .......................................................... 43 5.3. Đánh giá với một số mô hình khác .................................................................43 5.3.1. Mô hình cây quyết định .......................................................................... 44 5.3.2. Mô hình phân lớp xác suất ngây thơ naïve bayes.................................. 46 5Chương 6. KẾT LUẬN............................................................................................. 49 TÀI LIỆU THAM KHẢO ........................................................................................ 50 6DANH MỤC HÌNH VẼ Hình 2.1 – Quá trình khai phá tri thức [1] ...................................................................3 Hình 2.2 – Kiến trúc điển hình của một hệ thống khai phá dữ liệu [2] .......................5 Hình 2.3 – Bảng thống kê xu thế phát triển khai phá dữ liệu [1] ................................8 Hình 3.1 - Mô hình của một noron[2]........................................................................10 Hình 3.2 – Mô hình của một noron được vẽ lại [2] ...................................................11 Hình 3.3 – Hàm ngưỡng ............................................................................................12 Hình 3.4 – Hàm vùng tuyến tính ...............................................................................13 Hình 3.5 – Hàm tuyến tính.........................................................................................13 Hình 3.6 – Hàm sigma với các độ dốc khác nhau .....................................................14 Hình 3.7 – Mô hình mạng tiến đơn mức....................................................................15 Hình 3.8 – Mô hình mạng tiến đa mức ......................................................................16 Hình 3.9 – Mô hình mạng tiến có sự phản hồi ..........................................................17 Hình 4.1 – Mô hình dự đoán sử dụng mạng noron....................................................23 Hình 4.2 – Tỷ lệ kích thước giữa các tập huấn luyện [9] ..........................................27 Hình 4.3 – Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 50 bước.................................................29 Hình 4.4 – Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 100 bước...............................................29 Hình 4.5 – Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 300 bước...............................................29 Hình 4.6 – Độ hội tụ: 3 tầng, 50 nơ ron ẩn, 5 bước...................................................30 Hình 4.7 – Độ hội tụ: 3 tầng, 50 nơ ron ẩn, 50 bước.................................................30 Hình 5.1 – Giao diện chính của weka........................................................................36 Hình 5.2 – Giao diện chính của Jstock ......................................................................37 Hình 5.3 – Mô hình hệ thống khóa luận xây dựng ....................................................38 Hình 5.4 – Kết quả huấn luyện mạng noron bằng dòng lệnh weka...........................42 Hình 5.5 – Mô hình cây quyết định ...........................................................................45 7DANH MỤC BẢNG BIỂU Bảng 4.1 – Tổ chức dữ liệu của mô hình...................................................................26 Bảng 5.1 – Huấn luyện mạng noron ..........................................................................44 Bảng 5.2 – Huấn luyện cây quyết định......................................................................46 Bảng 5.3 – Huấn luyện naïve bayes...........................................................................48 Bảng 5.4 – So sánh các mô hình................................................................................48 1Chương 1. GIỚI THIỆU Trong những năm gần đây, người ta thường nhắc đến khai phá dữ liệu (datamining) – khái niệm được dùng để tham chiếu đến quá trình phát hiện tri thức và khai phá dữ liệu (KDD – Knowledge Discovery and Data mining) – như là một phương pháp xác định ra tri thức từ một lượng dữ liệu khổng lồ. Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày một tích luỹ nhiều lên. Hơn nữa thông tin thu thập được từ nhiều chiều khác nhau và gây nhiễu cho nhau đã thực sự trở thành một vấn đề nan giải cho con người để xử lý lượng thông tin lớn đang tăng lên từng ngày một. Với những lý do như vậy, các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng được thực tế đã làm phát triển một khuynh hướng kỹ thuật mới đó là Kỹ thuật phát hiện tri thức và khai phá dữ liệu (KDD - Knowledge Discovery and Data Mining). Có nhiều kỹ thuật để khai phá dữ liệu trong đó kỹ thuật dựa vào mạng Noron khá là phổ biến [2]. Một trong những ứng dụng kinh điển của mạng Noron là lớp các bài toán dự đoán vì mạng Noron ngoài khả năng dự đoán với độ chính xác cao nó còn có ưu điểm là mềm dẻo và thích nghi cao với môi trường, rất thích hợp cho bài toán dự đoán với dữ liệu thay đổi nhanh theo thời gian. Chính vì vậy, khóa luận sẽ sử dụng mạng Noron để dự đoán xu thế của giá chứng khoán. Các hệ thống chứng khoán thường là những hệ thống rất phức tạp vì vậy rất khó có thể dự đoán được dữ liệu của nó. Nó phụ thuộc vào rất nhiều yếu tố trong đó có những yếu tố không thể định lượng được như: tâm lý, sự mù quáng của nhà đầu tư…. Mặc dù vậy thị trường chứng khoán không phải là một quá trình ngẫu nhiên và nó có quy luật của nó và có thể dự đoán được. Tìm ra được xu hướng của thị trường chứng khoán sẽ là chìa khóa giúp cho quá trình hỗ trợ quyết định của nhà đầu tư. Trước sự hấp dẫn của các ứng dụng của mạng noron, sự phát triển đi lên của thị trường chứng khoán, cùng sự động viên khuyến khích của thầy hướng dẫn, tôi đã quyết định thực hiện những nghiên cứu về mạng noron để dự báo xu thế thị trường chứng khoán nhằm đưa ra những gợi ý cho nhà đầu tư. Do thời gian làm khóa luận có hạn nên tôi mới chỉ xây dựng được các thành phần cơ bản nhất của phần mềm. Các tính năng nâng cao tôi sẽ cố hoàn thiện sau này. 2Chương 2. GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU VÀ PHÁT HIỆN TRI THỨC 2.1. Khai phá dữ liệu và phát hiện tri thức Phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases – KDD) (đôi khi còn được gọi là khai phá dữ liệu) là một quá trình không đơn giản nhằm nhận dạng ra những mẫu có giá trị, mới, hữu ích tiềm năng và hiểu được trong dữ liệu. Đây là lĩnh vực nghiên cứu và triển khai được phát triển rất nhanh chóng và có phạm vi rất rộng lớn, lại được rất nhiều nhóm nghiên cứu tại nhiều trường đại học, viện nghiên cứu, công ty ở nhiều quốc gia trên thế giới quan tâm, cho nên có rất nhiều cách tiếp cận khác nhau đối với lĩnh vực phát hiện tri thức trong CSDL. Chính vì lý do đó các nhà khoa học trên thế giới đã dùng nhiều thuật ngữ khác nhau, mà các thuật ngữ này được coi là mang cùng nghĩa với KDD như chiết lọc tri thức (knowledge extraction), phát hiện thông tin (information discovery), thu hoạch thông tin (information harvesting), khai quật dữ liệu (data archaeology), xử lý mẫu dữ liệu (data pattern processing)... Hơn nữa, trong nhiều trường hợp, hai khái niệm "Phát hiện tri thức trong cơ sở dữ liệu" và "khai phá dữ liệu" còn được dùng thay thế nhau. Hai khái niệm khai phá dữ liệu và phát hiện tri thức trong các CSDL thường cặp đôi với nhau [1]. Quá trình KDD thường bao gồm nhiều bước là: - Làm sạch dữ liệu (Data Cleaning): Khử nhiễu và các dữ liệu mâu thuẫn. - Tích hợp dữ liệu (Data Integration): Kết hợp nhiều nguồn dữ liệu khác nhau. - Lựa chọn dữ liệu (Data Selection): Chắt lọc lấy những dữ liệu liên quan đến nhiệm vụ phân tích sau này. - Biến đổi dữ liệu (Data Transformation): Biến đổi dữ liệu thu được về dạng thích hợp cho quá trình khai phá. - Khai phá dữ liệu (Data Mining): Sử dụng những phương pháp thông minh để khai thác dữ liệu nhằm thu được các mẫu mong muốn. - Đánh giá kết quả (Pattern Evaluation): Sử dụng các độ đo để đánh giá kết quả thu được. 3- Biểu diễn tri thức (Knowledge Presentation): Sử dụng các công cụ biểu diễn trực quan để biểu diễn những tri thức khai phá được cho người dùng. Hình 2.1 – Quá trình khai phá tri thức [1] Quá trình trên được thừa nhận là không tầm thường theo nghĩa là quá trình đó không chỉ nhiều bước mà còn được thực hiện lặp, và quan trọng hơn quá trình đó bao hàm một mức độ tìm kiếm tự động. Trong mô hình chúng ta đã coi KDD là một quá trình bao gồm nhiều bước thực hiện, trong đó, khai phá dữ liệu là một bước thực hiện chính yếu. Cách hiểu như vậy đã quy định có sự phân biệt giữa hai khái niệm khai phá dữ liệu và KDD. Từ đây có thể đi đến một khái niệm về khai phá dữ liệu: Khai phá dữ liệu là một bước trong quá trình phát hiện tri thức trong cơ sở dữ liệu, thi hành một thuật toán khai phá dữ liệu để tìm ra các mẫu từ dữ liệu theo khuôn dạng thích hợp. 4Có thể nhận xét rằng, khái niệm khai phá dữ liệu là khá rộng lớn, nhưng không phải tất cả mọi công việc liên quan đến dữ liệu đều được coi là khai phá dữ liệu, chẳng hạn như những việc xử lý truy vấn đơn giản như tra cứu một số điện thoại, hay thống kê ra những học sinh giỏi của một lớp, thì không thể coi đó là khai phá dữ liệu. Nhưng những công việc như gom nhóm các tài liệu trả về từ máy tìm kiếm theo từng ngữ cảnh thì lại được xem là khai phá dữ liệu [1] . Chính vì sự phong phú và đa dạng này mà dẫn đến thực trạng là tồn tại một số quan niệm khác nhau về chuyên ngành nghiên cứu gần gũi nhất với lĩnh vực khai phá dữ liệu. 2.2 Tại sao phải tiến hành khai phá dữ liệu? Trong những năm gần đây, khai phá dữ liệu trở thành một lĩnh vực nghiên cứu rộng rãi trong ngành công nghiệp thông tin, nguyên nhân chủ yếu là do khối lượng khổng lồ của dữ liệu mà con người tạo ra, đi kèm với nó là sự cần thiết của việc rút trích tri thức từ những dữ liệu đó. Thông tin và tri thức có thể được áp dụng vào nhiều lĩnh vực từ phân tích thị trường tài chính, phát hiện giả mạo, cho đến điều khiển sản xuất và nghiên cứu khoa học. Nhìn vào hai lĩnh vực sinh ra nhiều dữ liệu nhất đó là thương mại và khoa học. Trong lĩnh vực thương mại, hàng ngày hàng giờ con người đang tạo ra, thu thập và lưu trữ lại rất nhiều dữ liệu, như dữ liệu web, dữ liệu về thương mại điện tử, dữ liệu về việc thanh toán tại các cửa hàng và các dữ liệu thanh toán trong các tài khoản… Tính cạnh tranh trong kinh doanh là rất cao, cho nên việc phân tích dữ liệu để cung cấp dịch vụ tốt hơn, có nhiều tiện ích cho khách hàng, và đón bắt chính xác nhu cầu của khách hàng rất quan trọng. Trong lĩnh vực khoa học, dường như lượng dữ liệu sinh ra và thu thập lại còn lớn hơn nhiều, lên tới hàng GB/giờ, chẳng hạn như dữ liệu từ vệ tinh, từ các ảnh chụp vũ trụ và từ các mô phỏng thử nghiệm khoa học. Khai phá dữ liệu giúp các nhà khoa học trong việc phân lớp dữ liệu và hỗ trợ trong việc đưa ra các quyết định. Cùng với sự phát triển của khoa học, của ngành cơ sở dữ liệu không thể không kể đến là sự phát triển của ngành công nghiệp máy tính, người ta đã tạo ra những phương tiện lưu trữ lớn hơn, những máy tính rẻ hơn, tốc độ cao hơn, trợ giúp cho quá trình thu thập dữ liệu cũng như khai phá chúng. 5Trong quá trình tác nghiệp, người ta thường phải đưa ra các quyết định, tuy nhiên, với lượng dữ liệu khổng lồ như thế, người ta không thể sử dụng hết, hoặc nếu muốn sử dụng thì phải mất thời gian quá nhiều, như vậy có nguy cơ đánh mất cơ hội. Do đó, việc sử dụng máy tính để khai phá dữ liệu nhằm giúp đỡ con người trong công việc càng được thúc đẩy mạnh mẽ, làm sao với các dữ liệu đã thu thập được có thể đưa ra hành động mang lại lợi ích tối đa. 2.3. Kiến trúc điển hình của một hệ khai phá dữ liệu Dưới đây là kiến trúc của một hệ thống khai phá dữ liệu: Hình 2.2 – Kiến trúc điển hình của một hệ thống khai phá dữ liệu [2] Trong kiến trúc hệ thống này, các nguồn dữ liệu cho các hệ thống khai phá dữ liệu bao gồm hoặc Cơ sở dữ liệu, hoặc Kho dữ liệu, hoặc World Wide Web, hoặc kho chứa dữ liệu kiểu bất kỳ khác, hoặc tổ hợp các kiểu đã liệt kê nói trên. Cơ sở tri thức, bao chứa các 6tri thức miền ứng dụng hiện có, được sử dụng trong thành phần hệ thống khai phá dữ liệu để làm tăng tính hiệu quả của thành phần này. Một số tham số của thuật toán khai phá dữ liệu tương ứng sẽ được tinh chỉnh theo tri thức miền sẵn có từ cơ sở tri thức trong hệ thống. Cơ sở tri thức còn được sử dụng trong việc đánh giá các mẫu đã khai phá được xem chúng có thực sự hấp dẫn hay không, trong đó có việc đối chứng mẫu mới với các tri thức đã có trong cơ sở tri thức. Nếu mẫu khai phá được là thực sự hấp dẫn thì chúng được bổ sung vào cơ sở tri thức để phục vụ cho hoạt động tiếp theo của hệ thống. Như vậy, nguồn tri thức bổ sung vào cơ sở tri thức ở đây không chỉ từ lập luận lôgic theo các hệ toán lôgic để có tri thức mới, không chỉ do con người hiểu biết thêm về thế giới khách quan để bổ sung vào mà còn là tri thức được phát hiện một cách tự động từ nguồn dữ liệu [1]. 2.4. Các bài toán khai phá dữ liệu điển hình Mô tả khái niệm/lớp (concept/class description): Dữ liệu có thể được kết hợp với khái niệm hoặc lớp. Ví dụ ta có chia dữ liệu về sản phẩm điện tử thành các lớp sản phẩm như máy tính, máy in, máy chiếu… Mỗi lớp/khái niệm được miêu tả riêng một cách tổng quan và chính xác. Việc miêu tả này có được thông qua: sự mô tả tính chất của dữ liệu (data characterization) hoặc phân biệt dữ liệu (data discrimination) hoặc kết hợp cả hai. Mô tả tính chất dữ liệu (data characterization): là sự tổng hợp những đặc tính chung nhất của lớp dữ liệu. ví dụ: đối với những người khách hàng tiêu nhiều tiền ta có thể tổng hợp những đặc điểm của người đó như sau: tuổi đời trung niên, có việc làm ổn định, có khả năng thanh toán cao. Phân biệt dữ liệu (data discrimination): là sự so sánh những đặc tính chung một lớp đối tượng dữ liệu với những đặc tính chung của một lớp đối tượng dữ liệu khác từ một tập những lớp tương phản. ví dụ: so sánh hai đối tượng khách hàng, một đối tượng thường xuyên mua điện thoại còn một đối tượng ít khi mua điện thoại. điều này đem đên một sự so sánh giữa hai đố