Tetiana Gushchyk, email: tetianagushchyk2019@u.northwestern.edu
EECS 349 Machine Learning, Spring 2018, Northwestern University
Stock prediction is an interesting and important task. It is a challenging problem that has puzzled many software engineers for years. It is also important because if a feasible solution for the task is found, it will be valuable tool for investors. The goal of the project is to build a machine learning model that can predict change in stock price. The model takes information about historical stock price and returns a prediction about the change of the stock price in the next 30 days. Trained model should predict a price trend for the next 30 days and classify the stock into one of three categories: “buy”, “sell”, “hold”. The final goal is to make trading profit.
Approaches used for the project:
Training dataset includes 29 attributes:
Each trading day is labelled with prediction “buy”, “sell”, “hold” using average future price for next 90 days:
Example of labelled dataset: “buy (green)” indicates price increase, “sell (red)” indicates price drop.
Key results
Multilayer perceptron with 2 hidden layers and sigmoid activation function has performed better than other methods with final result of 65% accuracy. It as a fairly good result taking into account the size of dataset and quality of financial attributes. This demonstrates a potential in solving complex tasks with large datasets, but better accuracy requires better training dataset with more features relevant to stock price prediction.
Source code | Final report (PDF)