Dự đoán thị trường chứng khoán bằng SVM Python

Trí tuệ nhân tạo (AI) ở khắp mọi nơi. Machine Learning và AI đang cách mạng hóa hoàn toàn cách giải quyết các vấn đề hiện đại. Một trong những cách hay để áp dụng Machine Learning là sử dụng dữ liệu tài chính. Dữ liệu tài chính là sân chơi cho Machine Learning

Trong dự án này, tôi phân tích giá cổ phiếu đóng cửa của Tesla bằng cách sử dụng Hồi quy vectơ hỗ trợ với sci-kit-learning và LSTM bằng Keras. Đây là dự án Machine Learning thứ hai của tôi và tôi đã tiếp tục tìm hiểu một lượng lớn thông tin về Machine Learning và Data Science. Nếu bạn thích điều này, hãy xem dự án khác của tôi, nơi tôi đã tạo Mạng thần kinh chuyển đổi để nhận dạng hình ảnh của Nicolas Cage

Khi phân tích dữ liệu tài chính bằng các kỹ thuật như LSTM và các thuật toán khác, điều quan trọng cần lưu ý là đây không phải là những kết quả được đảm bảo. Thị trường chứng khoán vô cùng khó lường và thay đổi nhanh chóng. Đây chỉ là một dự án thú vị để tìm hiểu một số kỹ thuật cơ bản trong phân tích chứng khoán bằng cách sử dụng mạng lưới thần kinh. Đây không phải là một bài báo tuyên bố rằng công nghệ này sẽ giúp bạn kiếm được hàng triệu đô la bởi vì nó hoàn toàn không

Mục lục

  1. Lấy dữ liệu của chúng tôi
  • nhập khẩu
  • Tìm nạp dữ liệu chứng khoán
  • Sửa dữ liệu của chúng tôi

2. Trực quan hóa dữ liệu của chúng tôi

  • Vẽ sơ đồ dữ liệu của chúng tôi
  • trung bình lăn

3. Hỗ trợ hồi quy véc tơ

  • Chuyển đổi ngày tháng
  • hồi quy tuyến tính
  • Hỗ trợ máy Vector
  • Hướng dẫn hỗ trợ hồi quy Vector
  • Mã SVR sử dụng sklearn và hiển thị hạt nhân

4. Học kĩ càng

  • Chuẩn hóa và chuẩn bị dữ liệu của chúng tôi cho mạng lưới thần kinh
  • Mạng thần kinh tái phát
  • hướng dẫn LSTM
  • Rơi ra ngoài
  • Mã cho mô hình của chúng tôi

5. Kết quả

  • Vẽ sơ đồ mất mô hình
  • Đưa ra dự đoán
  • Phần kết luận
  • Tài nguyên

nhập khẩu

Ở đây chúng tôi nhập khẩu

  • Máy ảnh để tạo mạng lưới thần kinh của chúng tôi
  • trình đọc pandas và pandas_data để lấy và phân tích dữ liệu chứng khoán của chúng tôi
  • datetime để sửa ngày chứng khoán của chúng tôi để phân tích dữ liệu
  • numpy để định hình lại dữ liệu của chúng tôi để đưa vào mạng lưới thần kinh của chúng tôi
  • matplotlib để vẽ và trực quan hóa dữ liệu của chúng tôi
  • cảnh báo để bỏ qua bất kỳ cảnh báo không mong muốn nào bật lên

Lấy dữ liệu chứng khoán của chúng tôi

  • Mã này thay đổi kiểu cốt truyện của chúng tôi thành ggplot. Tôi đã đổi kiểu thành ggplot vì tôi thích giao diện của nó hơn. Đọc thêm về ggplot tại đây
  • Sau đó, chúng tôi sử dụng pandas_datareader làm 'web' để lấy dữ liệu giá cổ phiếu của mình bằng chức năng DataReader lấy dữ liệu tài chính và lưu trữ trong khung dữ liệu gấu trúc
  • Chúng tôi lấy dữ liệu chứng khoán Tesla từ năm 2014–2018 để huấn luyện mô hình của mình trên
  • Chúng tôi lấy dữ liệu chứng khoán Tesla từ năm 2019 đến ngày hiện tại để mô hình của chúng tôi đưa ra dự đoán về
  • “TSLA” là mã chứng khoán của Tesla và chúng tôi chỉ định 'yahoo' để lấy dữ liệu bằng API tài chính của Yahoo

