This project aims to predict the price of Bitcoin using the following machine learning models:
- Random Forest
- Support Vector Machine
- XGBoost
- ARIMA
- Prophet
The dataset used in this project is the Kaggle dataset Bitcoin Price Prediction (LightWeight CSV)
Bitcoin-Price-Prediction/
│
├── data/
│ ├── case_study_1/
│ │ ├── processed/
│ │ └── raw/
│
├── src/
│ ├── case_study_1/
│ │ ├── model/
│ │ │ ├── arima_functions.py
│ │ │ ├── cross_validation.py
│ │ │ ├── model_evaluation.py
│ │ │ ├── prophet_functions.py
│ │ │ └── walk_forward_validation.py
│ │ ├── preprocessing/
│ │ │ ├── data_cleaning.py
│ │ │ ├── data_preprocessing.py
│ │ │ └── training_models.py
│ │ └── train_evaluate.py
│ │ └── visualization.py
│
├── graphs/
│ ├── case_study_1/
│ │ ├── results/
│ │ │ ├── train_test_split.png
│ │ │ ├── walk_forward_val.png
|
└── config.yaml
└── .gitignore
└── .requirements.txt
The performance of each model is evaluated using multiple metrics and recorded as graphs in graphs/.
Model | R² | MAPE | MAE | MSE |
---|---|---|---|---|
Prophet | 0.812 | 0.068 | 97.419 | 74429.202 |
SVR | 0.539 | 0.109 | 164.893 | 211204.798 |
Random Forest | 0.527 | 0.117 | 168.765 | 206776.694 |
XGBoost | 0.469 | 0.131 | 176.450 | 216565.162 |
ARIMAX | 0.022 | 0.182 | 202.285 | 236345.004 |
|
![]() |
Before building the project, ensure you have Python installed
-
Clone the Repository:
Clone the repository to your local machine using the following command:
git clone https://github.com/RamezzE/Bitcoin-Price-Prediction.git
-
Navigate to project folder
cd Bitcoin-Price-Prediction
-
Create & activate virtual environment (Optional but recommended)
python -m venv venv
venv\Scripts\activate
-
Install required packages
pip install -r requirements.txt
-
Run main file to clean & preprocess data then train models and view results
python src\case_study_1\train_evaluate.py
This project is licensed under the MIT License.