Khóa luậ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
ĐẠI HỌC QUỐC GIA HÀ NỘI  
					TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
					Đinh Thị Thùy Trang  
					Ứ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  
					KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
					Ngành: Công nghệ thông tin  
					HÀ NỘI - 2010  
					ĐẠI HỌC QUỐC GIA HÀ NỘI  
					TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
					Đinh Thị Thùy Trang  
					Ứ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  
					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  
					LỜI CẢM ƠN  
					“Để hoàn thành khóa luận này, tôi xin gửi lời cảm ơn tới các thầy, cô giáo trong  
					trường Đại học Công nghệ - Đại học Quốc gia Hà Nội. Các thầy cô đã dạy bảo, chỉ dẫn  
					và luôn tạo điều kiện tốt nhất cho tôi học tập trong suốt quá trình học đại học đặc biệt là  
					trong thời gian làm khóa luận tốt nghiệp  
					Tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS. Nguyễn Hà Nam, thầy đã tận  
					tình hướng dẫn tôi trong năm học vừa qua.  
					Tôi cũng thầm biết ơn những người bạn của mình, các bạn đã luôn ở bên tôi, giúp  
					đỡ và cho tôi những ý kiến đóng góp quý báu trong học tập cũng như trong cuộc sống.  
					Cuối cùng, tôi xin gửi tới bố mẹ và toàn thể gia đình lòng biết ơn và tình cảm yêu  
					thương nhất. Con xin dành tặng bố mẹ kết quả mà con đã đạt được trong suốt bốn năm  
					học đại học. Con cảm ơn bố mẹ nhiều và cả các em nữa.”  
					Hà nội, ngày 20/05/2010  
					i
				Tóm tắt khóa luận  
					Ngày nay, cách thức kiếm tiền và sử dụng đồng tiền của các nhà đầu tư cũng có  
					nhiều thay đổi. Hầu hết mọi người đều đầu tư vào chứng khoán, họ cho rằng đó là một  
					cách đầu tư thông minh và những đồng tiền ấy là đồng tiền thông minh. Nhưng thị trường  
					chứng khoán luôn có những yếu tố bất ngờ không theo ý muốn chủ quan của ai, có lúc  
					tăng nhanh sau đó giảm một cách đột ngột, có lúc thì liên tục tăng mà chưa có dấu hiệu  
					giảm xuống.…Do vậy dự đoán được xu thế của thị trường chứng khoán là một vấn đề  
					quan trọng đầu tư tài chính. Thị trường sẽ diễn biến ra sao, đầu tư vào chứng khoán ở thời  
					điểm này có được hay không, phụ thuộc rất nhiều vào kết quả dự đoán của chúng ta chính  
					xác ra sao  
					Trong khóa luận này, tôi xin giới thiệu một kỹ thuật được sử dụng nhiều trong khai  
					phá dữ liệu, có hiệu quả cao trong dự đoán, xây dựng mô hình dự báo đơn giản, nhanh  
					chóng và dễ hiểu. Đó là mô hình cây quyết định, khóa luận đã tìm hiểu cấu trúc, hoạt  
					động của cây quyết định, các độ đo dùng để chia cắt các thuộc tính và các thuật toán đặc  
					biệt là thuật toán C4.5 mà khóa luận sử dụng để xây dựng cây. Từ đó, thiết kế mô hình  
					cây quyết định cho dữ liệu thời gian thực (time series) áp dụng trong dự báo xu thế của thị  
					trường chứng khoán được trình bày chi tiết. Khóa luận đã thực nghiệm trên dữ liệu  
					VnIndex và đã thu được những kết quả bước đầu  
					Từ khóa: data mining, decision tree, time series, stock trend prediction, weka….  
					ii  
				MỤC LỤC  
					LỜI CẢM ƠN.................................................................................................................i  
					TÓM TẮT KHÓA LUẬN .............................................................................................ii  
					MỤC LỤC ................................................................................................................... iii  
					DANH MỤC HÌNH VẼ ...............................................................................................vi  
					DANH MỤC BẢNG BIỂU .........................................................................................vii  
					Chương 1. Giới thiệu các kiến thức cơ!Äở......................................................................1  
					1.1.  
					Khai phá dự liệu ...........................................................................................1  
					1.1.1. Khai phá dữ liệu là gì ..............................................................................1  
					1.1.2. Quá trình khai phá dữ liệu........................................................................1  
					1.1.3. Các phương pháp khai phá dữ liệu...........................................................2  
					1.1.4. Sự cần thiết phải có khai phá dữ liệu .......................................................2  
					1.1.5. Một số khó khăn gặp phải khi xây dựng quá trình khai phá dữ liệu........3  
					1.1.6. Các lĩnh vực ứng dụng .............................................................................4  
					1.2.  
					Phân lớp và dự báo .......................................................................................4  
					1.2.1. Định nghĩa ................................................................................................4  
					1.2.2. Các bước để phân lớp và dự báo ..............................................................5  
					1.2.3. Độ chính xác trong phân lớp và dự báo ...................................................8  
					1.2.4. Một số bài toán phân lớp và dự báo điển hình .........................................8  
					1.3.  
					1.4.  
					Bài toán dự báo xu thế thị trường chứng khoán...........................................9  
					Nội dung và cấu trúc của khóa luận ...........................................................10  
					Chương 2. Tổng quan về cây quyết định .....................................................................12  
					iii  
				2.1.  
					2.2.  
					2.3.  
					2.4.  
					Định nghĩa ..................................................................................................12  
					Cấu trúc ......................................................................................................12  
					Các kiểu cây quyết định .............................................................................13  
					Các độ đo sử dụng để xác định điểm chia tốt nhất.....................................13  
					2.4.1. Độ lợi thông tin (Information Gain).......................................................14  
					2.4.2. Độ đo tỷ lệ Gain (Gain ratio)..................................................................15  
					2.4.3. Chỉ số Gini (Gini index).........................................................................15  
					2.5.  
					Cắt tỉa cây (thu gọn cây).............................................................................17  
					Rút ra quy tắc phân lớp từ cây quyết định..................................................18  
					Các thuật toán trong cây quyết định...........................................................19  
					Quá trình tạo cây quyết định ......................................................................21  
					2.6.  
					2.7.  
					2.8.  
					2.8.1. Khả năng học và tổng quát hóa ..............................................................21  
					2.8.2. Các phương pháp huấn luyện cây ..........................................................21  
					2.9.  
					Giải thuật C4.5............................................................................................22  
					Tổng kết ...................................................................................................................25  
					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.27  
					3.1.  
					Giới thiệu chung về dữ liệu thời gian thực.................................................27  
					3.1.1. Các thành phần của dữ liệu thời gian thực.............................................27  
					3.1.2. Các phương pháp làm trơn .....................................................................29  
					3.2.  
					Dữ liệu chứng khoán ..................................................................................30  
					Mô hình dự báo tài chính............................................................................32  
					Thiết kế cây quyết định cho dữ liệu thời gian thực....................................33  
					3.3.  
					3.4.  
					3.4.1. Tập hợp dữ liệu.......................................................................................33  
					3.4.2. Tiền xử lý dữ liệu ...................................................................................34  
					3.4.3. Phân hoạch dữ liệu .................................................................................34  
					iv  
				3.4.4. Mô hình hóa cây quyết định...................................................................36  
					3.4.5. Tiêu chuẩn đánh giá................................................................................37  
					3.4.6. Triển khai................................................................................................40  
					Tổng kết ...................................................................................................................40  
					Chương 4. Thực nghiệm ..............................................................................................41  
					4.1.  
					4.2.  
					Môi trường thực nghiệm.............................................................................41  
					Xây dựng cơ sở dữ liệu...............................................................................42  
					4.2.1. Dữ liệu chứng khoán ..............................................................................42  
					4.2.2. Xây dựng dữ liệu cho mô hình...............................................................42  
					4.3.  
					Thực nghiệm mô hình cây quyết định cho dữ liệu thời gian thực .............47  
					4.3.2. Đánh giá mô hình ...................................................................................50  
					4.3.3. Lựa chọn mô hình tốt nhất......................................................................51  
					4.4.  
					Một số mô hình khác..................................................................................55  
					4.4.1. Mô hình mạng nơ ron.............................................................................56  
					4.4.2. Mô hình SVM (support vector machine) ...............................................59  
					Kết luận....................................................................................................................62  
					Kết quả đạt được của luận văn.............................................................................62  
					Hướng nghiên cứu tiếp theo.................................................................................62  
					PHỤ LỤC-MỘT SỐ THUẬT NGỮ ANH –VIỆT......................................................63  
					TÀI LIỆU THAM KHẢO ...........................................................................................64  
					v
				DANH MỤC HÌNH VẼ  
					Hình 1-0: Bước 1 Học để xây dựng mô hình phân lớp.................................................5  
					Hình 1-1: Bước 2 Kiểm tra và đánh giá.........................................................................6  
					Hình 1-2: Ví dụ về học mô hình ....................................................................................7  
					Hình 1-3 : Ví dụ về phân lớp dữ liệu.............................................................................7  
					Hình 2-0: Biểu diễn cấu trúc cây quyết định ...............................................................12  
					Hình 2-1: Một cây quyết định miêu tả khái niệm “mua máy tính” .............................18  
					Hình 3-0: Thành phần xu hướng dài hạn.....................................................................28  
					Hình 3-1: Thành phần mùa ..........................................................................................28  
					Hình 3-2: Thành phần chu kỳ ......................................................................................29  
					Hình 3-3: Mô hình cây quyết định dự báo chứng khoán............................................32  
					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.............................35  
					Hình 4-0: Giao diện chính của weka ...........................................................................42  
					Hình 4-1: Dữ liệu chứng khoán thu được từ sàn chứng khoán....................................43  
					Hình 4-2: (a) Một trong số những dữ liệu huấn luyện từ 1/2008-12/2008..................45  
					(b) Một trong số những bộ kiểm chứng từ 1/2009-3/2009..........................45  
					Hình 4-3: Một trong những file dữ liệu đầu ra của chương trình................................45  
					Hình 4-4: Lệnh đọc file CSV và chuyển thành file ARFF ..........................................46  
					Hình 4-5: Dữ liệu dưới định dạng arff trong weka......................................................47  
					Hình 4-6: Lệnh huấn luyện dữ liệu..............................................................................49  
					Hình 4-8: Lệnh đánh giá dựa trên tập kiểm chứng......................................................50  
					Hình 4-12: (a) Cấu trúc một nơ ron .............................................................................57  
					(b) Cấu trúc mạng nơ ron...........................................................................57  
					vi  
				DANH MỤC BẢNG BIỂU  
					Hình 2-2: Kết quả của cuộc khảo sát..................................................................................21  
					Hình 3-4: Tổ chức dữ liệu của mô hình..............................................................................34  
					Hinh 3-6: Bảng ma trận 2 x 2.............................................................................................39  
					Hình 4-7: Kết quả qua các lần huấn luyện .........................................................................49  
					Hình 4-9: Kết quả đánh giá trên tập kiểm chứng ...............................................................51  
					Hình 4-10: Kết quả khi thay đổi các tham số -C, -M.........................................................54  
					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................................55  
					Hình 4-13: So sánh kết quả giữa Mạng nơ ron và cây quyết định .....................................59  
					Hình 4-14: So sánh kết quả giữa mô hình Support vector machine và cây quyết định .....60  
					vii  
				Chương 1. Giới thiệu các kiến thức cơ sở  
					1.1. Khai phá dự liệu  
					1.1.1. Khai phá dữ liệu là gì  
					Khai phá dữ liệu là việc khám phá tri thức trong các cơ sở dữ liệu, là một quá trình  
					trích xuất những thông tin ẩn, trước đây chưa biết và có khả năng hữu ích, dưới dạng các  
					quy luật, ràng buộc, quy tắc trong cơ sở dữ liệu [1].  
					1.1.2. Quá trình khai phá dữ liệu  
					Một quá trình KPDL bao gồm năm giai đoạn chính  
					1) Tìm hiểu nghiệp vụ và dữ liệu : nghiên cứu kiến thức về lĩnh vực sẽ áp dụng, bao  
					gồm cả cấu trúc về hệ thống và tri thức, các nguồn tài liệu hiện hữu, ý nghĩa, vai trò  
					và tầm quan trọng của các thực thể dữ liệu  
					2) Chuẩn bị dữ liệu: sử dụng các kỹ thuật tiền xử lý để biến đổi và cải thiện chất lượng  
					dữ liệu để thích hợp với những yêu cầu của các giải thuật học. Bước này thường  
					chiếm phần lớn thời gian của toàn bộ quá trình khai phá dữ liệu  
					3) Mô hình hóa dữ liệu: lựa chọn kỹ thuật phù hợp để giải quyết các vấn đề đặt ra. Các  
					bài toán được phân loại vào một trong những nhóm bài toán chính trong khai phá dữ  
					liệu dựa trên đặc tả của chúng.  
					4) Hậu xử lý và đánh giá mô hình: các kết quả được biến đổi từ dạng học thuật sang  
					dạng phù hợp với nghiệp vụ và dễ hiểu hơn cho người dùng. Kinh nghiệm cho thấy,  
					các mẫu và các mô hình tìm thấy không phải lúc nào cũng đáng quan tâm và có thể  
					trực tiếp sử dụng được ngay. Vì vậy, quá trình khai phá dữ liệu cần thiết lặp đi lặp  
					lại với việc đánh giá tri thức đã thu được.  
					5) Triển khai tri thức: các mô hình được đưa vào hệ thống thông tin thực tế dưới dạng  
					các modun hỗ trợ việc đưa ra quyết định. Trong một số trường hợp, người ta có thể  
					sử dụng tri thức phát hiện được mà không cần phải đưa vào một hệ thống máy tính.  
					Mặc khác, người sử dụng lại mong muốn tri thức đã tìm được có thể được đưa vào  
					máy tính và được khai thác bằng một số chương trình. Đưa các kết quả đã thu được  
					vào sử dụng trong thực tế là mục tiêu cuối cùng của một quá trình khai phá dữ liệu  
					1
				Mối quan hệ chặt chẽ giữa các giai đoạn trong quá trình khai phá dữ liệu là rất quan  
					trọng cho việc nghiên cứu trong khai phá dữ liệu. Quá trình này có thể được lặp lại nhiều  
					lần một hay nhiều giai đoạn dựa trên phản hồi từ kết quả của các giai đoạn sau. Tham gia  
					chính trong quá trình KPDL là các nhà tư vấn và phát triển chuyên nghiệp trong lĩnh vực  
					KPDL  
					1.1.3. Các phương pháp khai phá dữ liệu  
					1) Phân lớp (classification) : với một tập các dữ liệu huấn luyện cho trước và sự huấn  
					luyện của con người, các giải thuật phân loại sẽ lọc ra bộ phân loại dùng để phân dữ  
					liệu mới vào trong những lớp đã được định trước. Một số phương pháp điển hình là  
					cây quyết định, mạng nơ ron….  
					2) Hồi qui (Regression) : là học một hàm ánh xạ dữ liệu nhằm tìm và xác định giá trị  
					thực của một biến  
					3) Phân cụm (Clustering): thực hiện việc nhóm dữ liệu thành các lớp mới để có thể  
					phát hiện các mẫu phân bố.  
					4) Tổng hợp (Summarization): Tìm ra các đặc trưng và tính chất của các khái niệm. Ví  
					dụ như tổng quát hóa, tóm tắt, các đặc trưng dữ liệu ràng buộc  
					5) Mô hình ràng buộc (Dependency modeling): tìm ra một mô hình mô tả sự phụ thuộc  
					có ý nghĩa giữa các biến. Mô hình ràng buộc gồm hai mức: mức cấu trúc của mô  
					hình mô tả và mức định lượng  
					6) Dò tìm biến đổi và độ lệch (change and deviation dectection) : phát hiện sự thay đổi  
					có ý nghĩa dưới dạng độ đo đã biết trước hoặc giá trị chuẩn  
					1.1.4. Sự cần thiết phải có khai phá dữ liệu  
					Có rất nhiều lý do khiến chúng ta cần phải có khai phá dữ liệu, một số lý do tiêu  
					biểu đó là:  
					-
					Nhiều tổ chức, trong một thời gian dài đã thu thập được một lượng lớn dữ liệu,  
					họ phải làm gì với những dữ liệu này?  
					-
					Người ta thu thập và lưu trữ dữ liệu vì nghĩ rằng có thể thu được những thông  
					tin có giá trị từ những dữ liệu này  
					2
				-
					Trong kinh doanh, thu giữ các dữ liệu về thị trường, đối thủ cạnh tranh và về  
					khách hàng. Trong các ngành sản xuất, thu giữ các dữ liệu về hiệu suất, tối ưu hóa các cơ  
					hội, cũng như nguyên tắc cải tiến các quy trình và các rắc rối gặp phải  
					-
					-
					Chỉ có một lượng nhỏ dữ liệu đã thu thập được phân tích  
					Với ý nghĩ tiếp tục phân thu thập dữ liệu để không bỏ qua điều gì đó quan  
					trọng, mà dữ liệu này lại không được phân tích gây ra tốn kém  
					Các phương pháp phân tích dữ liệu cổ điển tỏ ra không còn mấy phù hợp khi  
					lượng dữ liệu lên  
					-
					-
					Nhiều khi người phân tích dữ liệu không phải là những chuyên gia về dữ liệu,  
					đó đó cần phải có công cụ để họ thực hiện công việc phân tích dữ liệu  
					-
					Trong môi trường cạnh tranh việc phát hiện ngay những dấu hiệu bất thường  
					và nhanh chóng đưa ra quyết định phù hợp là điều hết sức quan trọn  
					1.1.5. Một số khó khăn gặp phải khi xây dựng quá trình khai phá dữ liệu  
					Trong quá trình khai phá dữ liệu chúng ta luôn gặp phải những trở ngại, chúng ta  
					phải tìm cách khắc phục và vượt qua những trở ngại này để thu được kết quả mong muốn.  
					Một trong những khó khăn cơ bản đó là:  
					-
					Kích thước lớn: Không chỉ có nhiều bản ghi trong cơ sở dữ liệu mà trong các  
					bảng cũng có rất nhiều thuộc tính, vì thế kích thước của vấn đề lớn. Một tập dữ liệu có  
					kích thước lớn làm tăng không gian tìm kiếm theo cách bùng nổ tổ hợp. Hơn nữa, sẽ làm  
					tăng khả năng làm cho thuật toán khai phá dữ liệu tìm ra những mẫu sai, không có giá trị  
					khái quát. Để giải quyết vấn đề, người ta sử dụng phương pháp làm giảm kích thước ảnh  
					hưởng đến vấn đề và sử dụng tri thức ưu tiên (có trước) để nhận ra và loại bỏ những  
					trường không liên qua  
					-
					Hiện tượng quá khớp: Khi thuật toán tìm kiếm tham số tốt nhất cho một mô  
					hình cụ thể sử dụng một tập dữ liệu học hạn chế, có thể xảy ra hiện tượng dữ liệu quá  
					khớp, làm cho mô hình kém hiệu quả trên tập dữ liệu thử. Giải quyết vấn đề này sử dụng  
					phương pháp kiểm tra chéo, thực hiện theo đúng các nguyên tắc và chiến lược thống kê  
					phức tạp khác  
					-
					Tri thức và dữ liệu thay đổi: Dữ liệu thay đổi nhanh chóng có thể làm cho các  
					mô hình tìm thấy trước đây không còn giá trị. Hơn nữa, các trường đã được chọn trong  
					3
				một ứng dụng cơ sở dữ liệu cụ thể có thể bị thay đổi, bị xóa, hay được thêm vào. Giải  
					pháp có thể sử dụng là tăng cường phương thức cho việc cập nhật các mô hình và xem sự  
					thay đổi như là một cơ hội cho việc khám phá bằng cách sử dụng chúng một cách thích  
					hợp để chỉ tìm phải kiếm lại cho các mô hình bị thay đổi.  
					-
					Dữ liệu bị nhiễu và bị mất. Vấn đề này đặc biệt hay xảy ra trong các cơ sở dữ  
					liệu thương mại, dữ liệu của các thuộc tính quan trọng có thể bị mất nếu cơ sở dữ liệu  
					không được thiết kết để dành cho mục đích khai phá. Để giải quyết vấn đề này chúng ta  
					phải tăng cường sử dụng những chiến lược thống kê phức tạp để phát hiện ra những  
					trường hợp thông tin ẩn và sự phụ thuộc giữa chúng  
					-
					Tính hiểu được của các mô hình: Trong rất nhiều ứng dụng, việc tìm ra được  
					điều gì dễ hiểu hơn đối với con người là rất quan trọng. Có thể biểu diễn bằng đồ thị,  
					ngôn ngữ tự nhiên, và các kỹ thuật cho việc trực quan hóa dữ liệu  
					-
					…..  
					1.1.6. Các lĩnh vực ứng dụng  
					Theo J.Han và M.Kamber, ứng dụng của khai phá dữ liệu được chia thành hai lớp  
					chính bao gồm lớp các ứng dụng phân tích dữ liệu - hỗ trợ quyết định và lớp các lĩnh vực  
					ứng dụng khác  
					Lớp các ứng dụng trong phân tích dữ liệu và hỗ trợ quyết định bao gồm các ứng  
					dụng trong phân tích và quản lý thị trường, phân tích và quản lý rủi ro, khám phá ngoại lai  
					và các mẫu không hữu ích. Dữ liệu trong các ứng dụng này là khá phong phú có được từ  
					các giao dịch thẻ tín dụng, nghiên cứu đời sống cộng đồng…  
					Lớp các lĩnh vực ứng dụng điển hình khác bao gồm khai phá Text, khai phá web,  
					khai phá dữ liệu dòng, khai phá dữ liệu sinh học…  
					Sự phát triển nhanh chóng của khai phá dữ liệu làm cho miền ứng dụng lĩnh vực  
					ngày càng thêm phong phú và đa dạng  
					1.2. Phân lớp và dự báo  
					1.2.1. Định nghĩa  
					Phân lớp và dự báo là hai hình thức phân tích dữ liệu được sử dụng để rút ra những  
					4
				mô hình miêu tả lớp dữ liệu quan trọng hoặc dự báo xu thế dữ liệu trong tương lai. Trong  
					khi phân lớp dự đoán các nhãn lớp đã được xác định rõ ràng thì mô hình dự báo thực hiện  
					chức năng trên những giá trị liên tục.  
					Lấy ví dụ, một mô hình phân lớp được xây dựng để phân loại ứng dụng cho vay  
					ngân hàng là an toàn hay mạo hiểm, trong khi một mô hình dự báo được xây dựng để dự  
					báo lượng thiết bị máy tính được mua bởi các khách hàng tiền năng dựa vào thu nhập và  
					nghề nghiệp của họ  
					Nhiều phương pháp phân lớp và dự báo đã được giới thiệu bởi các nhà nghiên cứu  
					trong lĩnh vực học máy, hệ chuyên gia, thống kê….  
					1.2.2. Các bước để phân lớp và dự báo  
					Phân lớp dữ liệu gồm hai bước xử lý chính:  
					Bước 1: Học (training) xây dựng một mô hình xác định một tập các lớp dữ liệu. Mô  
					hình này được xây dựng bằng cách phân tích các bộ dữ liệu của một cơ sở dữ liệu, mỗi bộ  
					dữ liệu được xác định bởi giá trị của các thuộc tính vào một lớp được xác định trước.  
					Bước này được xem là học có giám sát, các mẫu huấn luyện thuộc về là biết trước và số  
					lớp dữ liệu cũng được biết trước. Những bộ dữ liệu được phân tích để xây dựng mô hình  
					phân lớp được lấy từ trong tập dữ liệu học hay dữ liệu huấn luyện. Mô hình đưa ra sau khi  
					phân tích xong tập dữ liệu huấn luyện thường có dạng là những quy tắc phân lớp, cây  
					quyết định hay các công thức toán học  
					Thuật toán phân lớp  
					Mô hình  
					Dữ liệu học  
					phân lớp  
					Hình 1-0: Bước 1 Học để xây dựng mô hình phân lớp  
					5
				Bước 2: Kiểm tra và đánh giá, bước này sử dụng mô hình phân lớp đã được xây  
					dựng ở bước 1 vào việc phân lớp. Đánh giá độ chính xác của mô hình hay bộ phân lớp,  
					bằng cách sử dụng một tập các mẫu đã được phân lớp lớp để thử (test) gọi là bộ thử (test  
					set). Những mẫu này được chọn ngẫu nhiên và độc lập với các mẫu đã được học ở bước 1  
					gọi là mẫu thử (test sample). Độ chính xác của một mô hình phân lớp dựa trên bộ thử là tỷ  
					lệ những mẫu thử được phân lớp đúng bằng mô hình phân lớp đó. Nếu độ chính xác của  
					một mô hình được xem xét có thể chấp nhận được thì mô hình đó được dùng để phân lớp  
					cho các bộ dữ liệu hoặc các đối tượng trong tương lai  
					Mô hình phân lớp  
					Dữ liệu mới  
					Dữ liệu kiểm chứng  
					Tin cậy  
					Hình 1-1: Bước 2 Kiểm tra và đánh giá  
					Lấy ví dụ, cho một cơ sở dữ liệu về thông tin tiền gửi của khách hàng, quy tắc phân  
					lớp có thể được học để phân biệt khách hàng có loại tiền gửi được đánh giá tốt hay rất tốt  
					(hình 1.2 ). Quy tắc có thể được sử dụng để phân loại các mẫu dữ liệu về sau, cũng như  
					cung cấp những hiểu biết tốt hơn về nội dung của cơ sở dữ liệu  
					Từ những quy tắc đã học được từ việc phân tích dữ liệu khách hàng đã tồn tại có thể  
					được sử dụng để dự báo tiền gửi của khách hàng mới hoặc khách hàng về sau (hình 1.3)  
					6
				Thuật toán phân lớp  
					Quy tắc phân lớp  
					Dữ liệu huấn  
					luyện  
					Tên  
					Tuổi  
					Thu nhập  
					Đánh giá  
					tiền gửi  
					Tốt  
					Sandy Jones  
					Bill Lee  
					<=30  
					<=30  
					Thấp  
					Thấp  
					Rất tốt  
					Rất tốt  
					Tốt  
					Nếu tuổi = “31…40” và  
					thu nhập = “cao” đánh  
					giá tiền gửi = “rất tốt”  
					Coutnay fox  
					Susan Lake  
					Claire Phips  
					…….  
					31….40 Cao  
					>40  
					Trung bình  
					31….40 Trung bình  
					Tốt  
					….  
					……  
					…..  
					Hình 1-2: Ví dụ về học mô hình  
					Dữ liệu kiểm  
					Quy tắc phân lớp  
					Tên  
					Tuổi  
					Thu nhập Đánh  
					tiền gửi  
					Cao Tốt  
					giá  
					Dữ liệu mới  
					Frank Jones >40  
					Sylvia Crest <=30  
					John Henri, 31…40  
					Thấp  
					Cao  
					…..  
					Tốt  
					High Đánh giá tiền gửi?  
					Anne Yee  
					…..  
					31….40  
					……  
					Rất tốt  
					……  
					Rất tốt  
					Hình 1-3 : Ví dụ về phân lớp dữ liệu  
					7
				“Dự báo khác biệt với phân lớp ở chỗ nào?” Dự báo có thể xem như việc xây dựng  
					và sử dụng mô hình để đánh giá một lớp ví dụ chưa được gán nhãn, hoặc để đánh giá giá  
					trị hay khoảng giá trị của một thuộc tính trong một ví dụ đã cho có thể có. Theo cách này,  
					phân lớp và hồi quy là hai loại quan trọng của dự báo vấn đề phân lớp được sử dụng để dự  
					báo những giá trị rời rạc hoặc dùng vào việc chỉ tên, trong khi hồi quy được sử dụng để  
					dự báo những giá trị liên tục hoặc đã được sắp xếp. Tuy nhiên, theo quan điểm của chúng  
					ta, việc sử dụng dự báo để tiên đoán những nhãn lớp như là phân lớp và sử dụng dự báo  
					để dự đoán những giá trị liên tục (tức là sử dụng kỹ thuật hồi quy) vẫn hay được sử dụng  
					hơn. Quan điểm này thường cũng được chấp nhận trong khai phá dữ liệu [2, 20].  
					1.2.3. Độ chính xác trong phân lớp và dự báo  
					Độ chính xác trong phân lớp và dự báo được đo bằng ước lượng tỷ lệ sai:  
					-
					Phân hoạch: Huấn luyện và kiểm tra đối với những tập dữ liệu lớn. Dùng hai  
					tập dữ liệu độc lập, tập huấn luyện bằng 2/3 tập dữ liệu, tập kiểm tra bằng 1/3 tập huấn  
					luyện  
					-
					Kiểm tra chéo: Dùng với những tập dữ liệu vừa, chia tập dữ liệu thành k mẫu  
					con, sử dụng k-l mẫu con làm tập huấn luyện và một mẫu con làm tập kiểm tra—kiểm tra  
					chéo k thành phần  
					-
					Bootstrapping: Dùng với những tập dữ liệu nhỏ, xóa đi một – leave-one-out  
					1.2.4. Một số bài toán phân lớp và dự báo điển hình  
					•
					•
					Những người có nguy cơ cao, trung bình hoặc thấp với một loại bệnh tật nào đó  
					Các đối tượng hiện lên màn hình radar tương ứng với các vật thể như xe cộ, người,  
					tòa nhà hay cây cối  
					•
					•
					•
					Những người có vẻ giống, hơi giống hoặc không giống với tội phạm  
					Những ngôi nhà có thể tăng giá, giảm giá hoặc giữ giá trong vòng 1 năm tới  
					Độ chính xác của thời tiết (mưa) của ngày tiếp theo trong dự báo thời tiết (chính xác  
					cao, có vẻ đúng, không đúng, hầu như sai)  
					•
					Các khách hàng có vẻ muốn hoặc không muốn mua một sản phẩm nào đó trong siêu  
					thị  
					8
				1.3. Bài toán dự báo xu thế thị trường chứng khoán  
					Các hệ thống tài chính 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ó. Ví dụ như thị trường chứng khoán, việc dự đoán được sự  
					lên xuống của thị trường chứng khoán quả là không đơn giản. Tính phi tuyến tính của thị  
					trường chứng khoán kèm theo sự mù quáng của các nhà đầu tư làm cho việc dự đoán thị  
					trường chứng khoán rất phức tạp và khó khăn. Vì vậy, việc làm thế nào để dự đoán tốt thị  
					trường chứng khoán trở nên rất thú vị đối với các nhà nghiên cứu và phân tích  
					Để dự đoán được xu thế của thị trường chứng khoán, chúng ta phải thừa nhận rằng  
					có một số luật cơ bản có thể được lặp đi lặp lại trong thị trường chứng khoán. Các luật  
					này ẩn trong lịch sử dữ liệu. Từ khía cạnh toán học, các luật này là các hàm quan hệ. Đối  
					tượng của dự đoán chính là tìm ra các luật này và mô tả chúng. Những dự đoán của hệ  
					thống phi tuyến động có thể được chuyển đổi thành vấn đề dự đoán chuỗi thời gian thực.  
					Những nghiên cứu trước chỉ ra rằng, để dự đoán dữ liệu chuỗi thời gian phi tuyến tính thì  
					sử dụng cây quyết định là một phương pháp hiệu quả. Chính vì lẽ đó, cây quyết định là  
					mô hình tốt để dự đoán xu thế của thị trường chứng khoán. Ngày nay có rất nhiều nghiên  
					cứu trên lĩnh vực này, nhưng trong những nghiên cứu đó, thị trường chứng khoán có thể  
					không được phân tích từ khía cạnh toán học, vì thế mà cơ sở toán học của phương pháp  
					này không được công khai. Vì vậy để giải quyết bài toán tốt hơn, trước hết, cần đưa ra mô  
					tả toán học của thị trường chứng khoán.  
					Với một hệ thống động, sự phát triển của nó có thể được mô tả bằng phương trình vi  
					phân  
					d p x  
					dxp  
					= f (x, x',..., x( p−1)  
					)
					(1.0)  
					Nếu một biến trạng thái của quá trình này là lời giải cho phương trình ở trên, thì hệ  
					thống có thể được mô hình hóa thành một vài chuỗi thời gian của biến này  
					d2 x  
					dt2  
					dx  
					= f (x, )  
					dt  
					(1.1)  
					9
				Giả sử rằng nghiệm của phương trình là một chuỗi thời gian với bước h, x(j), j = 1 ~  
					n, và sau đó mô hình của hệ thống có thể được thực hiện với các phép tính, lời giải của  
					phương trình vi phân bình thường ở trên. Các đáp án của hệ số vi phân tại j của phương  
					trình trên được thay thế bởi sự khác nhau dưới đây:  
					d2x  
					dt2  
					x(j+1)−2x(j)+x(j−1)  
					|j =  
					+o(h2)  
					(1.2)  
					(1.3)  
					h2  
					dx  
					dt  
					x( j) − x( j − 1)  
					| j =  
					+ o(h)  
					h
					Từ đó ta có được hàm sau  
					x(j)−x(j−1)  
					⎡
					⎤
					x(j+1)=h2 f x(j),  
					+2x(j)−x(j−1)+o(h3)  
					(1.4)  
					⎢
					⎣
					⎥
					⎦
					h
					Có thể viết hàm trên thành một hàm tổng quát sau:  
					x(j+1)=F(x(j),x(j−1),h)  
					(1.5)  
					(1.6)  
					Tổng quát hóa đến phần tử thứ p, ta có hàm tổng quát sau:  
					x(j+1)=F(x(j),x(j−1),....,x(j−p+1),h)  
					Các khía cạnh chính của hàm nói trên để xác nhận hàm quan hệ F. Vì hệ thống áp  
					dụng chức năng giao dịch phi tuyến tính, thế nên những vấn đề phức tạp về phi tuyến tính  
					có thể được giải quyết rất tốt trong cây quyết định. Dựa vào lý thuyết cơ bản về cây quyết  
					định, từ đó ta xây dựng mô hình cây quyết định cho bài toán dự báo xu thế chứng khoán  
					[7].  
					1.4. Nội dung và cấu trúc của khóa luận  
					Với nội dung trình bày những lý thuyết cơ bản về mô hình cây quyết định cho dữ  
					liệu chứng khoán – dữ liệu thời gian thực (time series) và áp dụng vào bài toán dự báo sự  
					lên xuống của thị trường chứng khoán. Khóa luận được tổ chức theo cấu trúc như sau:  
					Chương 1: Giới thiệu các kiến thức cơ sở  
					10  
				Giới thiệu sơ lược về khai phá dữ liệu, bài toán phân lớp và dự báo và bài toán dự  
					báo cho lĩnh vực chứng khoán được phân tích dưới khía cạnh toán học giúp ta chọn  
					hướng giải quyết tốt nhất cho bài toán là sử dụng mô hình học máy – mô hình cây quyết  
					định. Chương này giới thiệu những gì mà khóa luận nghiên cứu từ đó thông qua việc trình  
					bày về nội dung và cấu trúc của khóa luận.  
					Chương 2: Tổng quan về cây quyết định  
					Chương hai đi vào giới thiệu một cách tổng quát nhất về cây quyết định, cấu trúc và  
					hoạt động của cây quyết định, các độ đo dùng để tìm điểm chia cắt thuộc tính tốt nhất, các  
					thuật toán dùng để xây dựng cây quyết định và giới thiệu kỹ thuật toán C4.5. Với những  
					kiến thức cơ bản này, người đọc sẽ hiểu được phần nào cấu trúc, hoạt động cũng như  
					những ưu nhược điểm của cây quyết định từ đó có thể xây dựng được mô hình phù hợp  
					cho từng bài toán  
					Chương 3: Mô hình cây quyết định cho dữ liệu chứng khoán – dữ liệu time  
					series trong bài toán dự báo xu thế thị trường chứng khoán  
					Chương này giới thiệu dữ liệu thời gian thực (time series), dữ liệu chứng khoán  
					trong bài toán dự báo chứng khoán. Qua đó xây dựng mô hình xử lý bài toán và thiết kế  
					chi tiết mô hình cây quyết định, cách thực hiện từng bước trong thiết kế mô hình cây  
					quyết định  
					Chương 4: Thực nghiệm  
					Giới thiệu sơ lược về phần mềm mã nguồn mở weka – công cụ mà khóa luận sử  
					dụng để xây dựng mô hình dự báo xu thế chứng khoán, xây dựng mô hình, đánh giá mô  
					hình dựa trên các độ đo xác định, từ đó chọn được mô hình tốt nhất cho bộ dữ liệu mà tác  
					giả sử dụng. Trong chương này, tác giả cũng giới thiệu hai mô hình khác và có điều chỉnh  
					tham số của hai mô hình này để cho ra kết quả tốt nhất rồi so sánh với kết quả tốt nhất của  
					mô hình mà tác giả đã dùng  
					Chương 5: Kết luận  
					Chương này tổng kết lại những gì đã đạt được và chưa đạt được. Từ đó nêu lên  
					những kết quả hướng tới, hướng nghiên cứu và phát triển tiếp theo của luận văn này  
					11  
				Chương 2. Tổng quan về cây quyết định  
					2.1. Đị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 [20].  
					2.2. 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 trong tương  
					ứng với một biến, đâ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.  
					Mỗi một nhánh của cây xuất phát từ một nút trong 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  
					Nút gốc  
					Nút trong  
					Nút lá  
					Nút lá  
					Nút lá  
					Hình 2-0: Biểu diễn cấu trúc cây quyết định  
					12  
				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 đó.  
					2.3. Các kiểu cây quyết định  
					Cây quyết định còn có hai tên khác:  
					Cây hồi quy (Regression tree): ước lượng các hàm có giá trị là số thực thay vì được  
					sử dụng cho các nhiệm vụ phân loại. Ví dụ: ước tính giá một ngôi nhà hoặc khoảng thời  
					gian một bệnh nhân nằm viện  
					Cây phân loại (Classification tree): nếu y là một biến phân loại như: giới tính (nam  
					hay nữ), kết quả của một trận đâu (thắng hay thua)  
					2.4. Các độ đo sử dụng để xác định điểm chia tốt nhất  
					Như phần trên đã phân tích thì các tiêu chí để đánh giá tìm điểm chia là rất quan  
					trọng, chúng được xem là một tiêu chuẩn “heuristic” để phân chia dữ liệu. Ý tưởng chính  
					trong việc đưa ra các tiêu chí trên là làm sao cho các tập con được phân chia càng trở nên  
					“trong suốt” (tất cả các bộ thuộc về cùng một nhãn) càng tốt.  
					Cho một tập dữ liệu D, một tập các nhãn Ci (i >=1 và i <= m với m là số nhãn), định  
					nghĩa các khái niệm sau:  
					Ci, D: là tất cả các bộ dữ liệu có nhãn lớp Ci trong D  
					|D|: là tổng số bộ dữ liệu của tập dữ liệu D  
					|Ci, D|: là tổng số bộ dữ liệu của tập dữ liệu D có nhãn lớp Ci  
					Với các khái niệm trên, thông thường người ta sẽ sử dụng ba tiêu chỉ sau để đánh giá  
					chọn điểm chia:  
					13  
				2.4.1. Độ lợi thông tin (Information Gain)  
					Độ đo này dựa trên cơ sở lý thuyết thông tin của nhà toán học Claude Shannon, độ  
					đo này xác định giá trị của nội dung mà các thông tin sở hữu trong một loạt các thông  
					điệp. Độ đo này phụ thuộc vào độ đo sự hỗn loạn của tập dữ liệu và thông tin có được sau  
					khi phân lớp  
					• Đo sự hỗn loạn của tập dữ liệu (entropy)  
					m
					Info (D) = -  
					p .log p  
					i
					(2.0)  
					∑
					i
					2
					i=1  
					Với pi là xác suất của một bộ bất kỳ trên D thuộc về nhãn Ci  
					|Ci , D |  
					p =  
					(2.1)  
					i
					| D |  
					Có thể xem công thức Info(D) như một hàm tính giá trị trung bình trên lượng  
					thông tin nhằm xác định nhãn của một bộ bất kỳ trong tập D  
					• Độ đo thông tin có được sau khi phân lớp  
					Giả sử phân chia các bộ trong D trên một thuộc tính A bất kỳ, để không mất tính  
					tổng quát có thể xem A có các giá trị phân biệt {a1, a2, a3, …, av}. Nếu thuộc tính A được  
					sử dụng để chia thành v tập con, những tập con này sẽ tương ứng với các nhánh con của  
					nút hiện tại. Độ đo thông tin có được sau khi phân lớp theo v tập con trên sẽ được tính  
					như sau:  
					v
					D
					Info A (D) =  
					j Info(Dj )  
					(2.2)  
					∑
					D
					j=1  
					Với |Dj| là tổng số bộ dữ liệu được phân chia vào tập con thứ j  
					Độ đo Gain được xác định là sự khác biệt giữa thông tin gốc (thông tin khi chưa  
					phân lớp) và thông tin mới (thông tin sau khi đã phân lớp). Thông tin có được bởi việc  
					phân nhánh trên thuộc tính A là:  
					Gain (A) = Info(D) – InfoA(D)  
					(2.3)  
					Nói một cách khác, độ đo Gian cho biết được lượng thông tin thu được khi phân lớp,  
					thuộc tính nào có độ đo Gain lớn nhất sẽ được chọn làm ứng cử viên để phân chia. Việc  
					chọn thuộc tính theo tiêu chí độ đo Gian lớn nhất tương đượng với việc muốn tìm được  
					14  
				một phân hoạch sao cho việc phân lớp là tốt nhất hay nói cách khác lượng thông tin cần  
					thiết để hoàn thành việc phân lớp ( thể hiện qua giá trị là nhỏ nhất)  
					2.4.2. Độ đo tỷ lệ Gain (Gain ratio)  
					Theo các nghiên cứu thì độ đo Gain thích hợp trong trường hợp các thuộc tính có  
					nhiều giá trị hiện hành (dĩ nhiên các giá trị này phải thuộc miền giá trị, ví dụ với 100 mẩu  
					tin có 80 giá trị khác nhau của thuộc tính khi sử dụng phép chiếu lên thuộc tính). Độ đo tỷ  
					lệ Gain (Gain ratio) được mở rộng từ độ đo Gain, được định nghĩa như sau:  
					v
					| Dj |  
					| D |  
					| Dj |  
					| D |  
					SplitInfo (D) =  
					×log2 (  
					)
					(2.4)  
					∑
					A
					j=1  
					Công thức SplitInfoA (D) cho biết thông tin tiềm ẩn được tạo ra bằng cách chia tập D  
					trong v tập con. Với mỗi tập con được tạo ra, tính toán tỷ lệ của số bộ trong tập con này  
					so với tổng số bộ dữ liệu trong tập D. Khi đó, độ đo tỷ lệ Gain sẽ được tính theo công  
					thức sau:  
					Gain( A)  
					GainRatio( A) =  
					(2.5)  
					SplitInfo( A)  
					Tất cả thuộc tính sẽ được tính toán độ đo tỷ lệ Gain, thuộc tính nào có độ đo tỷ lệ  
					Gain lớn nhất sẽ được chọn làm thuộc tính phân chia.  
					2.4.3. Chỉ số Gini (Gini index)  
					Chỉ số Gini được sử dụng trong thuật toán CART. Trái ngược với độ đo Gain, chỉ số  
					Gini là độ đo về tính “không trong suốt” của tập dữ liệu. Chỉ số Gini của một tập dữ liệu  
					D được định nghĩa như sau:  
					m
					G in i ( D ) = 1 −  
					( p i ) 2  
					(2.6)  
					∑
					i = 1  
					Với m là tổng số nhãn lớp, pi là xác suất để một bộ bất kỳ trong D thuộc về một  
					nhãn Ci, được tính như sau:  
					| C  
					|
					i , D  
					p i  
					=
					(2.7)  
					| D |  
					15  
				Chỉ số Gini thường sẽ được tính toán dựa trên giả định về một tập dữ liệu D được  
					phân chia nhị phân thành hai tập con. Đầu tiên xét trường hợp thuộc tính A bất kỳ trong D  
					có kiểu dữ liệu rời rạc, khi dùng phép chiếu sẽ thu được v = {a1, a2, …., av} giá trị khác  
					nhau. Để xác định điểm chia tốt nhất của A, kiểm tra tất cả tập con có thể tạo được từ v  
					giá trị phân biệt trên, mỗi tập con tạm gọi là SA là một điều kiện kiểm tra nhị phân dạng A  
					€ SA. Như vậy với v giá trị khác nhau ta sẽ có 2v – 2 tập con, trong đó tập rỗng và tập toàn  
					phần v = {a1, a2, ….,av} sẽ không được xét đến. Như vậy tiến hành lặp qua tất cả các tập  
					con này, mỗi lần lặp sẽ phân chia tập giá trị v thành hai tập con v1 và v2 riêng biệt thỏa  
					điều kiện rời rạc toàn phần (hội v1 và v2 chính là tập v và phần giao là tập rỗng). Với hai  
					tập con v1 và v2 này tương ứng tập con D cũng được phân chia thành hai tập con D1 (các  
					bộ có giá trị thuộc tính A € v1) và D2 (các bộ có giá trị thuộc tính A € v2) theo, Gini (D) sẽ  
					được tính như sau:  
					| D |  
					| D2 |  
					| D |  
					1
					GiniA (D) =  
					Gini(D ) +  
					Gini(D2 )  
					(2.8)  
					1
					| D |  
					Khác với độ đo Gain, ta chọn chỉ số Gini nhỏ nhất với mong muốn sau khi phân chia  
					dữ liệu sẽ làm giảm tính không trong suốt của tập D nhiều nhất. Đối với các giá trị liên  
					tục thì đầu tiên phải sắp xếp các giá trị này, sau đó tất cả các giá trị cũng sẽ được tính toán  
					chỉ số Gini và cũng chọn ra giá trị nào có thuộc tính Gini nhỏ nhất. Cũng giống như độ đo  
					Gain, chỉ số Gini thông thường cũng được tính cho điểm giữa của hai giá trị liên tục nằm  
					liền kề nhau. Lúc này tập D sẽ được chia làm hai tập D1 là các bộ dữ liệu thỏa điều kiện  
					giá trị thuộc tính A nhỏ hơn hoặc bằng giá trị điểm giữa và D2 thỏa điều kiện giá trị thuộc  
					tính A lớn hơn giá trị điểm giữa. Mục tiêu của chỉ số Gini là càng làm giảm tính không  
					trong suốt của dữ liệu càng nhiều càng tốt, giá trị giảm trừ này thực hiện qua công thức:  
					Ugini (A) = Gini(D) – GiniA(D)  
					(2.9)  
					Lưu ý Gini (D) là một con số cố định, chính vì mục đích chọn điểm chia sao cho  
					Ugini(A) là lớn nhất nên bắt buộc chọn thuộc tính A sao cho GiniA(D) là nhỏ nhất [3]  
					[19]  
					16  
				2.5. Cắt tỉa cây (thu gọn cây)  
					Khi xây dựng cây quyết định, cấu trúc của một cây quyết định là một vấn đề quan  
					trọng cần xem xét, có thể các nhánh sẽ phản ánh những dị thường trong dữ liệu thử do  
					nhiễu hay dữ liệu không liên quan. Cắt nhánh hay không cắt nhánh cây có thể làm thay  
					đổi hiệu quả học từ các tập dữ liệu. Cắt nhánh làm giảm kích thước của cây do loại bỏ bớt  
					các nhánh thừa trong quá trình xây dựng cây do đó làm giảm sự phức tạp của kết quả  
					phân lớp và độ chính xác của dự báo cũng tốt hơn  
					Phương thức này thông thường sử dụng độ đo thống kê để loại bỏ những nhánh ít tin  
					cậy nhất, nhìn chung sẽ mang lại kết quả phân lớp nhanh hơn và cải thiện được độ tin cậy  
					của cây để giải quyết vấn đề phân lớp bị độc lập với dữ liệu thử  
					Nhìn chung có hai phương pháp thu gọn cây như sau:  
					Phương pháp thu gọn cây trước: Cây được thu gọn bằng cách tạm dừng quá trình  
					dựng cây sớm (tức là bằng cách quyết định không tiếp tục phân chia tập con ví dụ đào tạo  
					ở nút hiện tại nhỏ hơn nữa), do dừng việc phân chia sớm này, nút đó sẽ trở thành một lá,  
					lá này có thể chứa đựng lớp xuất hiện nhiều nhất trong số các tập mẫu con hay phân bố  
					xác suất của các mẫu  
					Khi xây dựng một cây, các độ đo như ý nghĩa thống kê, lợi ích thông tin,… có thể  
					được sử dụng để đánh giá độ tốt của việc chia cắt. Nên việc phân hoạch các mẫu tại nút  
					đó có kết quả nằm ở bên dưới một ngưỡng định trước nào đó thì sẽ không phân chia tiếp  
					các tập con nữa. Tuy nhiên để chọn được một ngưỡng phù hợp là một việc làm khó.  
					Ngưỡng cao sẽ mang lại một cây quá đơn giản, trong khi ngưỡng thấp có thể mang lại  
					một cây quá chi tiết  
					Phương pháp rút gọn cây sau: Thực hiện loại bỏ các nhánh khỏi một cây đã được  
					xây dựng xong. Một nút của cây được rút gọn bằng cách loại bỏ các nhánh của nó. Nút  
					thấp nhất không bị thu gọn sẽ trở thành lá và được gán nhãn bằng nhãn lớp xuất hiện  
					nhiều nhất trong số các nhánh của nó trước đó. Với mỗi nút không phải là lá trong cây,  
					thuật toán sẽ tính toán tỷ lệ lỗi mong muốn xảy ra nếu cây con tại nút đó không bị cắt cụt  
					bằng việc sử dụng tỷ lệ lỗi cho mỗi nhánh, được kết hợp bởi lỗi lớn hơn tỷ lệ lỗi mong  
					muốn thì cây con đó được giữ lại, nếu không thì nó sẽ bị loại bỏ. Sau khi sinh ra một tập  
					17  
				các cây đã được cắt gọn theo từng nấc, một loạt các phép thử độc lập được sử dụng để  
					đánh giá sự chính xác của mỗi cây này. Cây quyết định nào mà có tỷ lệ lỗi thấp nhất sẽ  
					được ưu tiên chọn  
					Chúng ta cũng có thể sử dụng xen kẽ hai phương pháp thu gọn cây trước và thu gọn  
					cây sau trong quá trình thu gọn cây. Thu gọn cây đòi hỏi nhiều tính toán hơn thu gọn cây  
					trước, song thông thường nó mang lại cây quyết định tin cậy hơn  
					2.6. Rút ra quy tắc phân lớp từ cây quyết định  
					“Chúng ta có thể rút ra được quy tắc phân lớp từ cây quyết định? Nếu có thì như thế  
					nào?” Tri thức biểu diễn trong cây quyết định có thể được rút ra và biểu diễn dưới hình  
					thức của quy tắc phân lớp IF-THEN. Một quy tắc được tạo rat hay thế cho một đường dẫn  
					tới một nút lá. Mỗi một cặp thuộc tính-giá trị theo một hướng đi cụ thể hình thành phần  
					đầu của quy tắc (phần “IF”). Nút lá chứa lớp dự đoán, hình thành phần sau của quy tắc  
					(phần “THEN”). Quy tắc IF-THEN có thể làm cho người đọc dễ hiểu, đặc biệt trong  
					trường hợp cây lớn.  
					Ví dụ cây quyết định sau  
					Tuổi  
					<=30  
					31…4  
					Sinh viên  
					Có  
					Tỷ lệ tiền gửi  
					sai  
					đúng  
					Có  
					Không  
					Có  
					Không  
					Hình 2-1: Một cây quyết định miêu tả khái niệm “mua máy tính”  
					Ta có thể chuyển đổi thành quy tắc phân lớp có dạng IF-THEN bằng cách lần theo  
					đường dẫn từ gốc đến từng nút lá như sau:  
					18  
				IF tuổi=”<=30” AND sinh_vien = “sai”  
					IF tuoi = “<=30” AND sinh_vien = “đúng”  
					IF tuoi = “31…40”  
					THEN mua_may_tinh= “sai”  
					THEN mua_may_tinh = “đúng”  
					THEN mua_may_tinh = “sai”  
					IF tuoi = “>40” AND ty_le_tien_gui = “rất tốt” THEN mua_may_tinh = “sai”  
					IF tuoi = “>40” AND ty_le_tien_gui = “tốt” THEN mua_may_tinh = “đúng”  
					Một quy tắc có thể được thu gọn bằng cách loại bỏ một số điều kiện ở phần đầu của  
					quy tắc, điều này không làm cải tiến độ chính xác ước lượng của quy tắc. Với mỗi lớp,  
					các quy tắc trong một lớp sau đó có thể được xếp loại theo độ chính xác ước lượng của  
					chúng. Vì thế khả năng một mẫu thử đã cho sẽ không thỏa mãn phần đầu của mọi quy tắc,  
					một quy tắc mặc định được gán cho đa số các lớp, thông thường cũng được thêm vào tập  
					quy tắc kết quả  
					2.7. Các thuật toán trong cây quyết định  
					Cây quyết định là một trong những giải pháp trực quan và hữu hiệu để mô tả quá  
					trình phân lớp dữ liệu. Do cây quyết định rất hữu dụng nên đã có nhiều nghiên cứu để xây  
					dựng nó mà nổi bật là các thuật toán học quy nạp như CARD, ID3, C45…..  
					Các thuật toán trên đều dựa trên một thuật toán cơ bản để xây dựng cây chỉ khác  
					nhau ở tiêu chuẩn/thuộc tính phân chia và độ đo để lựa chọn.  
					Thuật toán ID3 (Iterative Dichotomiser 3) do Quinlan Ross giới thiệu vào năm 1986  
					[11]. Nó dựa trên thuật toán Hunt và sử dụng độ lợi thông tin (Gain) để lựa chọn thuộc  
					tính phân lớp các đối tượng. Ý tưởng cơ bản của giải thuật ID3 là để xây dựng cây quyết  
					định bằng việc sử dụng một cách tìm kiếm từ trên xuống trên những tập hợp cho trước để  
					kiểm tra mỗi thuộc tính tại mỗi nút của cây, thuộc tính nào có độ lợi thông tin (Gain) lớn  
					nhất sẽ được chọn để phân chia đối tượng. Quá trình này được thực hiện một cách đệ quy  
					cho đến khi tập đối tượng tại một cây con đã trở nên thuần nhất, tức là nó chỉ chứa các đối  
					tượng thuộc về cùng một lớp. Lớp này sẽ trở thành một lá của cây.  
					Thuật toán C4.5 là một cải tiến của thuật toán ID3, do Quinlan Ross phát triển vào  
					năm 1993, sử dụng độ đo tỷ lệ gain làm tiêu chuẩn chia cắt [11]. Khi số lượng các trường  
					19  
				hợp nhỏ hơn một ngưỡng nào đó thì nó bị cắt khỏi cây. Lỗi cắt tỉa được tính toán sau khi  
					mở rộng cây. C4.5 có thể xử lý các thuộc tính số.  
					Thuật toán CART (classification and regression trees) do Breiman phát triển vào  
					năm 1984, gồm cả phân lớp và hồi quy cây [11]. Phân lớp trong CART dựa trên việc chia  
					cắt nhị phân các thuộc tính, sử dụng độ đo gini để lựa chọn thuộc tính chia cắt. Cắt tỉa cây  
					trong CART được thực hiện bằng cách sử dụng một phần của tập dữ liệu huấn luyện.  
					CART sử dụng cả thuộc tính kiểu số và thuộc tính rõ ràng trong xây dựng cây quyết định  
					và có khả năng xử lý với các thuộc tính lỗi. CART khác với các thuật toán khác, nó sử  
					dụng phân tích hồi quy để giúp quá trình hồi quy của cây. Những đặc điểm phân tích hồi  
					quy được sử dụng trong dự đoán một biến phụ thuộc trong một tập hợp các biến dự đoán  
					trong một khoảng thời gian (Breiman, 1984) [11]. Nó sử dụng nhiều biến độc lập làm tiêu  
					chuẩn chia cắt như chỉ số gini, symgin…và một trong nhiều biến để xác định điểm chia  
					tốt nhất và dữ liệu được sắp xếp ở mọi nút.Các tiêu chí kết hợp chia cắt tuyến tính được  
					sử dụng trong suốt quá trình phân tích hồi quy. Salford systems đã thực hiện phiên bản  
					của CART gọi là CARTR sử dụng mã ban đầu của Breiman (1984) [11]. CARTR mở rộng  
					những đặc tính và khả năng phân lớp và dự đoán chính xác của cây với những dữ liệu  
					thiếu  
					Trong [13], hai tác giả Matthew N.Anyanwu và Sajjan G.Shiva đã xem xét khoảng  
					30 bài báo để khảo sát xem trong một loạt các thuật toán của cây quyết định thì thuật toán  
					nào hay được sử dụng nhất.  
					Thuật toán  
					CLS  
					Tỷ lệ sử dụng  
					9%  
					ID3  
					4.5%  
					C4.5  
					54.55%  
					9%  
					C5.0  
					CART  
					40.9%  
					4.5%  
					Random Tree  
					Random Forest  
					9%  
					20  
				SLIQ  
					27.27%  
					……  
					………  
					Hình 2-2: Kết quả của cuộc khảo sát  
					Theo như cuộc khảo sát trên thì thuật toán C4.5 là thuật toán được sử dụng nhiều  
					nhất, sau đó là thuật toán CART. Thuật toán CART sử dụng độ đo gini để xác định điểm  
					chia còn thuật toán C4.5 sử dụng độ đo tỷ lệ gain.  
					Kiểm tra trên CART luôn là nhị phân, nhưng trên C4.5 cho phép hai hay nhiều giá  
					trị thuộc tính. CART cắt nhánh cây dùng một mô hình chi phí phức tạp qua các tham số  
					được ước lượng bằng cách kiểm tra chéo (cross-validation), C4.5 dùng một giải thuật để  
					xác định một giá trị nhận được từ một giới hạn nhị phân đáng tin cậy. Do đó kết quả phân  
					lớp khi sử dụng thuật toán C4.5 sẽ tốt hơn, nhanh hơn thuật toán CART. Trong luận văn  
					này, tôi sử dụng thuật toán C4.5 để xây dựng mô hình cây quyết định cho bài toán phân  
					lớp  
					2.8. Quá trình tạo cây quyết định  
					2.8.1. Khả năng học và tổng quát hóa  
					Có thể nói đặc trưng cơ bản nhất của cây quyết định là khả năng học và tổng quát  
					hóa. Trong kỹ thuật học máy dùng cây quyết định được gọi là học bằng cây quyết định,  
					hay chỉ gọi với cái tên ngắn gọn là cây quyết định  
					Học: là khả năng mà cây quyết định có thể phân loại chính xác những mẫu đã được  
					huấn luyện  
					Tổng quát hóa: là khả năng cây có thể nhận biết được những mẫu chưa từng được  
					huấn luyện. Chính khả năng này tạo nên sức mạnh của mạng  
					2.8.2. Các phương pháp huấn luyện cây  
					Huấn luyện cây: là quá trình tạo cây sao cho khả năng học và tổng quát hóa mà nó  
					đạt được là cao nhất. Bản chất của việc làm này là tính toán lượng thông tin nhận được  
					trên các thuộc tính và chọn thuộc tính tương ứng có lượng thông tin tối đa làm nút phân  
					21  
				Tải về để xem bản đầy đủ
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luậ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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
        
        
        File đính kèm:
khoa_luan_ung_dung_mo_hinh_hoc_may_tien_tien_nham_tang_cuong.pdf