Sửa dữ liệu của chúng tôi

  • Vì chúng tôi đang thực hiện dự đoán chuỗi thời gian nên chúng tôi muốn dữ liệu của mình tuần tự. Chúng tôi sắp xếp dữ liệu đào tạo và kiểm tra theo ngày
  • Sau đó, chúng tôi đặt lại chỉ mục và đặt chỉ mục cho khung dữ liệu của chúng tôi để đảm bảo ngày giá cổ phiếu của chúng tôi là một cột trong khung dữ liệu của chúng tôi

Vẽ dữ liệu của chúng tôi và lăn có nghĩa là

Giá cổ phiếu Tesla đóng cửa năm 2014–2018

Ý nghĩa lăn được vẽ trên dữ liệu của chúng tôi
  • Chúng tôi nhận được giá đóng cửa đã điều chỉnh từ khung dữ liệu của mình và chúng tôi vẽ giá trị trung bình trên dữ liệu của mình
  • Trung bình lăn còn được gọi là trung bình động. Đường trung bình động giúp chúng ta làm mịn dữ liệu có nhiều biến động và giúp chúng ta thấy rõ hơn xu hướng dài hạn của dữ liệu
  • Với đường trung bình động, bạn có thể xác định khoảng thời gian bạn muốn lấy mức trung bình được gọi là cửa sổ của chúng tôi. Chúng tôi xác định cửa sổ trung bình động của chúng tôi là 100. Chúng tôi xác định 100 vì chúng tôi muốn xem đường trung bình động trong thời gian dài trong dữ liệu của mình

toán học

  • Cách thức hoạt động của đường trung bình động là tính tổng giá của 100 ngày liên tiếp và chia cho 100 để có giá trị trung bình. Sau đó, chúng tôi di chuyển cửa sổ của chúng tôi sang bên phải một. Vì vậy, chúng tôi giảm giá đầu tiên và thêm một mức giá mới vào cuối
  • Một cách khác để nghĩ về ý nghĩa cuộn là coi nó như một mảng gồm 100 giá. Chúng tôi tổng hợp tất cả các yếu tố và chia cho 100 để có được giá trị trung bình của chúng tôi. Sau đó, chúng tôi loại bỏ phần tử tại a[0] nối một mức giá khác vào cuối mảng. Sau đó, chúng tôi tính tổng lại tất cả các yếu tố rồi chia cho 100 để có điểm trung bình tiếp theo

Chuyển đổi ngày

  • Ở đây, chúng tôi tạo một bản sao của khung dữ liệu của mình và gọi nó là date_df. Chúng tôi lưu trữ ngày ban đầu của mình trong org_dates. Chúng tôi sẽ sử dụng org_dates sau để vẽ các dự đoán và ngày của chúng tôi
  • Sau đó, chúng tôi chuyển đổi ngày date_df thành số nguyên bằng cách sử dụng mdates. ngày2num. Chúng tôi cần ngày ở dạng số nguyên vì bạn không thể nạp ngày vào Máy vectơ hỗ trợ và mạng thần kinh

