Dự báo chuỗi thời gian là một lĩnh vực quan trọng của học máy thường bị bỏ qua. Điều này rất quan trọng vì có rất nhiều vấn đề dự đoán liên quan đến thành phần thời gian. Những vấn đề này bị bỏ qua vì chính thành phần thời gian này làm cho các vấn đề về chuỗi thời gian trở nên khó xử lý hơn.
Có rất nhiều yếu tố liên quan đến dự đoán - yếu tố vật lý so với. hành vi tâm lý, hợp lý và không hợp lý, v.v. Tất cả những khía cạnh này kết hợp với nhau để làm cho giá cổ phiếu biến động và rất khó dự đoán với độ chính xác cao. Sử dụng các tính năng như thông báo mới nhất về một tổ chức, kết quả doanh thu hàng quý của họ, v.v. , các kỹ thuật máy học có khả năng khám phá các mẫu và thông tin chi tiết mà chúng tôi chưa từng thấy trước đây và những kỹ thuật này có thể được sử dụng để đưa ra các dự đoán chính xác tuyệt đối
Hãy đọc dữ liệu để dự đoán giá cổ phiếu. Tìm tập lệnh và dữ liệu tại đây
Có nhiều biến trong tập dữ liệu — ngày, mở, cao, thấp, cuối cùng, đóng, tổng_trade_quantity và doanh thu
- Các cột Mở và Đóng thể hiện giá khởi điểm và giá cuối cùng mà cổ phiếu được giao dịch vào một ngày cụ thể
- Cao, Thấp và Cuối cùng đại diện cho giá tối đa, tối thiểu và cuối cùng của cổ phiếu trong ngày
- Tổng số lượng giao dịch là số lượng cổ phiếu được mua hoặc bán trong ngày và Doanh thu [Lacs] là doanh thu của một công ty cụ thể trên một khoảng thời gian nhất định
Ghi chú. thị trường đóng cửa vào cuối tuần và ngày lễ. Lưu ý bảng trên một lần nữa, một số giá trị ngày bị thiếu
Việc tính toán lãi hoặc lỗ thường được xác định bởi giá đóng cửa của một cổ phiếu trong ngày, do đó chúng tôi sẽ coi giá đóng cửa là biến mục tiêu
Di chuyển trung bình
Giá đóng cửa dự đoán cho mỗi ngày sẽ là giá trị trung bình của một tập hợp các giá trị được quan sát trước đó. Thay vì sử dụng trung bình đơn giản, chúng tôi sẽ sử dụng kỹ thuật trung bình động sử dụng bộ giá trị mới nhất cho mỗi dự đoán. Nói cách khác, đối với mỗi bước tiếp theo, các giá trị dự đoán được xem xét trong khi loại bỏ giá trị quan sát cũ nhất khỏi tập hợp. Đây là một con số đơn giản sẽ giúp bạn hiểu điều này rõ ràng hơn
Bước đầu tiên là tạo một khung dữ liệu chỉ chứa các cột Ngày và Giá đóng, sau đó chia nó thành các bộ đào tạo và xác thực để xác minh dự đoán của chúng tôi
RMSE không giúp chúng tôi hiểu mô hình hoạt động như thế nào. Vì vậy, đây là biểu đồ của các giá trị dự đoán cùng với các giá trị thực tế
Giá trị RMSE gần bằng 105 nhưng kết quả không hứa hẹn lắm [bạn có thể thu thập từ biểu đồ]. Các giá trị dự đoán có cùng phạm vi với các giá trị được quan sát trong tập hợp tàu [ban đầu có xu hướng tăng và sau đó giảm dần]
Trong phần tiếp theo, chúng ta sẽ xem xét hai kỹ thuật máy học thường được sử dụng — Hồi quy tuyến tính và kNN, đồng thời xem chúng hoạt động như thế nào trên dữ liệu thị trường chứng khoán của chúng ta
hồi quy tuyến tínhThuật toán học máy cơ bản nhất có thể được triển khai trên dữ liệu này là hồi quy tuyến tính. chúng tôi không có một tập hợp các biến độc lập. Thay vào đó, chúng tôi chỉ có những ngày tháng. Hãy để chúng tôi sử dụng cột ngày để trích xuất các tính năng như - ngày, tháng, năm, thứ hai/thứ sáu, v.v. và sau đó điều chỉnh mô hình hồi quy tuyến tính
Trước tiên, chúng tôi sẽ sắp xếp tập dữ liệu theo thứ tự tăng dần và sau đó tạo một tập dữ liệu riêng để mọi tính năng mới được tạo không ảnh hưởng đến dữ liệu gốc
Điều này tạo ra các tính năng như
'Năm', 'Tháng', 'Tuần', 'Ngày', 'Ngày của tuần', 'Ngày_của_năm', 'Ngày_cuối_tháng', 'Bắt_đầu_tháng', 'Bắt_đầu_quý', 'Bắt_đầu_quý', 'Cuối_năm' và 'Bắt_đầu_năm'
Ngoài ra, chúng tôi có thể thêm bộ tính năng của riêng mình mà chúng tôi tin rằng sẽ phù hợp với các dự đoán. Chẳng hạn, giả thuyết của tôi là ngày đầu tiên và ngày cuối cùng của tuần có khả năng ảnh hưởng đến giá đóng cửa của cổ phiếu nhiều hơn những ngày khác. Vì vậy, tôi đã tạo một tính năng xác định xem một ngày nhất định là Thứ Hai/Thứ Sáu hay Thứ Ba/Thứ Tư/Thứ Năm
Nếu ngày trong tuần bằng 0 hoặc 4, giá trị cột sẽ là 1, ngược lại là 0. Tương tự, bạn có thể tạo nhiều tính năng. Nếu bạn có một số ý tưởng về các tính năng có thể hữu ích trong việc dự đoán giá cổ phiếu
Giá trị RMSE cao hơn so với kỹ thuật trước đó, điều này cho thấy rõ ràng rằng hồi quy tuyến tính đã hoạt động kém. Hãy xem biểu đồ và hiểu tại sao hồi quy tuyến tính không hoạt động tốt
Một bất lợi trong việc sử dụng các thuật toán hồi quy là mô hình khớp với cột ngày và tháng. Thay vì tính đến các giá trị trước đó từ điểm dự đoán, mô hình sẽ xem xét giá trị từ cùng ngày một tháng trước hoặc cùng ngày/tháng một năm trước
k-Hàng xóm gần nhấtMột thuật toán ML thú vị khác mà người ta có thể sử dụng ở đây là kNN [k hàng xóm gần nhất]. Dựa trên các biến độc lập, kNN tìm ra sự giống nhau giữa các điểm dữ liệu mới và các điểm dữ liệu cũ
Không có sự khác biệt lớn về giá trị RMSE, nhưng biểu đồ cho giá trị dự đoán và giá trị thực tế sẽ mang lại sự hiểu biết rõ ràng hơn
Giá trị RMSE gần giống với mô hình hồi quy tuyến tính và biểu đồ hiển thị cùng một mẫu. Giống như hồi quy tuyến tính, kNN cũng xác định mức giảm vào tháng 1 năm 2018 vì đó là mô hình trong những năm qua. Chúng ta có thể nói rằng các thuật toán hồi quy đã không hoạt động tốt trên bộ dữ liệu này
Kỹ thuật dự báo chuỗi thời gianARIMA tự động
ARIMA là một phương pháp thống kê rất phổ biến để dự báo chuỗi thời gian. Các mô hình ARIMA tính đến các giá trị trong quá khứ để dự đoán các giá trị trong tương lai. Có ba thông số quan trọng trong ARIMA
- p [các giá trị trong quá khứ được sử dụng để dự đoán giá trị tiếp theo]
- q [lỗi dự báo trong quá khứ được sử dụng để dự đoán các giá trị trong tương lai]
- d [thứ tự khác biệt]
Điều chỉnh tham số cho ARIMA tiêu tốn rất nhiều thời gian. Vì vậy, chúng tôi sẽ sử dụng ARIMA tự động để tự động chọn kết hợp tốt nhất của [p,q,d] cung cấp ít lỗi nhất. Để đọc thêm về cách ARIMA tự động hoạt động, hãy tham khảo bài viết này
https. //www. phân tíchvidhya. com/blog/2018/10/predicting-stock-price-machine-learningnd-deep-learning-techniques-python/