# DataSynthis_ML_JobTask - Stock Price Forecasting (Deliverables) This bundle contains a ready-to-run Jupyter notebook, a small synthetic sample dataset, and helper scripts for training ARIMA, LSTM, and Prophet models; evaluating them with rolling-window evaluation; and steps to deploy model artifacts to Hugging Face Hub (you must run that step locally or from an environment with internet access). ## Files included - `stock_forecasting_notebook.ipynb` — The full notebook with preprocessing, ARIMA, LSTM, Prophet, rolling-window evaluation, plots, and saving models. - `sample_stock.csv` — A synthetic daily closing-price CSV (2020-01-01 to 2021-12-31, business days) to run the notebook offline. - `requirements.txt` — Python dependencies. - `upload_to_hf.py` — Example script to upload model files to Hugging Face Hub (requires `huggingface_hub` and HF token). - `README.md` — This file. ## Quick start 1. Create and activate a python environment (recommended: conda or venv) ```bash python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows pip install -r requirements.txt ``` 2. Start Jupyter and open the notebook: ```bash jupyter notebook stock_forecasting_notebook.ipynb ``` 3. The notebook contains cells to download real stock data via `yfinance` (if you have internet) or use the included `sample_stock.csv` for an offline demo. ## Hugging Face deployment (notes) - You cannot deploy directly from this notebook in an environment without internet. - Use `upload_to_hf.py` to push saved model files to the HF repo `DataSynthis_ML_JobTask` after creating it on the Hugging Face website (or the script will create the repo for you if you provide a valid token). - Create a HF token at https://huggingface.co/settings/tokens and set environment variable `HF_TOKEN` or pass `--token` to the script. ## About results - The notebook runs quick examples and shows how to compute RMSE and MAPE, and how to perform rolling-window evaluation. - For production-quality training and evaluation (e.g., longer LSTM training), run on a machine with a GPU and more data.