hồi quy tuyến tính

  • Hồi quy tuyến tính là một cách để tìm mối quan hệ tuyến tính tốt nhất hoặc đường phù hợp nhất giữa hai biến
  • Với một dòng phù hợp nhất với một biến phụ thuộc (x), chúng ta có thể dự đoán biến độc lập (y) của mình
  • Mục tiêu của hồi quy tuyến tính là tìm ra đường phù hợp nhất cho dữ liệu của chúng tôi, điều này sẽ dẫn đến giá trị y được dự đoán gần với giá trị y đã biết mà chúng tôi cung cấp cho nó
  • Phương trình hồi quy tuyến tính là Y = A + B * X, trong đó X là giá trị dự đoán, Y là giá trị dự đoán được tính toán từ A, B và X, B là hệ số và A là giao điểm chặn, cả hai đều là giá trị ước tính từ
  • Cũng là một hình ảnh hữu ích về hồi quy tuyến tính trông như thế nào về mặt đồ họa

Hình ảnh qua Wikipedia
Miễn phí cho mục đích thương mại theo giấy phép Wikipedia commons
nguồn
  • Vì vậy, hồi quy cố gắng tìm hiểu các giá trị A và B tốt nhất cho dữ liệu của chúng tôi bằng cách giảm thiểu hàm chi phí. Hàm chi phí thường được sử dụng cho hồi quy tuyến tính là lỗi bình phương trung bình (MSE). Dưới đây là phương trình cho MSE

Hình ảnh qua Wikipedia miễn phí cho mục đích thương mại theo Nguồn giấy phép Creative Commons Ghi công-Chia sẻ tương tự
  • Vì vậy, trong trường hợp của chúng tôi, chúng tôi sẽ cố gắng tìm một đường phù hợp nhất giữa ngày tháng và giá cổ phiếu của chúng tôi. Vì dữ liệu của chúng tôi có quá nhiều biến động nên không có đường nào phù hợp nhất có thể được sử dụng với hồi quy tuyến tính để mang lại cho chúng tôi độ chính xác cao về dự đoán chứng khoán. Vì vậy, chỉ sử dụng hồi quy tuyến tính sẽ không chính xác trong trường hợp của chúng tôi. Dữ liệu có mối quan hệ tuyến tính như dự đoán giá nhà dựa trên độ lớn của ngôi nhà sẽ là một ví dụ về dữ liệu tuyến tính

Hỗ trợ máy Vector

  • Máy Vector hỗ trợ (SVM) được sử dụng để phân loại. Mục tiêu của SVM là xác định đường ranh giới giữa 2 lớp trên biểu đồ. Chúng ta có thể coi điều này là “tách” dữ liệu theo cách tốt nhất có thể. Đường biên này gọi là siêu phẳng
  • Siêu phẳng trong SVM có "lề" hoặc khoảng cách giữa 2 lớp. 2 dòng tạo nên lề này là khoảng cách từ siêu phẳng đến ví dụ dữ liệu gần nhất trong mỗi lớp. Những đường này được gọi là đường ranh giới
  • Sau khi quá trình phân tách hoàn tất, một SVM có thể dự đoán một điểm dữ liệu đơn lẻ sẽ thuộc về lớp nào dựa trên vị trí của nó trên biểu đồ. Dưới đây là một biểu đồ hữu ích để giúp hình dung

Hình ảnh qua Wikipedia miễn phí cho mục đích thương mại theo Giấy phép Creative Commons Ghi công-Chia sẻ tương tự
  • Như bạn có thể thấy, chúng ta có siêu phẳng tối ưu ở giữa và sau đó là hai đường chấm chấm làm đường biên đi qua điểm dữ liệu gần nhất trong mỗi lớp
  • Khi xác định các đường ranh giới với SVM, chúng tôi muốn lề là khoảng cách rộng nhất có thể giữa 2 lớp. Điều này sẽ giúp SVM khái quát hóa khi thấy dữ liệu mới cần phân loại

