LỜI MỞ ĐẦUTrong thời đại ngày nay, với sự bùng nổ của dữ liệu và sức mạnh tínhtoán, việc áp dụng các phương pháp học máy trong dự đoán giá chứng khoánkhông chỉ là một thách thức thú vị m
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC NHẬP MÔN HỌC MÁY
Đ TI:
DỰ ĐOÁN GIÁ CHỨNG KHOÁN
BẰNG HỒI QUY TUYẾN TÍNH
Sinh viên thực hiện : NGUYỄN XUÂN HIẾU
ĐINH HẢI HIẾU NGUYỄN QUỐC ĐẠT Ngành : CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn : VŨ VĂN ĐỊNH
Chuyên ngành : CÔNG NGHỆ PHẦN MM Lớp : D16CNPM1
1
Hà Nội, ngày tháng năm 2024
Trang 2PHIẾU CHẤM ĐIỂM STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký
1 Nguyễn Xuân Hiếu
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 5
CHƯƠNG 1: TỔNG QUAN HỌC MÁY (MACHINELEARNING) 6
1.1 Khái niệm về học máy 6
1.2 Lịch sử phát triển và mối quan hệ với các lĩnh vực khác 7
1.3 Các loại giải thuật 8
CHƯƠNG 2: HỒI QUY TUYẾN TÍNH 10
2.1 Tổng quan về hồi quy tuyến tính 10
2.2Phân tích toán học 12
2.2.1Dạng của Linear Regresstion 12
2.2.2 Sai số dự đoán 13
2.2.3 Hàm mất mát 13
2.2.4 Nghiệm của bài toán Linear Regresstion 14
2.3 Một số dạng hồi quy tuyến tính 15
2.3.1 Hồi quy tuyến tính đơn giản 15
2.3.2 Hồi quy tuyến tính bội 16
2.3.3 Hồi quy Logistic 16
CHƯƠNG 3: GIỚI THIỆU Đ TI DỰ ĐOÁN GIÁ CHỨNG KHOÁN BẰNG HỒI QUY TUYẾN TÍNH 17
3.1 Khái niệm thị trường chứng khoán 17
3.2 Hoc máy (Machine learning) và Thị trường chứng khoán 17
3.3 Giới thiệu về dự đoán giá chứng khoán 19
3.4 Các bước xử cho mô hình dự đoán giá chứng khoán 20
CHƯƠNG 4: CI ĐẶT MÔ HÌNH THỬ NGHIỆM 22
4.1 Dữ liệu thử nghiệm 22
4.2 Các bước thử nghiệm 22
4.3 Kết quả thử nghiệm 28
3
Trang 4KẾT LUẬN 29 TI LIỆU THAM KHẢO 30
Trang 5LỜI MỞ ĐẦU
Trong thời đại ngày nay, với sự bùng nổ của dữ liệu và sức mạnh tínhtoán, việc áp dụng các phương pháp học máy trong dự đoán giá chứng khoánkhông chỉ là một thách thức thú vị mà còn mang lại những cơ hội lớn cho cácnhà đầu tư, nhà phân tích tài chính và các chuyên gia trong lĩnh vực tài chính.Chứng khoán, với sự biến động không ngừng, đòi hỏi sự nhạy bén vànhanh nhẹn trong việc đưa ra các quyết định đầu tư Trong ngữ cảnh này, họcmáy đã trở thành một công cụ mạnh mẽ, giúp chúng ta hiểu rõ hơn về các môhình và xu hướng của thị trường tài chính Trong bài báo cáo này, chúng ta sẽtập trung vào một phương pháp cụ thể - hồi quy tuyến tính, một kỹ thuật mạnh
mẽ có thể giúp chúng ta dự đoán giá chứng khoán dựa trên các biến độc lập.Chúng ta sẽ bắt đầu từ cơ bản, hiểu rõ về ý nghĩa và quy trình thực hiệnhồi quy tuyến tính, từ việc thu thập dữ liệu đến xây dựng mô hình và đánh giáhiệu suất Không chỉ là một khóa học lý thuyết, chúng ta cũng sẽ áp dụng kiếnthức đã học vào thực tế, sử dụng dữ liệu thị trường chứng khoán thực để tạo racác mô hình dự đoán chính xác và ổn định
Dưới đây là phần trình bày báo cáo môn học thông qua đề tài đã nêu ởtrên Hiện tại, chúng em còn nhiều thiếu sót , rất mong nhận được những ý kiếngóp ý và tư vấn từ thầy cô và các bạn để chúng em có thể trau dồi thêm cho bảnthân những kiến thức hữu ích
5
Trang 6CHƯƠNG 1: TỔNG QUAN HỌC MÁY (MACHINELEARNING) 1.1 Khái niệm về học máy
Học máy (tiếng Anh: machine learning) là một lĩnh vực của trí tuệ nhântạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệthống “học” tự động từ dữ liệu để giải quyết những vấn đề cụ thể Ví dụ như cácmáy có thể “học” cách phân loại thư điện tử xem có phải thư rác (spam) haykhông và tự động xếp vào thư mục tương ứng Học máy rất gần với suy diễnthống kê (statistical inference) tuy có khác nhau về thuật ngữ Một nhánh củahọc máy là học sâu phát triển rất mạnh mẽ gần đây và có liên quan lớn đếnthống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khácvới thống kế, học máy tập trung vào sự phức tạp của các giải thuật trong việcthực thi tính toán Nhiều bài toán suy luận được xếp vào loại bài toán NP-khó, vìthế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy luận xấp
xỉ mà có thể xử lý được Học máy có hiện nay được áp dụng rộng rãi bao gồmmáy truy tìm dữ liệu, chuẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tíchthị trường chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữviết, dịch tự động, chơi trò chơi và cử động rô-bosost(robot locomotion)
Hình 1 Khái niệm về học máy
Trang 71.2 Lịch sử phát triển và mối quan hệ với các lĩnh vực khác
Thuật ngữ học máy được đặt ra vào năm 1959 bởi Arthur Samuel, mộtnhân viên của IBM và là người tiên phong trong lĩnh vực trò chơi máy tính và trítuệ nhân tạo Ngoài ra, máy tính tự dạy từ đồng nghĩa cũng được sử dụng trongkhoảng thời gian này
Vào đầu những năm 1960, một “máy học” thử nghiệm với bộ nhớ băngđục lỗ, được gọi là Cybertron, đã được Công ty Raytheon phát triển để phân tíchtín hiệu sonar, điện tâm đồ và mẫu giọng nói bằng cách sử dụng phương pháphọc tăng cường thô sơ Nó được một người điều hành/giáo viên “đào tạo” lặp đilặp lại để nhận ra các mẫu và được trang bị một nút “goof” để khiến nó đánh giálại các quyết định không chính xác Một cuốn sách tiêu biể về nghiên cứu họcmáy trong những năm 1960 là cuốn sach vè Máy học của Nilsoon, chủ yếu đềcập đến học máy để phân loại mẫu Mối quan tâm liên quan đến nhận dạng mẫutiếp tục kéo dài đến những năm 1970, như được Đua và Hart mô tả vào năm
1973 Năm 1981, một báo cáo đã được đưa ra về việc sử dụng các chiến lựcgiảng dạy sao cho mạng thần kinh học cách nhận dạng 40 ký tự(26 chữ cái, 10chữ số và 4 ký hiệu đặc biệt) từ một thiết bị đầu cuối máy tính
Tom M.Mitchell đã cung cấp một định nghĩa chính thức hơn, được tríchdẫn rộng rãi về các thuật toán được nghiên cứu trong lĩnh vực máy học: “Mộtchương trình máy tính được cho là học hỏi từ trải nghiệm E đối với một số loạinghiệm vụ T và đo lường hiệu suất P nếu hiệu suất của nó ở các nhiệm vụ trong
T, được đo bằng P, cải thiện theo kinh nghiệm E “Định nghĩa này về các nhiệm
vụ liên quan đến học máy đưa ra một định nghĩa hoạt động cơ bản hơn là xácđịnh lĩnh vực này theo thuật ngữ nhận thức Điều này tuân theo đề xuất củaALan Turing trong bài báo của ông “Máy tính và trí thông minh”, trong đó câuhỏi “Máy móc có thể suy nghĩ không?” được thay thế bằng câu hỏi “ Liệu máy
7
Trang 8móc có thể làm những gì chúng ta suy nghĩ (với tư cách là thực thể có suy nghĩ)
có thể làm?”
Học máy hiện đại có hai mục tiêu, một là phân loại dữ liệu dựa trên các
mô hình được phát triển, mục đích khác là đưa ra dự đoán cho kết quả trongtương lai dứa trên các mô hình này Một thuật toán giả định cụ thể để phân laoji
dữ liệu có thể sử dụng tầm nhìn máy tính về nốt ruồi kết hợp với học có giám sát
để huấn luyện nó phân loại nốt ruồi ung thư Thuật toán học máy cho giao dịchchứng khoán thẻ thể thông báo cho người giao dịch về những dự đoán tiền năngtrong tương lai
Hình 2 Lịch sử phát triển của học máy
Trang 91.3 Các loại giải thuật
Các thuật toán học máy được phân loại theo kết quả mong muốn của thuậttoán Các loại thuật toán thường dùng bao gồm:
Học có giám sát, thuật toán tạo ra một hàm ánh xạ dữ liệu vào tới kết quảmong muốn Một phát biểu chuẩn về một việc học có giám sát là bài toánphân loại: chương trình cần học (cách xấp xỉ biểu hiện của một hàn ánh
xạ một vector tới một vài lớp bằng cách xem xét một số mẫu dữ liệu kết quả của hàm đó
- Học không giám sát - mô hình hóa một tập dữ liệu, không có sẵn các ví
Chuyển đổi - tương tự học có giám sát nhưng không xây dựng hàm mộtcách rõ ràng Thay vì thế, cố gặng đoán kết quả mới dụa vào các dữ liệuhuấn luyện, kết quả huấn luyện và dữ liệu thử nghiệm có sẵn trong quátrình huấn luyện
Học cách học - trong đó thuật toán học thiên kiến quy nạp của chínhmình, dựa theo các kinh nghiệm đã gặp
9
Trang 10CHƯƠNG 2: HỒI QUY TUYẾN TÍNH
2.1 Tổng quan về hồi quy tuyến tính
Hồi quy tuyến tính là một phương pháp thống kê để hồi quy dữ với biếnphụ thuộc có giá trị liên tục trong khi các biến độc lập có thể có một trong haigiá trụ liên tục hoặc là giá trị phân loại Nói cách khác”Hồi quy tuyến tính” làmột phương pháp để dự đoán biến phụ thuộc (Y) dựa trên giá trị của biến độclập (X) Nó có thể được sử dụng cho các trường hợp chúng ta muốn dự đoánmột số lượng liên tục Ví dụ, dự đoán giao thông ở một cửa hàng bán lẻ, dự đoánthời gian người dùng dừng lại một trang nào đó hoặc số trang đã truy cập vàomột website nào đó v.v…
Hồi quy tuyến tính là một kỹ thuật phân tích dữ liệu dự đoán giá trị của dữliệu không xác định bằng cách sử dụng một giá trị dữ liệu liên quan và đã biếtkhác Nó mô hình toán học biến không xác định hoặc phụ thuộc và biến đã biếthoặc độc lập như một phương trình tuyến tính Ví dụ, giả sử rằng bạn có dữ liệu
về chi phí và thu nhập của bạn trong năm ngoái Kỹ thuật hồi quy tuyến tínhphân tích dữ liệu này và xác định rằng chi phí của bạn là một nửa thu nhập củabạn Sau đó, họ tính toán một chi phí trong tương lai không rõ bằng cách giảmmột nửa thu nhập được biết đến trong tương lai
Các mô hình hồi quy tuyến tính tương đối đơn giản và cung cấp mộtcôngthức toán học dễ giải thích để đưa ra các dự đoán Hồi quy tuyến tính là một kỹthuật thống kê được sử dụng từ lâu và áp dụng dễ dàng cho phần mềm và tínhtoán Các doanh nghiệp sử dụng nó để chuyển đổi dữ liệu thô mọt cách đáng tincậy và có thể dự đoán được thành nghiệp vụ thông minh và thông tin chuyên sâuhữu ích Các nhà khoa học trong nhiều lĩnh vực, bao gồm sinh học và các ngànhkhoa học hành vi, môi trường và xã hội, sử dụng hồi quy tuyến tính để tiến hànhphân tích dữ liệu sơ bộ và dự đoán các xu hướng tương lai Nhiều phương pháp
Trang 11khoa học dữ liệu, chẳng hạn như máy học và trí tuệ nhân tạo, sử dụng hồi quytuyến tính để giải quyết các bài toán phức tạp.
Về bản chất, một kỹ thuật hồi quy tuyến tính đơn giản cố gắng vẽ một đồthị đường giữa hai biến dữ liệu, x và y Là biến độc lập, x được vẽ dọc theo trụchoành Các biến độc lập còn được gọi là biến giải thích hoặc dự báo Biến phụthuộc, y, được vẽ trên trục tung, cũng có thể tham chiếu các giá trị y như cácbiến phản hồi hoặc các biến dự báo
Trong máy học, các chương trình máy tính gọi là thuật toán phân tích cáctập dữ liệu lớn và làm việc ngược từ dữ liệu dods để tính toán phương trình hồiquy tuyến tính Các nhà khoa học dữ liệu đàu tiên sẽ đào tạo thuật toán trên cáctajpap dữ liệu đã biết hoặc được dán nhãn và sau đố sử dụng thuật toán để dựđoán các giá trị chưa biết Dữ liệu thực tế phức tạp hơn so với ví dụ trước Đó là
lý do tại sao phân tích hồi quy tuyến tính phải sửa đổi hoặc biến đổi các giá trị
dữ liệu về mặt toán học để đáp ứng bốn giả định sau đây
Mối quan hệ tuyến tính
Mối quan hệ tuyến tính phải tồn tại giữa các biến độc lập và phụ thuộc
Để xác định mối quan hệ này, các nhà khoa học dữ liệu tạo ra một biểu đồ phântán - một tập hợp ngẫu nhiên các giá trị x và y - để xem liệu chúng có nằm trênmột đường thẳng hay không Nếu không, bạn có rheer áp dụng các hàm phituyến tính như căn bậc hai hoặc log để tạo ra mối quan hệ tuyến tính giữa haibiến về mặt toán học
11
Trang 12lập Bạn có thể sử dụng dữ liệu giả để thay thế bất kỳ dữ liệu biến thiên nào,chẳng hạn như dữ liệu theo mùa.
Tính chuẩn
Các kỹ thuật vẽ đồ thị như các biểu đồ Q-Q xác định xem các phần dư cóphân bố bình thường hay không Các phần dư sẽ nawfmg dọc theo một đườngchéo ở trung tâm của đồ thị Nếu phần dư không được chuẩn hóa, bạn có thểkiểm tra dữ liệu cho các điểm ngoại lai ngẫu nhiên hoặc các giá trị không phải làđiển hình Loại bỏ các điểm ngoại lai hoặc thực hiện phép biến đổi phi tuyếntính có thể khắc phục sự cố
Phương sai không đổi
Phương sai không đổi giả định rằng phần dư có phương sai cố định hoặc
độ lệch chuẩn so với trung bình cho mọi giá trị của x Nếu không, kết quả phântích có thể không chính xác Nếu giả định này chưa được đáp ứng, bạn có thểphải thay đổi biến phụ thuộc Bởi vì phương sai xuất hiện tự nhiên trong các tập
dữ liệu lớn, giải thích được lý do phải thay đổi quy mô của biến phụ thuộc Vídụ: thay vì sử dụng quy mô dân số để dự đoán số trạm cứu hỏa trong một thànhphố, có thể sử dụng kích thước dân số để dự đoán số trạm cứu hỏa trên mỗingười
Trang 13Hình 3 Hồi quy tuyến tính.
2.2 Phân tích toán học
2.2.1 Dạng của Linear Regresstion
Hồi quy tuyến tính có phương trình dạng :
f(x)=w1x1+w2x2+w3x3+w0 (1)Trong đó, w1,w2,w3,w0w1,w2,w3,w0 là các hằng số, w0w0 còn được gọi
là bias Mối quan hệ y≈f(x)y≈f(x) bên trên là một mối quan hệ tuyến tính(linear) Bài toán chúng ta đang làm là một bài toán thuộc loại regression.Bài toán đi tìm các hệ số tối ưu {w1,w2,w3,w0}{w1,w2,w3,w0} chính vìvậy được gọi là bài toán Linear Regression
Trong phương trình phía trên, nếu chúng ta đặt:
w=[w0,w1,w2,w3]T=w=[w0,w1,w2,w3]T= là vector(cột) hệ số cần phải là tối
ưu và x =[1,x1,x2,x3]x=[1,x1,x2,x3] (đọc là x bar trong Tiếng Anh) là vector(hàng) dữ liệu đầu vào mở rộng Số 11 ở đầu được thêm vào để phép tính đơngiản hơn và thuận tiện cho việc tính toán
Khi đó, phương trình có thể được viết lại dưới dạng y≈ w=^y.x
2.2.2 Sai số dự đoán
Chúng ta mong muốn rằng sự sai khác e giữa giá trị thực y và giá trị dựđoán ^y (đọc là y hat trong tiếng Anh) là nhỏ nhất Nói cách khác, chúng tamuốn giá trị sau đây càng nhỏ càng tốt:
13
Trang 14Chính ta cần e^2 vì e=y-y^ có thể là một số âm, việc nói e nhỏ nhất sẽkhông đúng vì khi e=-∞ là rất nhỏ nhưng sự sai lệch là rất lớn.
2.2.3 Hàm mất mát
Điều tương tự xảy ra với tất cả các cặp:
(input, outcome) (xi,yi),I=1,2,…,N(xi,yi),I=1,2,…,N, với NN là số lượng dữ liệu
quan sát được Điều chúng ta muốn, tổng sai số là nhỏ nhất, tương đương vớiviệc tìm ww để hàm số sau đạt giá trị nhỏ nhất:
Hàm số L(w)L(w) được gọi là hàm mất mát (loss function) của bài toánLinear Regression Chúng ta luôn mong muốn rằng sự mất mát (sai số) là nhỏnhất, điều đó đồng nghĩa với việc tìm vector hệ số ww sao cho giá trị của hàmmất mát này càng nhỏ càng tốt Giá trị của ww làm cho hàm mất mát đạt giá trịnhỏ nhất được gọi là điểm tối ưu (optimal point) ký hiệu:
Trước khi đi tìm lời giải, chúng ta đơn giản hóa phép toán trong phươngtrình hàm mất mát (2) Đặt y=[y1;y2;…;yN]y=[y1;y2;…;yN] là một vector cộtchứa tất cả các output của training data; X=[x 1 ; x 2 ; ; x N¿X =[ x 1 ; x 2 ; ; x N] là
ma trận dữ liệu đầu vào (mở rộng) mà mỗi hàng của nó là một điểm dữ liệu Khi
đó hàm số mất mát L(w)L(w) được viết dưới dạng ma trận đơn giản hơn:
Trang 15Với ||z||2||z||2 là Euclidean norm (chuẩn Euclid, hay khoảng cách Euclid),nói cách khác ||z||22||z||22 là tổng của bình phương mỗi phần tử của vector zz.Tới đây, ta đã có một dạng đơn giản của hàm mất mát được viết nhưphương trình (3).
2.2.4 Nghiệm của bài toán Linear Regresstion
Cách phổ biến nhất để tìm nghiệm cho một bài toán tối ưu (chúng ta đãbiết từ khi học cấp 3) là giải phương trình đạo hàm (gradient) bằng 0! Tất nhiên
đó là khi việc tính đạo hàm và việc giải phương trình đạo hàm bằng 0 không quáphức tạp Thật may mắn, với các mô hình tuyến tính, hai việc này là khả thi.Đạo hàm theo ww của hàm mất mát là:
Phương trình đạo hàm bằng 0 tương đương với:
(ký hiệu XTy≜b nghĩa là đặt XTy bằng b)
Nếu ma trận vuông A≜ X T XA≜ XTX khả nghịch (non-singylar hayinvertible) thì phương trình (4) có nghiệm duy nhất w=A-1b
15
Trang 16Với khái niệm giả nghịch đạo, điểm tối ưu của bài toán Linear Regrssion
có dạng:
2.3 Một số dạng hồi quy tuyến tính
2.3.1 Hồi quy tuyến tính đơn giản
Hồi quy tuyến tính đơn giản được định nghĩa bằng hàm tuyến tính: Y=β0*X+β1+ε
β0 và β1 là hai hằng số chưa biết đại diện cho tốc độ hồi quy, trong khi ε(epsilon) là thuật ngữ sai số
Bạn có thể sử dụng hồi quy tuyến tính đơn giản để lập mô hình mối quan
hệ giữa hai biến, chẳng hạn như sau:
Lượng mưa và sản lượng cây trồng
Tuổi và chiều cao ở trẻ em
Nhiệt độ và sự giãn nở của thủy ngân kim loại trong nhiệt kế
2.3.2 Hồi quy tuyến tính bội
Trong phân tích hồi quy tuyến tính bội, tập dữ liệu chứa một biến phụthuộc và nhiều biến độc lập Hàm đường hồi quy tuyến tính thay đổi để bao gồmnhiều yếu tố như sau:
Y=β0*X0 + β1X1 + β2X2 +….βnXn + ε
Khi số lượng biến dự báo tăng lên, các hằng số β cũng tăng lên tương ứngHồi quy tuyến tính bội lập mô hình nhiều biến và tác động của chúng lên mộtkết quả: