A deep learning project for cryptocurrency price prediction using LSTM networks.
- Real-time data collection from multiple sources (CoinGecko, Binance)
- Comprehensive technical indicator calculation
- Deep learning model with LSTM architecture
- Interactive visualizations using Plotly
- Progress tracking and logging
- Configurable parameters via YAML
- Real-time monitoring dashboard
- Automated development environment setup
Crypto_Prediction/
├── setup_dev.sh # Development environment setup script
├── crypto_prediction_app # Interactive application script
├── data/ # Data storage
├── models/ # Saved models
├── src/
│ ├── data_collection/ # Data collection scripts
│ ├── preprocessing/ # Data preprocessing
│ ├── visualization/ # Visualization utilities
│ ├── training/ # Model training code
│ ├── monitoring/ # Monitoring dashboard
│ └── utils/ # Utility functions
├── tests/ # Test files
├── Final_Project_Report.ipynb # Findings and Evaluations
├── configs/ # Configuration files
├── logs/ # Log files
├── results/ # Training & Prediction results
└── visualizations/ # Generated plots
-
Set up the development environment:
chmod +x setup_dev.sh ./setup_dev.sh
-
Launch the interactive application:
chmod +x crypto_prediction_app ./crypto_prediction_app
-
Start the monitoring dashboard:
streamlit run src/monitoring/dashboard.py
-
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
The crypto_prediction_app script provides an interactive way to execute the pipeline, allowing users to:
- View the default configuration.
- Choose to run specific modes (
collect-data,train,predict, orfull-pipeline). - Optionally specify a custom configuration file.
Run the script:
./crypto_prediction_appThis interactive application will guide you through:
- Updating and collecting the latest data.
- Preprocessing the collected data.
- Training a new LSTM model.
- Generating predictions using the trained model.
Train the model independently:
python main.py --config configs/config.yaml --mode trainUse a pre-trained model to generate predictions:
python main.py --config configs/config.yaml --mode predictUpdate data without proceeding to model training:
python main.py --config configs/config.yaml --mode collect-dataThe monitoring dashboard provides real-time insights into:
- Model performance metrics
- System resource utilization
- Data pipeline health
- Live predictions
- Training history
-
Ensure Streamlit is installed:
pip install streamlit
-
Run the dashboard:
streamlit run src/monitoring/dashboard.py
-
Open your browser to
http://localhost:8501.
The setup_dev.sh script automates setting up your development environment:
- Creates a virtual environment.
- Installs dependencies.
- Sets up the project structure.
- Initializes git hooks.
- Configures Jupyter kernels.
- Sets up environment variables.
The project is configured using:
configs/config.yaml: Main configuration file for paths, model settings, and training options.- Environment variables: For dynamic configurations.
- Command-line arguments: For runtime flexibility.
Run all tests using pytest:
pytest tests/- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Push to the branch.
- Create a Pull Request.
For assistance:
- Check the documentation.
- Search existing issues.
- Create a new issue providing:
- A clear problem description.
- Steps to reproduce the issue.
- Error messages and logs.
- Your system information.