Hướng dẫn hỗ trợ hồi quy Vector

  • Bây giờ chúng ta đã hiểu cơ bản về Hồi quy tuyến tính và SVM, Hồi quy vectơ hỗ trợ (SVR) là sự kết hợp giữa Máy vectơ hỗ trợ và Hồi quy
  • Hồi quy tuyến tính sẽ không hoạt động trên dữ liệu của chúng tôi vì dữ liệu của chúng tôi có nhiều biến động và một đường tuyến tính phù hợp nhất sẽ đưa ra dự đoán kém về dữ liệu chứng khoán. Một SVM sẽ không hoạt động trên dữ liệu của chúng tôi vì chúng tôi không phân loại giữa hai lớp khác nhau
  • Với dữ liệu chứng khoán, chúng tôi không dự đoán một loại, chúng tôi đang dự đoán giá trị tiếp theo trong một chuỗi
  • Sử dụng hồi quy, chúng tôi cố gắng giảm thiểu hàm chi phí bằng cách sử dụng thứ gì đó như giảm dần độ dốc. Với các SVM, chúng tôi cố gắng vẽ một siêu phẳng giữa 2 lớp khác nhau. Vì vậy SVR là sự kết hợp của cả 2, chúng tôi cố gắng giảm thiểu sai số trong một ngưỡng nhất định. Dưới đây là một hình ảnh tuyệt vời từ một bài viết hữu ích về SVR để giúp hình dung SVR

  • Đường màu xanh là siêu phẳng của chúng ta và các đường màu đỏ là đường ranh giới của chúng ta. Tôi hy vọng bạn có thể bắt đầu thấy cách chúng tôi kết hợp các ý tưởng về máy vectơ hỗ trợ và hồi quy. Chúng tôi đang cố gắng dự đoán chính xác các giá trị trong một ngưỡng nhất định
  • Vì vậy, chúng tôi xác định các đường ranh giới của mình để tạo nên lề của chúng tôi là +epsilon và -epsilon. Epsilon là khoảng cách từ siêu phẳng của chúng ta đến mỗi đường ranh giới
  • Sau đó, chúng ta có thể xác định đường hồi quy của mình là y=wx+b
  • Mục tiêu của chúng tôi là giảm thiểu lỗi và tối đa hóa khoảng cách lề
  • Điều thú vị về SVR là nó có thể được áp dụng để dự đoán các giá trị trong ngưỡng phi tuyến tính. Dưới đây là một hình ảnh hữu ích để hình dung SVR trông như thế nào

Mã SVR sử dụng sklearn và hiển thị hạt nhân

SVR phù hợp với dữ liệu của chúng tôi
  • Trong mã này, chúng tôi sử dụng Sklearn và Support Vector Regression (SVR) để dự đoán giá trên dữ liệu của chúng tôi
  • Như bạn có thể thấy, dữ liệu cực kỳ phù hợp, nhưng rất có thể là quá khớp. Mô hình này sẽ gặp khó khăn trong việc khái quát hóa dữ liệu chứng khoán Tesla chưa được công bố trong một năm. Đó là nơi mà mạng thần kinh LSTM của chúng tôi có ích
  • Chúng tôi lấy giá đóng và ngày đã điều chỉnh dưới dạng số nguyên từ dữ liệu của mình. Chúng tôi định hình lại dữ liệu thành các vectơ 1D vì chúng tôi cần cung cấp dữ liệu vào SVR
  • Hạt nhân là một chức năng để ánh xạ dữ liệu có chiều thấp hơn thành dữ liệu có chiều cao hơn. Chúng tôi xác định hạt nhân của mình là RBF. RBF là viết tắt của chức năng cơ sở xuyên tâm. Phương trình cho RBF dưới đây

  • Đây là phương trình hàm hạt nhân cho RBF. RBF chuyển không gian 2D của chúng tôi sang một chiều cao hơn để giúp phù hợp hơn với dữ liệu của chúng tôi. Hàm lấy khoảng cách euclide bình phương giữa 2 mẫu và chia cho một số giá trị sigma. Giá trị của sigma xác định mức độ “chặt chẽ” của đường cong hoặc dữ liệu của chúng ta
  • Để giúp hiểu rõ hơn về cách RBF chuyển dữ liệu của chúng tôi sang không gian có chiều cao hơn, tôi đã tạo một gif từ video này của Brandon Rohrer. Điều này cho thấy cách một siêu phẳng tuyến tính không thể phân tách 4 bộ điểm dữ liệu. Vì vậy, chúng tôi sử dụng hàm kernel để chuyển đổi dữ liệu của mình sang thứ nguyên cao hơn và “kéo dài” không gian dữ liệu của chúng tôi để khớp các điểm dữ liệu của chúng tôi vào các danh mục

Gif chức năng hạt nhân thông qua Brandon Rohrer theo giấy phép Giấy phép Creative Commons Attribution (cho phép tái sử dụng) nguồn
  • C là tham số chuẩn hóa. Đây là số lượng bạn muốn để tránh phân loại sai từng ví dụ đào tạo
  • Đối với các giá trị lớn của C, thuật toán sẽ chọn một siêu phẳng có biên nhỏ hơn
  • Đối với các giá trị nhỏ của C, thuật toán sẽ tìm kiếm một lề lớn ngăn cách siêu phẳng ngay cả khi điều đó có nghĩa là phân loại sai một số điểm. Dưới đây là một hình ảnh hữu ích để hình dung sự khác biệt giữa kích thước của các giá trị C

Nguồn
  • Trong trường hợp của chúng tôi, chúng tôi chọn giá trị C của mình là 1e3, đây là giá trị lớn đối với C, điều đó có nghĩa là thuật toán của chúng tôi sẽ chọn một siêu phẳng có biên độ nhỏ hơn
  • Theo tài liệu của sklearn, “Tham số gamma xác định mức độ ảnh hưởng của một ví dụ đào tạo đơn lẻ, với giá trị thấp nghĩa là 'xa' và giá trị cao nghĩa là 'gần'. ”
  • Vì vậy, nói cách khác, hệ số gamma cao chỉ những điểm gần đường ranh giới mới được xem xét khi quyết định vị trí của siêu phẳng. Và với các điểm gamma thấp gần và xa các đường ranh giới được xem xét khi quyết định vị trí của siêu phẳng. Dưới đây là một hình ảnh hữu ích khác để hình dung

Chuẩn hóa dữ liệu của chúng tôi

  • Ở đây chúng tôi tạo dữ liệu đào tạo của mình và chuẩn hóa nó. Chúng tôi sử dụng sklearn để tạo đối tượng MinMaxScaler()
  • MinMaxScaler hoạt động bằng cách thu nhỏ phạm vi giá trị của chúng tôi thành 0 hoặc 1
  • Dưới đây là phương trình cho bộ chia tỷ lệ tối thiểu

  • Đây là phương trình mà sklearn đang thực hiện trong nền để chuyển đổi dữ liệu của chúng tôi thành phạm vi mong muốn

Chuẩn bị dữ liệu của chúng tôi cho mạng lưới thần kinh

  • Ở đây chúng tôi tạo chức năng 'create_dataset'. Hàm này lặp từ (0 đến độ dài tập dữ liệu của chúng tôi — số bước thời gian)
  • Vì vậy, về cơ bản, mỗi chỉ mục trong mảng X_train chứa một mảng gồm 36 ngày giá đóng cửa và mảng y_train chứa giá đóng cửa một ngày sau các bước thời gian của chúng tôi
  • Vì vậy, nói cách khác, chúng tôi cung cấp cho mạng thần kinh 36 ngày giá đóng cửa trước đó của dữ liệu chứng khoán và sau đó để nó dự đoán giá cổ phiếu đóng cửa vào ngày hôm sau
  • Điều này có thể được hình dung bằng đầu ra in

