This project provides a comprehensive pipeline for forecasting market capitalization of companies using various time series forecasting techniques, including:
- Transformer-based models (TimeSeriesTransformer)
- ARIMA models
- RNN models
The system fetches market cap data from Yahoo Finance, processes it into a time series format, trains multiple forecasting models, and generates predictions with evaluation metrics.
marketcap-forecasting/
├── data_preparation/
│ ├── fetch_data.py # Fetches market cap data from Yahoo Finance
│ ├── prepare_dataset.py # Processes raw data into time series format
│ └── check_for_nan.py # Validates data quality
├── forecasting/
│ ├── train.py # Trains the TimeSeriesTransformer model
│ ├── test_model.py # Evaluates the trained model
│ ├── forecast_future.py # Generates future forecasts
│ ├── ARIMA.py # ARIMA model implementation
│ └── RNN.py # RNN model implementation
├── visualization/
│ └── plot_marketcap_data.py # Visualizes market cap trends
├── market_cap_data/ # Directory for raw market cap data
├── prepared_marketcap_dataset/ # Processed dataset directory
├── saved_models/ # Saved models directory
└── saved_forecasts/ # Saved forecasting results
-
Data Pipeline
- Automated data fetching from Yahoo Finance
- Time series preprocessing and validation
- Static feature encoding (sector, industry, market cap category)
-
Modeling Approaches
- State-of-the-art Time Series Transformer
- Traditional ARIMA models
- Recurrent Neural Networks (RNNs)
-
Evaluation Metrics
- MASE (Mean Absolute Scaled Error)
- sMAPE (Symmetric Mean Absolute Percentage Error)
- MAPE (Mean Absolute Percentage Error)
-
Visualization
- Interactive forecast plots
- Model performance comparisons
- Time series trend analysis
- Python 3.8+
- Required packages:
pip install -r requirements.txt
-
Fetch Data
python fetch_data.py
-
Prepare Dataset
python prepare_dataset.py
-
Train Model
python train.py
-
Evaluate Model
python test_model.py
-
Generate Forecasts
python forecast_future.py
Model Type | Strengths | Best For |
---|---|---|
TimeSeriesTransformer | Captures complex patterns, handles multiple series | Large-scale forecasting |
ARIMA | Simple, interpretable | Short-term forecasts |
RNN | Handles sequential dependencies | Medium-term forecasts |
Example forecast for Apple Inc.:
This project is licensed under the MIT License - see the LICENSE file for details.