This repository contains code and notebooks for a project focused on cryptocurrency price prediction. The project aims to explore and compare different machine learning approaches, including graph neural networks (GNNs) and Long Short-Term Memory (LSTM) models, to forecast cryptocurrency prices accurately.
LSTM:
GNN+LSTM:
The project is divided into several notebooks, each serving a specific purpose:
Data_preprocessing.ipynb: This notebook focuses on loading the raw data and preprocessing it to ensure it is in a suitable format, specifically a Pandas dataframe. The preprocessed data will serve as input for the subsequent notebooks. Graph_Construction.ipynb: In this notebook, the data that has been transformed into a tabular format by the previous notebook is further processed to be in a suitable format for graph neural networks. The notebook handles the conversion of the data into an appropriate input format for graph-based models.
TGCN_model.ipynb: This notebook revolves around training and evaluating multiple architectures of graph neural networks. The focus is on implementing Temporal Graph Convolutional Networks (TGCN) and exploring their performance for the given task.
LSTM_model.ipynb: This notebook is dedicated to training and evaluating LSTM (Long Short-Term Memory) neural networks. The emphasis is on implementing and assessing the performance of LSTM models for the project.
Comparison_Popular_ML_Algo.ipynb: In this notebook, a variety of commonly used state-of-the-art machine learning algorithms are trained and evaluated. The goal is to conduct a fair comparison between these popular algorithms and the proposed method in the project.
Backtesting.ipynb: This notebook focuses on implementing a backtesting technique, which involves applying the trained models to real-life scenarios. The notebook explores how well the models perform in practical situations and evaluates their effectiveness. Prerequisites
To get started with the project, follow these steps:
Clone this repository to your local machine. Install the required dependencies using pip install -r requirements.txt. Run the notebooks in the specified order to preprocess the data, train different models, compare algorithms, and perform backtesting. Feel free to explore the code, experiment with different approaches, and modify the notebooks to suit your needs.