Mạng thần kinh tái phát

  • LSTM là viết tắt của Bộ nhớ dài hạn ngắn hạn. LSTM là phiên bản nâng cao của mạng thần kinh tái phát. Mạng thần kinh tái phát (RNN) là một loại mạng thần kinh đặc biệt. RNN lấy đầu ra trước đó làm đầu vào. Trong RNN, đầu ra trước ảnh hưởng đến đầu ra tiếp theo. Dưới đây là một hình ảnh hữu ích về RNN trông như thế nào từ bài báo tuyệt vời này được viết bởi Christopher Olah

  • “Mạng nơ-ron tái phát có thể được coi là nhiều bản sao của cùng một mạng, mỗi bản truyền một thông điệp cho người kế nhiệm. ” -Chris Olah
  • Các mạng thần kinh tái phát bị vấn đề độ dốc biến mất. Trong quá trình lan truyền ngược (quá trình đệ quy cập nhật trọng số trong mạng thần kinh), trọng số của mỗi lớp được cập nhật. Tuy nhiên, với RNN và độ dốc biến mất, độ dốc trở nên quá nhỏ khi nó tiếp tục cập nhật từng lớp. Khi lan truyền ngược lan truyền qua các lớp, vào thời điểm nó đến lớp đầu tiên, giá trị độ dốc là một giá trị nhỏ đến mức nó tạo ra những thay đổi gần như không thể nhận thấy đối với trọng số. Vì những thay đổi tối thiểu được thực hiện, những lớp ban đầu này không học hoặc thay đổi
  • Vì vậy, nói cách khác, với các chuỗi dữ liệu dài hơn, RNN sẽ quên những gì chúng đã thấy trong các lớp trước đó và không học đúng cách do vấn đề độ dốc biến mất. Ví dụ: nếu bạn có nhiều đoạn văn bản và bạn đang cố dự đoán từ tiếp theo trong câu, RNN sẽ không nhớ các từ trong đoạn văn trước đó mà mô hình đã thấy rồi. Đây là nơi LSTM hữu ích

Hướng dẫn LSTM

LSTM là một loại RNN có cổng bên trong mỗi ô LSTM. Tôi thích nghĩ về các tế bào LSTM như một tế bào có mạng lưới thần kinh nhỏ bé của riêng nó bên trong mỗi tế bào. Các cổng này bên trong các tế bào LSTM giúp LSTM quyết định dữ liệu nào quan trọng cần được ghi nhớ và dữ liệu nào có thể bị lãng quên ngay cả trên chuỗi dữ liệu dài. Loại cổng là cổng quên, cổng đầu vào và cổng đầu ra. Dưới đây là hình ảnh trực quan tuyệt vời về giao diện của các tế bào LSTM này từ video này. Phần này bị ảnh hưởng nặng nề bởi video này và bài viết này vì những lời giải thích tuyệt vời như thế nào

Vì vậy, LSTM là tuần tự giống như RNN. Đầu ra của ô trước đó được chuyển tiếp thành đầu vào cho ô tiếp theo. Hãy chia nhỏ những gì mỗi cổng bên trong một tế bào LSTM đang làm

Cổng chứa chức năng kích hoạt sigmoid. Chức năng kích hoạt sigmoid có thể được coi là chức năng "squishification". Nó nhận đầu vào số và squishes các số thành một phạm vi từ 0 đến 1. Điều này rất quan trọng vì nó cho phép chúng tôi tránh các số trong mạng của mình trở nên quá lớn và gây ra lỗi trong quá trình học

Quên cổng

Cổng quên lấy trạng thái ẩn trước đó từ ô LSTM trước đó và đầu vào hiện tại rồi nhân chúng. Các giá trị càng gần 0 nghĩa là quên dữ liệu và các giá trị càng gần 1 nghĩa là giữ dữ liệu này

  • toán học

  • Cổng quên là ma trận trọng số cổng quên nhân với trạng thái ẩn trước đó và sau đó là trạng thái đầu vào + một số sai lệch, tất cả được chuyển vào hàm kích hoạt sigmoid. Sau khi điều này được tính toán, nó được chuyển sang trạng thái ô

