A machine learning mini project that applies regression algorithms to real-world financial time-series data to predict continuous market price values.
Predicting financial market movements is one of the most challenging problems in data science due to the noisy, non-stationary, and sequential nature of financial data. This project explores how classical regression algorithms can be applied to structured time-series financial data to forecast price-related values.
The pipeline covers everything from data loading and feature engineering to model training, evaluation, and visualization — giving a clear picture of where regression models succeed and where they fall short in real-world financial markets.
Built as a Mini Project during a 3-month Machine Learning Internship at VCodEZ (Nov 2025 – Feb 2026)
- Time-Series Regression — Applied 4 regression models to sequential financial data
- Lag Feature Engineering — Created lag-based and rolling-window features to capture temporal patterns
- Temporal Train-Test Split — Avoided data leakage with time-aware splitting (no random shuffling)
- Multi-Model Comparison — Evaluated and compared Linear, Ridge/Lasso, Decision Tree, and Random Forest regressors
- Visualization — Matplotlib plots for actual vs predicted values, residuals, and feature importances
- Honest Evaluation — Clearly documents both capabilities and limitations of regression in financial markets
| Technology | Version | Purpose |
|---|---|---|
| Python | 3.9 | Core language |
| Pandas | 2.x | Data loading, manipulation, feature engineering |
| NumPy | 1.x | Numerical operations |
| Scikit-learn | 1.x | Regression models, metrics, preprocessing |
| Matplotlib | 3.x | Plotting actual vs predicted, residuals |
| Jupyter Notebook | — | Development and experimentation environment |
| Model | Strength | Limitation |
|---|---|---|
| Linear Regression | Fast, interpretable, low variance | Fails on non-linear market patterns |
| Ridge / Lasso Regression | Handles multicollinearity, regularized | Still linear — limited expressiveness |
| Decision Tree Regressor | Captures non-linearity | Overfits easily on noisy financial data |
| Random Forest Regressor | Handles non-linearity + variance | Risk of overfitting on financial noise |
| Metric | Description |
|---|---|
| MAE (Mean Absolute Error) | Average magnitude of prediction error |
| RMSE (Root Mean Squared Error) | Penalizes large errors more heavily |
| R² Score | Proportion of variance explained by the model |
Raw Financial Data (CSV)
|
v
1. Data Loading & Exploration (Pandas)
|
v
2. Feature Engineering
- Lag features (t-1, t-2, t-3 ...)
- Rolling mean / rolling std windows
- Technical indicators (optional)
|
v
3. Time-Aware Train-Test Split
(No random shuffling — preserves temporal order)
|
v
4. Model Training
(Linear, Ridge, Lasso, Decision Tree, Random Forest)
|
v
5. Evaluation (MAE, RMSE, R²)
|
v
6. Visualization (Actual vs Predicted, Residuals, Feature Importance)
Machine-learning/
├── Financial Market/
│ ├── read.md # Project notes and model comparison summary
│ └── [notebooks / scripts] # Data processing, training, evaluation
├── README.md # Full project documentation
└── .gitignore
- Temporal dependency matters — Random train-test split leaks future data into training, leading to falsely high scores.
- Linear models are insufficient — Financial data is inherently non-linear; regularized linear models still underfit.
- Overfitting is real — Tree-based models capture training patterns well but generalize poorly on unseen market data.
- Feature engineering is critical — Lag features and rolling statistics are more informative than raw price values alone.
- Regression ≠ trading strategy — Predicting price direction and predicting exact price values are very different problems.
- Integrate LSTM / GRU deep learning models for better sequence modelling
- Add technical indicators (RSI, MACD, Bollinger Bands) as engineered features
- Build a multi-step forecast pipeline (predict t+1, t+2, ... t+n)
- Deploy as a Streamlit web dashboard for live market monitoring
- Experiment with XGBoost and LightGBM for gradient boosting on time-series
| Field | Details |
|---|---|
| Name | Mulamreddy Venkata Vasu Deva Reddy |
| GitHub | @MVVasudevreddy |
| venkata-vasu-deva-reddy-mulamreddy-6666vdr | |
| Institution | Bharath Institute of Higher Education and Research (BIHER), Chennai |
| Internship | Machine Learning Intern — VCodEZ, Chennai (Nov 2025 – Feb 2026) |
| Project Type | Mini Project — B.Tech CSE (2022–2026) |
⭐ If this project helped you understand regression on time-series data, give it a star!
Department of Computer Science and Engineering | BIHER, Chennai