MỤC LỤC DANH MỤC HÌNH ẢNH................................................................................... 1 LỜI MỞ ĐẦU...................................................................................................... 3 CHƯƠNG 1: GIỚI THIỆU CHUNG................................................................ 4 1.1. Mục tiêu đề tài. ........................................................................................... 4 1.2. Phạm vi đề tài. ............................................................................................ 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .................................................................. 6 2.1. Mạng nơ-ron hồi quy (Recurrent Neural Networks – RNN). .................... 6 2.2. Mô hình Long Short-Term Memory......................................................... 11 CHƯƠNG 3: TỔNG QUAN VỀ CỔ PHIẾU CỦA CÔNG TY CỔ PHẨN SỮA VIỆT NAM................................................................................... 15 3.1. Giới thiệu tổng quát về Công ty Cổ phần Sữa Việt Nam......................... 15 3.2. Phân tích cổ phiếu của Vinamilk.............................................................. 16 CHƯƠNG 4: XÂY DỰNG MÔ HÌNH LSTM DỰ ĐOÁN GIÁ CỔ PHIẾU ................................................................................................................ 19 4.1. Thu thập dữ liệu........................................................................................ 19 4.2. Ngôn ngữ và môi trường phát triển. ......................................................... 19 4.3. Tiền xử lý dữ liệu...................................................................................... 21 4.4. Phân chia dữ liệu....................................................................................... 24 4.5. Xây dựng mô hình .................................................................................... 28 4.6. Dự đoán giá cổ phiếu của 25% bộ dữ liệu chưa được sử dụng (14/12/2023 – 20/6/2024)................................................................................ 32 CHƯƠNG 5: TỔNG KẾT VÀ ĐÁNH GIÁ.................................................... 35 5.1. Tóm tắt quy trình xây dựng mô hình........................................................ 35 5.2. Đánh giá mô hình...................................................................................... 35 5.3. Tổng kết. ................................................................................................... 36 DANH MỤC TÀI LIỆU THAM KHẢO......................................................... 37
GIỚI THIỆU CHUNG
Mục tiêu đề tài
• Phát triển mô hình LSTM: Xây dựng và phát triển mô hình Long
Short-Term Memory (LSTM) để dự đoán giá cổ phiếu của Công ty
Cổ phần Sữa dựa trên dữ liệu lịch sử
Hình 1.1 Long Short-Term Memory Neural Networks
• Tối ưu hóa độ chính xác dự đoán: Nâng cao độ chính xác của mô hình dự đoán bằng cách điều chỉnh các tham số của mô hình và sử dụng các kỹ thuật tiền xử lý dữ liệu.
• Đánh giá mô hình và kết quả so với thực tế.
Phạm vi đề tài
• Đối tượng nghiên cứu: Giá cổ phiếu của công ty cổ phần sữa, một trong những doanh nghiệp hàng đầu trong ngành công nghiệp sữa tại Việt Nam.
Hình 1.2 Công ty Cổ phần Sữa Vinamilk
Với biến động thị trường bất ổn định như hiện nay thì cổ phiếu, chứng khoáng nói riêng và nề kinh tế nói chung, các xu hướng cũ trong quá khứ đã không còn phù hợp với thị trường hiện tại nếu thu thập dữ liệu trong thời gian dài (> 3 năm), làm ảnh hưởng đến dự đoán (kéo theo các xu hướng cũ) Vì vậy, thu thập dữ liệu trong khoảng 2 năm gần đây (20/6/2022 -> 20/6/2024) là một lựa chọn hợp lý để đảm bảo rằng mô hình dự đoán có thể nắm bắt được các xu hướng ngắn hạn và biến động hiện tại của thị trường.
Dữ liệu được thu thập từ trang web vn.investing.com, là một nền tảng tài chính quốc tế cung cấp các dịch vụ và thông tin liên quan đến thị trường tài chính, chứng khoán, hàng hóa, tiền tệ và nhiều lĩnh vực khác
CƠ SỞ LÝ THUYẾT
Mạng nơ-ron hồi quy (Recurrent Neural Networks – RNN)
Mạng nơ-ron hồi quy (Recurrent Neural Network - RNN) là một loại mạng nơ-ron nhân tạo được thiết kế để xử lý các dữ liệu có tính tuần tự, như chuỗi thời gian hoặc dữ liệu ngôn ngữ tự nhiên Điểm đặc biệt của
RNN là khả năng duy trì thông tin qua các bước thời gian, giúp nó có thể nhớ và xử lý các mối liên hệ trong dữ liệu theo thời gian
Hình 2.1.Recurrent Neural Network - RNN
RNN được tạo thành từ các nơ-ron: các nút xử lý dữ liệu kết hợp cùng nhau để thực hiện các tác vụ phức tạp Các nơ-ron được tổ chức dưới dạng Lớp đầu vào, Lớp đầu ra và Lớp ẩn Lớp đầu vào nhận thông tin để xử lý và Lớp đầu ra cung cấp kết quả Quá trình xử lý dữ liệu, phân tích và dự đoán diễn ra trong Lớp ẩn
Trong đó: x: Đầu vào tại một thời điểm t s: Trạng thái ẩn tại thời điểm t o: Đầu ra tại thời điểm t
U: Trọng số từ đầu vào x đến trạng thái ẩn s
W: Trọng số từ trạng thái ẩn s ở thời điểm trước đó đến trạng thái ẩn s hiện tại
V: Trọng số từ trạng thái ẩn s đến đầu ra o
2.1.3 Lan truyền ngược qua thời gian (Backpropagation Through
Quá trình huấn luyện RNN bao gồm việc sử dụng thuật toán lan truyền ngược qua thời gian (BPTT) để cập nhật các trọng số BPTT tính toán gradient của hàm mất mát qua nhiều bước thời gian và cập nhật trọng số dựa trên các gradient này
Trong BPTT, gradient của hàm mất mát L đối với trọng số W tại mỗi bước thời gian được tính toán như sau:
Lt là hàm mất mát tại thời điểm t
T là tổng số bước thời gian
RNN thường có đặc trưng là kiến trúc một-một: một chuỗi đầu vào được liên kết với một đầu ra Tuy nhiên, ta có thể điều chỉnh linh hoạt thành các cấu hình khác nhau cho các mục đích cụ thể Sau đây là một số loại RNN phổ biến:
• Một – nhiều: Loại RNN này dẫn một đầu vào đến một số đầu ra
Loại này tạo điều kiện cho các ứng dụng ngôn ngữ như chú thích hình ảnh bằng cách tạo một câu từ một từ khóa duy nhất
Hình 2 1 Loại RNN Một - nhiều
• Nhiều – nhiều: Mô hình sử dụng nhiều đầu vào để dự đoán nhiều đầu ra Ví dụ: ta có thể tạo một công cụ dịch ngôn ngữ bằng RNN, với khả năng phân tích câu và cấu trúc chính xác các từ trong một ngôn ngữ khác.
Hình 2 2 Loại RNN Nhiều - nhiều
• Nhiều – một: Một số đầu vào được ánh xạ đến một đầu ra Loại này rất hữu ích trong các ứng dụng như phân tích cảm xúc, trong đó mô hình dự đoán cảm xúc của khách hàng như tích cực, tiêu cực và trung lập từ lời chứng thực đầu vào
Hình 2 3 Loại RNN Nhiều - một
2.1.5 Vấn đề gradient biến mất và gradient bùng nổ
Gradient biến mất xảy ra khi các gradient trở nên rất nhỏ trong quá trình lan truyền ngược, làm cho các trọng số không được cập nhật hiệu quả Điều này đặc biệt phổ biến trong các mạng nơ-ron hồi quy (RNN) và các mô hình sâu khi xử lý các chuỗi thời gian dài hoặc nhiều lớp
Ví dụ, trong một RNN, gradient của hàm mất mát L đối với trọng số W tại thời điểm t có thể được biểu diễn như sau:
Nếu giá trị của nhỏ hơn 1, gradient sẽ giảm dần qua mỗi bước thời gian, dẫn đến gradient rất nhỏ khi truyền ngược qua nhiều bước thời gian Điều này làm cho mô hình khó học được các mối quan hệ dài hạn trong dữ liệu
Gradient bùng nổ xảy ra khi các gradient trở nên rất lớn trong quá trình lan truyền ngược, dẫn đến việc cập nhật trọng số quá mạnh và mô hình trở nên không ổn định Điều này cũng phổ biến trong RNN khi xử lý các chuỗi thời gian dài
Nếu giá trị của lớn hơn 1, gradient sẽ tăng dần qua mỗi bước thời gian, dẫn đến gradient rất lớn khi truyền ngược qua nhiều bước thời gian Điều này có thể làm cho các trọng số của mô hình tăng quá mạnh và làm giảm hiệu quả của quá trình huấn luyện
2.1.6 Các biến thể của RNN
Kiến trúc RNN đặt nền tảng cho các mô hình ML có khả năng xử lý ngôn ngữ Một số biến thể đã xuất hiện dùng chung nguyên tắc lưu giữ bộ nhớ với RNN và cải thiện chức năng ban đầu của RNN Sau đây là một số ví dụ:
• Mạng nơ-ron hồi quy hai chiều: Mạng nơ-ron hồi quy hai chiều (BRNN) xử lý các chuỗi dữ liệu với các lớp tiến và lùi của các nút ẩn Lớp tiến hoạt động tương tự như RNN, lưu trữ đầu vào trước đó ở trạng thái ẩn và sử dụng đầu vào đó để dự đoán đầu ra tiếp theo Trong khi đó, lớp lùi hoạt động theo hướng ngược lại bằng cách lấy cả đầu vào hiện tại và trạng thái ẩn trong tương lai để cập nhật trạng thái ẩn hiện tại Kết hợp cả hai lớp cho phép BRNN cải thiện độ chính xác của dự đoán bằng cách xem xét bối cảnh trong quá khứ và tương lai
• Bộ nhớ dài – ngắn hạn: Bộ nhớ dài-ngắn hạn (LSTM) là một biến thể RNN cho phép mô hình mở rộng dung lượng bộ nhớ để phù hợp với dòng thời gian dài hơn RNN chỉ có thể nhớ đầu vào vừa qua tức thì Nhưng RNN không thể sử dụng đầu vào từ một số chuỗi trước đó để cải thiện dự đoán.
• Các đơn vị hồi quy có cổng (GRU): Đơn vị hồi quy có cổng (GRU) là một RNN cho phép lưu giữ bộ nhớ có chọn lọc Mô hình thêm một bản cập nhật và quên cổng vào lớp ẩn của mô hình, điều này có thể lưu trữ hoặc xóa thông tin trong bộ nhớ.
Mô hình Long Short-Term Memory
Mô hình Long Short-Term Memory (LSTM) là một biến thể của mạng nơ-ron hồi quy (RNN) được thiết kế để giải quyết các vấn đề về gradient biến mất và gradient bùng nổ LSTM có một cấu trúc đặc biệt bao gồm các đơn vị nhớ (memory cells) và các cổng điều khiển (gates) giúp duy trì và điều chỉnh luồng thông tin qua nhiều bước thời gian Cấu trúc cơ bản của 1 đơn vị LSTM bao gồm các thành phần sau:
2.2.1.1.Ô nhớ (Cell State) Ô nhớ là nơi lưu trữ thông tin qua các bước thời gian Nó giống như một "đường cao tốc" thông tin, nơi dữ liệu có thể chạy qua mà không bị thay đổi quá nhiều
2.2.1.2 Các cổng điều khiển (Gates)
Các cổng điều khiển được sử dụng để điều chỉnh luồng thông tin vào và ra khỏi ô nhớ Có ba loại cổng chính trong LSTM:
• Cổng quên (Forget Gate): Quyết định thông tin nào từ ô nhớ cần được quên đi
• Cổng đầu vào (Input Gate): Quyết định thông tin nào từ đầu vào hiện tại sẽ được lưu vào ô nhớ
• Cổng đầu ra (Output Gate): Quyết định thông tin nào từ ô nhớ sẽ được sử dụng để tạo đầu ra của mô hình
1 Đầu vào xt và trạng thái ẩn trước đó s-1 được đưa vào các cổng của LSTM
2 Cổng quên quyết định thông tin nào từ trạng thái tế bào trước đó cần được loại bỏ
3 Cổng đầu vào quyết định thông tin mới nào từ đầu vào hiện tại nên được thêm vào trạng thái tế bào
4 Trạng thái tế bào được cập nhật bằng cách kết hợp thông tin từ cổng quên và cổng đầu vào
5 Cổng đầu ra quyết định phần nào của trạng thái tế bào nên được sử dụng để tạo ra trạng thái ẩn hiện tại
6 Trạng thái ẩn hiện tại st được sử dụng làm đầu vào cho bước thời gian tiếp theo và/hoặc làm đầu ra của LSTM tại thời điểm t
Nhờ vào cấu trúc này, LSTM có thể học và ghi nhớ các mẫu thông tin trong chuỗi thời gian dài hơn so với RNN truyền thống, đồng thời giải quyết vấn đề gradient biến mất và gradient bùng nổ
2.3 Ứng dụng của Long Short-Term Memory
Mạng nơ-ron LSTM (Long Short-Term Memory) là một biến thể của mạng nơ-ron hồi quy (RNN) được thiết kế để giải quyết các vấn đề về gradient biến mất và gradient bùng nổ trong quá trình huấn luyện các chuỗi dài Nhờ vào khả năng ghi nhớ thông tin qua các bước thời gian dài, LSTM đã được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau
2.3.1.Xử lý ngôn ngữ tự nhiên (NLP)
• Dịch máy (Machine Translation): LSTM được sử dụng trong các hệ thống dịch máy để dịch văn bản từ ngôn ngữ này sang ngôn ngữ khác một cách chính xác và mượt mà hơn so với RNN thông thường Các mô hình dịch máy như Google Translate sử dụng LSTM để cải thiện chất lượng dịch thuật
• Nhận diện giọng nói (Speech Recognition): LSTM được áp dụng trong các hệ thống nhận diện giọng nói để chuyển đổi giọng nói thành văn bản Các ứng dụng như Siri, Google Assistant, và Amazon Alexa sử dụng LSTM để hiểu và xử lý giọng nói của người dùng một cách hiệu quả
• Sinh tự động văn bản (Text Generation): LSTM được sử dụng để tạo ra các đoạn văn bản tự động Các mô hình này có thể học phong cách viết của một tác giả và tạo ra các đoạn văn bản mới có cùng phong cách
• Phân tích cảm xúc (Sentiment Analysis): LSTM được sử dụng để phân tích cảm xúc của văn bản, chẳng hạn như đánh giá sản phẩm, phản hồi của khách hàng, hoặc bình luận trên mạng xã hội Các mô hình này có thể phân loại cảm xúc của văn bản thành tích cực, tiêu cực hoặc trung tính
2.3.2 Dự đoán chuỗi thời gian (Time Series Prediction)
• Dự đoán giá cổ phiếu (Stock Price Prediction): LSTM được sử dụng để dự đoán giá cổ phiếu bằng cách phân tích dữ liệu lịch sử của giá cổ phiếu Các mô hình này có thể dự đoán xu hướng giá cổ phiếu trong tương lai dựa trên các dữ liệu thời gian trước đó
• Dự báo nhu cầu (Demand Forecasting): LSTM được sử dụng để dự báo nhu cầu sản phẩm trong các lĩnh vực như bán lẻ, sản xuất, và logistics Các mô hình LSTM có thể dự đoán nhu cầu sản phẩm dựa trên dữ liệu lịch sử, giúp doanh nghiệp quản lý kho hàng và lên kế hoạch sản xuất hiệu quả
• Dự báo thời tiết (Weather Forecasting): LSTM được áp dụng trong các hệ thống dự báo thời tiết để phân tích dữ liệu thời tiết lịch sử và dự đoán điều kiện thời tiết trong tương lai Mô hình LSTM có thể dự đoán nhiệt độ, lượng mưa và các điều kiện thời tiết khác
2.3.2 Phân tích chuỗi DNA/RNA
LSTM được sử dụng trong sinh học tính toán để phân tích các chuỗi DNA và RNA Các mô hình LSTM có thể dự đoán các mẫu sinh học, phát hiện các đoạn gen quan trọng và phân tích các tương tác gen
2.3.4 Hệ thống khuyến nghị (Recommendation Systems)
LSTM được áp dụng trong các hệ thống khuyến nghị để đề xuất sản phẩm, phim hoặc âm nhạc cho người dùng dựa trên lịch sử tương tác của họ Các nền tảng như Netflix, Spotify và Amazon sử dụng LSTM để phân tích sở thích của người dùng và đề xuất nội dung phù hợp
2.3.5 Phát hiện bất thường (Anomaly Detection)
LSTM được sử dụng để phát hiện các bất thường trong các chuỗi thời gian, chẳng hạn như phát hiện gian lận trong giao dịch tài chính, phát hiện sự cố trong hệ thống công nghiệp hoặc phát hiện các dấu hiệu bất thường trong dữ liệu y tế
2.3.6 Robot và hệ thống tự động
LSTM được áp dụng trong các hệ thống robot và tự động hóa để điều khiển và điều phối các hành động dựa trên dữ liệu thời gian thực Các hệ thống này có thể sử dụng LSTM để phân tích dữ liệu cảm biến và ra quyết định hành động phù hợp
2.3.7 Hệ thống kiểm tra chính tả và ngữ pháp
TỔNG QUAN VỀ CỔ PHIẾU CỦA CÔNG TY CỔ PHẨN SỮA VIỆT NAM
Giới thiệu tổng quát về Công ty Cổ phần Sữa Việt Nam
Công ty Cổ phần Sữa Việt Nam (tiếng Anh: Vietnam Dairy Products Joint Stock Company), thường được biết đến với thương hiệu Vinamilk, là một công ty sản xuất, kinh doanh sữa và sản phẩm từ sữa cũng như các thiết bị máy móc liên quan tại Việt Nam
2 Lịch sử hình thành và phát triển:
• 1976: Vinamilk được thành lập với tên gọi ban đầu là Công ty Sữa -
Cà phê Miền Nam, thuộc Bộ Công nghiệp Thực phẩm
• 1992: Công ty đổi tên thành Công ty Sữa Việt Nam (Vinamilk)
• 2003: Vinamilk chính thức chuyển đổi sang mô hình công ty cổ phần và niêm yết trên Sở Giao dịch Chứng khoán TP Hồ Chí Minh (HOSE) với mã chứng khoán VNM
• 2000s – nay: Vinamilk mở rộng quy mô sản xuất, đầu tư vào công nghệ hiện đại, phát triển đa dạng sản phẩm và mở rộng thị trường xuất khẩu
3 Sản phẩm và dịch vụ:
Vinamilk cung cấp một loạt các sản phẩm đa dạng bao gồm:
- Sữa tươi và sữa tiệt trùng
- Sữa bột cho trẻ em và người lớn
- Phô mai và các sản phẩm từ sữa khác
- Nước giải khát và nước ép trái cây
4 Thị trường và xuất khẩu:
Vinamilk không chỉ phục vụ thị trường trong nước mà còn xuất khẩu sản phẩm sang hơn 50 quốc gia trên thế giới, bao gồm các thị trường khó tính như Mỹ, Nhật Bản, Australia, và các nước thuộc khu vực Trung Đông
5 Nhà máy và công nghệ:
Vinamilk hiện sở hữu hệ thống nhà máy sản xuất sữa hiện đại trải dài khắp Việt Nam và một số nhà máy tại nước ngoài Công ty chú trọng đầu tư vào công nghệ tiên tiến nhằm đảm bảo chất lượng sản phẩm cao nhất
Vinamilk hướng đến mục tiêu trở thành một trong 50 công ty sữa lớn nhất thế giới vào năm 2030 Công ty liên tục tìm kiếm cơ hội mở rộng thị trường quốc tế, nâng cao chất lượng sản phẩm và phát triển bền vững
7 Thành tựu và giải thưởng:
Vinamilk đã đạt được nhiều thành tựu và giải thưởng quan trọng như:
- Top 10 thương hiệu mạnh Việt Nam
- Giải thưởng chất lượng quốc gia
- Nhiều giải thưởng về xuất khẩu và chất lượng sản phẩm tại các thị trường quốc tế.
Phân tích cổ phiếu của Vinamilk
Hình 3 1 Biểu đồ giá cổ phiếu Vinamilk
Cổ phiếu của Công ty Cổ phần Sữa Việt Nam (Vinamilk) được niêm yết trên Sở Giao dịch Chứng khoán TP Hồ Chí Minh với mã chứng khoán VNM Cổ phiếu này đã có sự tăng trưởng đáng kể qua các năm, phản ánh sự phát triển và mở rộng của công ty
2 Biểu Đồ Giá Cổ Phiếu:
• Giai đoạn 2006 - 2015: Trong giai đoạn này, giá cổ phiếu của Vinamilk có xu hướng tăng trưởng ổn định Đầu tư vào các năm này mang lại lợi nhuận tốt cho nhà đầu tư
• Giai đoạn 2016 - 2020: Giá cổ phiếu tăng mạnh, đạt đỉnh cao vào khoảng năm 2019 Điều này có thể liên quan đến việc Vinamilk mở rộng thị trường và tăng cường xuất khẩu, cũng như các chiến lược kinh doanh hiệu quả
• Giai đoạn 2021 - 2023: Giá cổ phiếu có sự biến động nhưng không đạt lại đỉnh cao như giai đoạn trước Các yếu tố như thị trường cạnh tranh, chi phí đầu vào tăng và các yếu tố vĩ mô khác có thể ảnh hưởng đến giá cổ phiếu trong giai đoạn này
Khối lượng giao dịch cho thấy sự quan tâm của nhà đầu tư đối với cổ phiếu VNM Khối lượng giao dịch cao trong các giai đoạn giá tăng mạnh cho thấy sự hấp dẫn của cổ phiếu này
Khối lượng giao dịch thấp hoặc biến động cho thấy sự thận trọng của nhà đầu tư trong những giai đoạn không ổn định
Các điểm đánh dấu “S” trên biểu đồ: Những điểm này thường đại diện cho sự kiện quan trọng là chia cổ tức, phát hành cổ phiếu mới, hoặc các sự kiện tài chính quan trọng khác Nhà đầu tư cần lưu ý các sự kiện này vì chúng có thể ảnh hưởng đến giá cổ phiếu
XÂY DỰNG MÔ HÌNH LSTM DỰ ĐOÁN GIÁ CỔ PHIẾU
Thu thập dữ liệu
Với biến động thị trường bất ổn định như hiện nay thì cổ phiếu, chứng khoáng nói riêng và nề kinh tế nói chung, các xu hướng cũ trong quá khứ đã không còn phù hợp với thị trường hiện tại nếu thu thập dữ liệu trong thời gian dài (> 3 năm), làm ảnh hưởng đến dự đoán (kéo theo các xu hướng cũ) Vì vậy, thu thập dữ liệu trong khoảng 2 năm gần đây (20/6/2022 -> 20/6/2024) là một lựa chọn hợp lý để đảm bảo rằng mô hình dự đoán có thể nắm bắt được các xu hướng ngắn hạn và biến động hiện tại của thị trường
Dữ liệu được thu thập từ trang web vn.investing.com, là một nền tảng tài chính quốc tế cung cấp các dịch vụ và thông tin liên quan đến thị trường tài chính, chứng khoán, hàng hóa, tiền tệ và nhiều lĩnh vực khác
+ Lần cuối: Giá cuối cùng (giá đóng cửa) của cổ phiếu trong ngày giao dịch đó
+ Mở: Giá mở cửa của cổ phiếu trong ngày giao dịch đó
+ Cao: Giá cao nhất của cổ phiếu trong ngày giao dịch đó
+ Thấp: Giá thấp nhất của cổ phiếu trong ngày giao dịch đó
+ KL: Khối lượng giao dịch của cổ phiếu trong ngày giao dịch đó + % Thay đổi: Phần trăm thay đổi của giá cổ phiếu so với ngày giao dịch trước đó.
Ngôn ngữ và môi trường phát triển
Python là một ngôn ngữ lập trình mạnh mẽ và phổ biến được sử dụng rộng rãi trong việc xây dựng các mô hình máy học Python cung cấp nhiều thư viện và công cụ hỗ trợ phát triển các ứng dụng máy học, từ tiền xử lý dữ liệu đến xây dựng, huấn luyện và triển khai mô hình dễ dàng
• Công cụ và mô trường nghiên cứu phát triển: VS Code
- Hỗ trợ nhiều ngôn ngữ như python và R, hai ngôn ngữ phổ biến nhất trong lĩnh vực máy học
- Hỗ trợ chạy và hiển thị Jupyter notebooks trực tiếp
Tiền xử lý dữ liệu
Các thư viện sử dụng chính:
Hình 4 1 Thư viện xử lý dữ liệu
Kiểm tra kiểu dữ liệu:
Hình 4 2 Kiểm tra kiểu dữ liệu
Kiểm tra 10 dòng đầu để thấy được tổng quan dữ liệu:
Hình 4 3 Kiểm tra 10 dòng đầu của bộ dữ liệu
=> Cần chỉnh lại các kiểu dữ liệu :
Lần cuối, Mở, Cao, Thấp, % Thay đổi: Float
KL : Int (Cần chuyển đổi khối lượng giao dịch từ dạng chuỗi có hậu tố sang số nguyên)
4.3.2 Xử lý dữ liệu và kiểm tra lại
Cần chuyển đổi các hậu tố sang kiểu phù hợp
Chuyển đổi về số thập phân
Hình 4 4 Xử lý dữ liệu
Kiểu dữ liệu của các thuộc tính đã đc thay đổi
Hình 4 5 Kiểm tra lại kiểu dữ liệu
Kiểm tra lại dữ liệu:
Hình 4 6 Kiểm tra lại 10 dòng đầu của bộ dữ liệu
=> Dữ liệu đã thích hợp để áp dụng cho mô hình.
Phân chia dữ liệu
4.4.1 Chọn các thuộc tính cần sử dụng
Ta sử dụng index để chọn ra 2 thuộc tính cần sử dụng để áp dụng cho mô hình, cũng một phần giúp truy xuất dữ liệu nhanh hơn
Hình 4 7 Index chọn thuộc tính cần sử dụng
Có các thuộc tính biểu thị về giá trị như Mở (Open), Lần Cuối (Close), Cao (High), và Thấp (Low), nhưng khi dự đoán giá cổ phiếu, thuộc tính Lần
Cuối (Close) là thuộc tính được chọn để áp dụng cho mô hình Lý do chính là:
- Giá đã thống nhất vào thời điêm đó, dựa trên thông tin mua và hoạt động mua bán trong ngày
- Giá Lần Cuối ít bị ảnh hưởng bởi những biến động ngắn hạn trong ngày so với Giá Mở, Cao và Thấp Nó thường là giá mà các báo cáo và phân tích tài chính sử dụng
- Giá Lần Cuối có ảnh hưởng đến chiến lược giao dịch của nhà đầu tư cho ngày tiếp theo Nếu giá đóng cửa cao hơn giá mở cửa, có thể có xu hướng tăng giá vào ngày hôm sau và ngược lại
Với ý tưởng là sẽ chỉ sử dụng 75% của bộ dữ liệu để train và test mô hình, và sử dụng mô hình để đoán 25% còn lại Sau khi dự đoán, ta lấy 25% dữ liệu chưa được sử dụng trong mô hình để kiểm chứng độ chính xác của mô hình
Lấy dữ liệu từ index trước đó để chia dữ liệu
Hình 4 9 Kiểm tra dữ liệu đã chia
Kết quả từ bộ dữ liệu với thời gian từ 20/6/2022 tới 20/6/2024 thì bây giờ chỉ còn từ 20/6/2022 tới 1/12/2023 Tức là ~75% bộ dữ liệu ban đầu với
4.4.3 Phân chia dữ liệu train, test
Chia dữ liệu thành 2 tập train và test với train là 300 dòng dữ liệu đầu và test là phần còn lại
Hình 4 11 Chuẩn hóa dữ liệu
Chuẩn hóa dữ liệu giúp đưa các giá trị về cùng một phạm vi để mô hình có thể hiệu quả hơn trong việc học và dự đoán Trong trường hợp này,
MinMaxScaler được sử dụng để chuyển đổi giá cổ phiếu về khoảng từ 0
27 đến 1 trước khi đưa vào mô hình LSTM Điều này giúp cải thiện tính ổn định và hiệu suất của mô hình dự đoán Đặt biến a để dễ điều chỉnh chỉ số khi điều chỉnh mô hình
Mô hình LSTM yêu cầu đầu vào là các chuỗi liên tục để có thể học được các mẫu thời gian Do đó,cần tạo ra các chuỗi liên tục từ dữ liệu lịch sử, tạo ra các chuỗi liên tục dài a ngày
Cụ thể, vòng lặp tác dụng:
- Nếu a = 100 và dữ liệu lịch sử có độ dài n, thì
- Từ ngày 1 đến ngày 100 tạo thành một chuỗi và ngày 101 là giá trị cần dự đoán
- Từ ngày 2 đến ngày 101 tạo thành một chuỗi khác và ngày 102 là giá trị cần dự đoán
- Tiếp tục như vậy cho đến khi đạt đến cuối bộ dữ liệu
Hình 4 14 Xắp sếp dữ liệu thành các mảng
- Sau khi thu thập dữ liệu trong vòng lặp, x_train và y_train được chuyển đổi thành các numpy array
- x_train được reshape từ mảng 2 chiều thành tensor 3 chiều (số mẫu, số thời điểm quan sát, số đặc trưng), trong đó số mẫu là số lượng mẫu dữ liệu huấn luyện, số thời điểm quan sát là 100 (do đã chọn lấy 100 ngày liền kề), và số đặc trưng là 1 (do chỉ sử dụng giá đóng cửa làm đặc trưng)
- y_train được reshape thành mảng 2 chiều (số mẫu, 1), mỗi hàng chứa một giá trị giá cổ phiếu tương ứng với mỗi mẫu trong x_train.
Xây dựng mô hình
Hình 4 15 Các thư viện xây dựng mô hình
Hình 4 16 Xây dựng mô hình
Khởi tạo mô hình Sequential để xây dựng các lớp theo thứ tự (phù hợp cho mô hình có chuỗi thời gian như dư đoán giá cổ phiếu
- Tạo các lớp LSTM có 128 đơn vị để học và ghi nhớ các chuỗi thời gian dài và 64 đơn vị tiếp tục học từ các mẫu đã đc lớp 128 đơn vị trích xuất
- Sử dụng Dropout để loại bỏ ngẫu nhiên 15% (có thể điều chỉnh cho phù hợp) để giảm overfitting
- Sau khi qua các lớp LSTM, thông thường ta cần dùng Dense để giảm số chiều về kết quả cuối cùng mong đợi (ở đây dense là 1 vì chỉ dự đoán 1 thuộc tính là “Lần cuối”)
- Đánh giá lỗi dựa trên sai số tuyệt đối trung bình ('mean_absolute_error') và sử dụng thuật toán tối ưu adam để cải thiện quá trình học (optimizer='adam')
Hình 4 17 Huấn luyện mô hình
- Mô hình sẽ được lưu vào thư mục "D:\TÀI LIỆU HỌC TẬP\Đề Tài Tốt Nghiệp" với tên tệp là "save_model.keras" Sau đó, đo lường để theo dõi và quyết định mô hình nào là tốt nhất để lưu lại Trong trường hợp này, mô hình sẽ theo dõi giá trị mất mát (loss) và chỉ lưu lại mô hình tốt nhất dựa trên giá trị được theo dõi (trong trường hợp này là loss) Nếu được đặt thành True, mô hình sẽ chỉ lưu lại khi giá trị giảm
- Huấn luyện mô hình với dữ liệu huấn luyện và các tham số cấu hình có thể tùy chỉnh như epochs0 (Số lượng lần lặp lại để huấn luyện mô hình trên toàn bộ dữ liệu), batch_size=a(100) (Số lượng mẫu dữ liệu được sử dụng trong mỗi lần cập nhật gradient)
Hình 4 18 Dự đoán giá train
Hình 4 19 Dự đoán giá test
Xây dựng biểu đồ thể hiện giá dự đoán của train và test trên dữ liệu thực tế
Hình 4 20 Xây dựng biểu đồ dự đoán của train và test
Hình 4 21.Kết quả của dữ liệu được dự đoán của train và test trên dữ liệu thực tế.
Hình 4 22 Các thư viện dùng để đánh giá độ phù hợp của mô hình Đánh giá sai số, độ phù hợp… của mô hình
Hình 4 23 Độ phù hợp, sai số… của dữ liệu dự đoán với dữ liệu thực tế.
Dự đoán giá cổ phiếu của 25% bộ dữ liệu chưa được sử dụng (14/12/2023 – 20/6/2024)
Chuẩn bị dữ liệu và mô hình đã huấn luyện cho việc dự đoán
Hình 4 24.Chuẩn bị dữ liệu và mô hình đã huấn luyện cho việc dự đoán
Hình 4 25 Dự đoán giá cổ phiếu đến ngày 20/6/2024
- Bỏ qua ngày thứ 2 và thứ 3 trong tuần vì 2 ngày đó không có các cuộc giao dịch, giảm thiểu sai số khi dự đoán
- Chuyển đổi dữ liệu thành mảng và áp dụng mô hình đã huấn luyện để dự đoán
- Cập nhật dữ liệu bằng cách cắt bớt dữ liệu cũ bằng cách loại bỏ phần tử đầu tiên (scaled_last_a_days[1]) và thêm predicted_price vào cuối mảng
- Sau khi đã cập nhật dữ liệu mới vào scaled_last_a_days, dòng scaled_last_a_days = scaled_last_a_days.reshape(-1, 1) thực hiện reshape lại thành một mảng 2 chiều với một cột Điều này đảm bảo rằng dữ liệu sẽ có định dạng phù hợp để tiếp tục sử dụng trong các vòng lặp tiếp theo của quá trình dự đoán
Chuyển đổi giá trị dự đoán từ dạng chuẩn hóa về đơn vị ban đầu của giá chứng khoán
Hình 4 26 Chuyển đổi giá trị dự đoán
Hiển thị kết quả dự đoán
Hình 4 27 Xây dựng biểu đồ dự đoán
Hình 4 28 Biểu đồ dự đoán tới ngày 20/6/2024
Xây dựng biểu đồ so sánh kết quả dự đoán với dữ liệu thực tế
Hình 4 29 Xây dựng biểu đồ so sánh
Kết quả dự đoán so sánh với dữ liệu thực tế
Hình 4 30 Biểu đồ so sánh của kết quả dự đoán với dữ liệu thực tế
TỔNG KẾT VÀ ĐÁNH GIÁ
Tóm tắt quy trình xây dựng mô hình
Trong chương này, chúng ta đã tiến hành xây dựng mô hình LSTM để dự đoán giá cổ phiếu dựa trên dữ liệu thu thập từ trang web vn.investing.com trong khoảng thời gian từ 20/6/2022 đến 20/6/2024 Các bước thực hiện bao gồm thu thập và tiền xử lý dữ liệu, phân chia dữ liệu thành các tập huấn luyện và kiểm tra, xây dựng và huấn luyện mô hình LSTM, sau đó sử dụng mô hình này để dự đoán giá cổ phiếu.
Đánh giá mô hình
• Khả năng bắt kịp xu hướng:
1 Mô hình LSTM đã dự đoán được một xu hướng tăng giá nhẹ sau khoảng giữa năm 2023, nhưng sau đó lại có xu hướng giảm
2 Xu hướng chung của mô hình dự đoán tương đối phù hợp với xu hướng thực tế, nhưng không bắt được các biến động mạnh và đột ngột
• Độ chính xác của dự đoán:
1 Mô hình có xu hướng làm mịn dữ liệu, điều này thể hiện qua việc đường dự đoán ít biến động hơn so với giá thực tế
2 Đường dự đoán không hoàn toàn khớp với các giá trị thực tế, đặc biệt là trong các giai đoạn giá cổ phiếu biến động mạnh
- Mô hình có khả năng dự đoán xu hướng dài hạn nhưng còn hạn chế trong việc dự đoán các biến động ngắn hạn
- Việc mô hình làm mịn dữ liệu giúp giảm nhiễu nhưng cũng làm mất đi các chi tiết quan trọng của biến động giá
Tổng kết
Sau khi phân tích cổ phiếu và xây dựng mô hình, ta đã hiểu rõ hơn về quy trình hoạt động của RNN và biến thể của nó là LSTM Một trong những vấn đề chính của RNN là hiện tượng gradient biến mất hoặc gradient bùng nổ, điều này khiến cho mô hình khó khăn trong việc học các chuỗi dữ liệu dài LSTM đã giải quyết vấn đề này bằng cách sử dụng các cổng (gates) để kiểm soát luồng thông tin và duy trì trạng thái dài hạn, giúp mô hình học được các quan hệ dài hạn trong dữ liệu
Sau cùng, nghiên cứu này đã chứng minh rằng mô hình LSTM là một công cụ hiệu quả và mạnh mẽ trong việc dự đoán giá cổ phiếu Tuy còn nhiều sai số như chưa thể dự đoán được các biến động ngắn hạn nhưng nhìn chung đã dự đoán được xu hướng tăng giảm trong tương lai.