This project is a Streamlit-based web application for 30-day stock price forecasting using an ensemble of deep learning models and statistical methods.
Each team member contributed a model architecture, enabling the app to compare performance across various forecasting techniques. Users can input a stock ticker, and the app will train or load models, visualize predictions, and allow CSV download of forecasted prices.
| Member | Model Architecture |
|---|---|
| Juan | LSTM Seq2Seq |
| Omar | LSTM Bidirectional Seq2Seq |
| Jayvee | LSTM Bidirectional Regressor |
| Tito | GRU Seq2Seq |
| Luis | ARIMA (Statistical) & Transformer Regressor |
git clone https://github.com/your-username/CAP4630_Final_Project.git
cd CAP4630_Final_Project
git checkout devpython -m venv project_env
project_env\Scripts\activatepython3 -m venv project_env
source project_env/bin/activateMake sure you're inside the root folder where requirements.txt is located:
pip install -r requirements.txtstreamlit run app.pyThen visit http://localhost:8501 in your browser.
- ✅ Input any stock ticker (e.g.
TSLA,AAPL,GOOG) - 📊 Train models or load pre-trained ones
- 🧠 Uses LSTM, GRU, and Transformer architectures
- 📈 Visualize forecasts in a multi-line Plotly chart
- 💾 Download predictions as CSV
- 🚀 Efficient training with session caching and model persistence
CAP4630_Final_Project/
│
├── app.py # Streamlit UI
├── ensemble_forecasts.py # Model training, forecasting, and utilities
├── requirements.txt # Python dependencies
├── models/ # Saved model files organized by ticker
├── plots/ # Saved visualizations (optional)
└── README.md # This file
Make sure your environment includes:
streamlitpandasnumpyplotlytensorflowscikit-learnstatsmodelsyfinancestqdm(optional, for progress bars)
You don’t need to install these manually — they are all in requirements.txt.
- TensorFlow / Keras – for building LSTM, GRU, and Transformer models
- Statsmodels – for classical ARIMA forecasting
- Plotly – for interactive line charts
- Streamlit – for building the user interface
- scikit-learn – for metrics and preprocessing
- yfinance – to fetch historical stock prices
This project was created for CAP4630: Introduction to Artificial Intelligence at Florida International University.
- Juan – LSTM Seq2Seq
- Omar – LSTM Bidirectional Seq2Seq
- Jayvee – LSTM Bidirectional Regressor
- Tito – GRU Seq2Seq
- Luis – ARIMA & Transformer Forecasting
- Models are saved inside
/models/<TICKER>/as.kerasfiles. - The app will reuse existing models if available, speeding up repeat forecasts.
- Forecasts are always for the next 30 days from the last date in the dataset.
Enjoy exploring your forecasts! 📊📈💡