cổng đầu vào

Cổng này cập nhật trạng thái ô với dữ liệu mới mà chúng tôi muốn lưu trữ ở trạng thái ô. Cổng đầu vào lấy trạng thái ẩn trước đó nhân với đầu vào và chuyển nó qua một sigmoid. Các giá trị gần 0 không quan trọng và các giá trị gần 1 hơn là quan trọng. Sau đó, trạng thái ẩn trước đó được nhân với đầu vào và được chuyển vào hàm kích hoạt tan, hàm này sẽ biến các giá trị thành một phạm vi từ -1 đến 1. Sau đó, đầu ra sigmoid được nhân với đầu ra tan. Đầu ra sigmoid quyết định thông tin nào là quan trọng cần giữ lại từ đầu ra tan

  • toán học

Trạng thái tế bào

Bộ nhớ mạng. Điều này có thể được coi như một “đường cao tốc thông tin” mang ký ức từ các tế bào trước đó đến các tế bào trong tương lai. Các cổng thực hiện các thay đổi đối với trạng thái ô và sau đó chuyển thông tin đó sang ô tiếp theo. Khi cổng quên và cổng đầu vào đã được tính toán, chúng ta có thể tính giá trị của trạng thái ô

  • toán học

  • Trạng thái ô là đầu ra cổng quên * trạng thái ô trước đó + đầu ra cổng đầu vào * các giá trị trạng thái ô được truyền từ ô trước đó. Điều này là để loại bỏ một số giá trị gần bằng 0 mà chúng tôi muốn quên đi. Sau đó, chúng tôi thêm các giá trị từ cổng đầu vào vào giá trị trạng thái ô mà chúng tôi muốn chuyển sang ô tiếp theo

cổng đầu ra

Cổng đầu ra quyết định trạng thái ẩn tiếp theo sẽ là gì. Chúng tôi lấy trạng thái ẩn trước đó nhân nó với đầu vào và chuyển vào hàm kích hoạt sigmoid. Sau đó, chúng tôi chuyển giá trị trạng thái ô vào hàm kích hoạt tan. Sau đó, chúng tôi nhân đầu ra tan với đầu ra sigmoid để quyết định dữ liệu nào mà trạng thái ẩn sẽ chuyển sang ô LSTM tiếp theo

SVM có thể được sử dụng để dự đoán không?

Kết quả cho thấy rằng, bên cạnh các lược đồ riêng lẻ, SVM có thể được sử dụng để dự đoán dữ liệu sau khi đào tạo các mẫu học tập và nó .

Làm cách nào để sử dụng Python để dự đoán giá cổ phiếu?

Dự đoán giá cổ phiếu bằng LSTM .
nhập khẩu. .
Đọc tập dữ liệu. .
Phân tích giá đóng cửa từ khung dữ liệu. .
Sắp xếp tập dữ liệu theo ngày giờ và lọc các cột “Ngày” và “Đóng”. .
Chuẩn hóa tập dữ liệu mới được lọc. .
Xây dựng và huấn luyện mô hình LSTM. .
Lấy mẫu tập dữ liệu để đưa ra dự đoán giá cổ phiếu bằng mô hình LSTM

Tại sao SVM được sử dụng để dự đoán chứng khoán?

SVM là một mô hình toán học có nền tảng lý thuyết vững chắc và đã phát triển đáng kể trong nhận dạng mẫu, ước lượng hàm và dự đoán chuỗi thời gian. Dự đoán chính xác giá cổ phiếu giúp đưa ra quyết định đầu tư tốt hơn với rủi ro tối thiểu .

Thuật toán nào là tốt nhất để dự đoán thị trường chứng khoán?

LSTM, viết tắt của Long Short-term Memory , là một thuật toán cực kỳ hiệu quả cho chuỗi thời gian. Nó có thể nắm bắt các mẫu xu hướng lịch sử và dự đoán các giá trị trong tương lai với độ chính xác cao.