Skip to content

πŸ“Š A Flask + React web app for interactive regression modeling, assumption diagnostics, and automated reporting. Upload datasets, analyze models, visualize insights, and export reports.

Notifications You must be signed in to change notification settings

Ganeshkumar-K-S/Regression_Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Regression Engine Logo

REGRESSION ENGINE

Unveiling insights from data, one line at a time with Linear Regression!

Project description

Developed a web-based regression engine that enables users to upload their own datasets and perform linear regression with ease. The system includes automated handling of null values and outliers, ensuring cleaner data preprocessing. It conducts rigorous statistical assumption checks (linearity, independence of error, normality, homoscedasticity, multicollinearity) and visualizes these assumptions using Matplotlib and Seaborn.

Users can interactively predict the target variable by providing custom input features, and receive detailed regression metrics such as RΒ², MAE, and RMSE. A professionally styled, downloadable PDF report is generated summarizing the model, assumptions, and performance insights.

Features

  • Upload your dataset (CSV, JSON format)
  • Automatically detect attribute keys
  • Enter the target and features
  • Enter the method to treat null values
  • Automatically detects and treats outliers
  • Fit a linear regression model
  • Generate model summary with RΒ², MAE, MSE, RMSE
  • Check linear regression assumptions (linearity, normality, multicollinearity, Homoscedasticity, Independence of error) and visualize it
  • Predict the target for user input
  • Download a PDF report of the model
  • User session management with caching for quick reuse

Built with

  • Python
  • Pandas
  • Statsmodels
  • NumPy
  • Matplotlib
  • Seaborn
  • SciPy
  • Scikit-learn
  • Flask
  • Jinja2
  • WeasyPrint
  • React.js

File structure

Regression_Engine/
β”œβ”€ client/
β”‚  β”œβ”€ public/
β”‚  β”‚  β”œβ”€ data_scientist_.jpeg
β”‚  β”‚  β”œβ”€ data_scientist.avif
β”‚  β”‚  └─ no_image_found.jpg
β”‚  β”œβ”€ src/
β”‚  β”‚  β”œβ”€ assets/
β”‚  β”‚  β”‚  β”œβ”€ csv.png
β”‚  β”‚  β”‚  β”œβ”€ json.png
β”‚  β”‚  β”‚  └─ logo.svg
β”‚  β”‚  β”œβ”€ components/
β”‚  β”‚  β”‚  β”œβ”€ AssumptionCard.jsx
β”‚  β”‚  β”‚  β”œβ”€ Assumptions.jsx
β”‚  β”‚  β”‚  β”œβ”€ Attributes.jsx
β”‚  β”‚  β”‚  β”œβ”€ BuildModel.jsx
β”‚  β”‚  β”‚  β”œβ”€ DragDropWrapper.jsx
β”‚  β”‚  β”‚  β”œβ”€ DropFiles.jsx
β”‚  β”‚  β”‚  β”œβ”€ FeatureSelector.jsx
β”‚  β”‚  β”‚  β”œβ”€ GenerateReport.jsx
β”‚  β”‚  β”‚  β”œβ”€ Header.jsx
β”‚  β”‚  β”‚  β”œβ”€ Hero.jsx
β”‚  β”‚  β”‚  β”œβ”€ LimitationsHero.jsx
β”‚  β”‚  β”‚  β”œβ”€ ModelInference.jsx
β”‚  β”‚  β”‚  β”œβ”€ ModelingDataCard.jsx
β”‚  β”‚  β”‚  β”œβ”€ NullHandling.jsx
β”‚  β”‚  β”‚  β”œβ”€ PredictionForm.jsx
β”‚  β”‚  β”‚  └─ SkeletonCard.jsx
β”‚  β”‚  β”œβ”€ hooks/
β”‚  β”‚  β”‚  └─ useTooltip.jsx
β”‚  β”‚  β”œβ”€ pages/
β”‚  β”‚  β”‚  β”œβ”€ ExplorePage.jsx
β”‚  β”‚  β”‚  └─ HomePage.jsx
β”‚  β”‚  β”œβ”€ utils/
β”‚  β”‚  β”‚  └─ fetchImageList.jsx
β”‚  β”‚  β”œβ”€ App.jsx
β”‚  β”‚  β”œβ”€ index.css
β”‚  β”‚  └─ main.jsx
β”‚  β”œβ”€ .gitignore
β”‚  β”œβ”€ eslint.config.js
β”‚  β”œβ”€ index.html
β”‚  β”œβ”€ package-lock.json
β”‚  β”œβ”€ package.json
β”‚  └─ vite.config.js
β”œβ”€ server/
β”‚  β”œβ”€ app/
β”‚  β”‚  β”œβ”€ static/
β”‚  β”‚  β”‚  β”œβ”€ downloads/
β”‚  β”‚  β”‚  β”œβ”€ fonts/
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Montserrat-Bold.ttf
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Montserrat-Medium.ttf
β”‚  β”‚  β”‚  β”‚  └─ Montserrat-Regular.ttf
β”‚  β”‚  β”‚  └─ images/
β”‚  β”‚  β”‚     β”œβ”€ after_removing_outliers/
β”‚  β”‚  β”‚     β”œβ”€ assumption_1/
β”‚  β”‚  β”‚     β”œβ”€ assumption_2/
β”‚  β”‚  β”‚     β”œβ”€ assumption_3/
β”‚  β”‚  β”‚     β”œβ”€ assumption_4/
β”‚  β”‚  β”‚     β”œβ”€ assumption_5/
β”‚  β”‚  β”‚     β”œβ”€ before_removing_outliers/
β”‚  β”‚  β”‚     └─ icon.svg
β”‚  β”‚  β”œβ”€ templates/
β”‚  β”‚  β”‚  └─ report.html
β”‚  β”‚  β”œβ”€ uploads/
β”‚  β”‚  β”œβ”€ __init__.py
β”‚  β”‚  β”œβ”€ cache.py
β”‚  β”‚  β”œβ”€ config.py
β”‚  β”‚  β”œβ”€ regression.py
β”‚  β”‚  β”œβ”€ routes.py
β”‚  β”‚  └─ utils.py
β”‚  β”œβ”€ .gitignore
β”‚  β”œβ”€ requirements.txt
β”‚  └─ run.py
β”œβ”€ .gitignore
└─ README.md

Getting Started

Prerequisites

Installation and usage

  1. Clone the repository
 git clone https://github.com/Ganeshkumar-K-S/Regression_Engine.git
  1. Create & Activate a Virtual Environment at server(Optional but Recommended)
# Windows
cd server
python -m venv venv
venv\Scripts\activate

# macOS/Linux
cd server
python3 -m venv venv
source venv/bin/activate
  1. Install Backend Dependencies
pip install -r requirements.txt
  1. Install Frontend Dependencies
cd client
npm install tailwindcss @tailwindcss/vite tailwind-scrollbar
npm install react-dropzone @heroicons/react @hello-pangea/dnd
npm install react-loading-skeleton
npm install react-tooltip
npm install react-select framer-motion lucide-react
  1. Run the Backend Server
# From the root directory (where Flask app is located)
python app.py
  1. Run the frontend react
cd client
npm run dev
  1. Open the link in browser

Acknowledgments

Contributors

  • Harivansh B
  • Ganesh Kumar K S
  • Harish D

About

πŸ“Š A Flask + React web app for interactive regression modeling, assumption diagnostics, and automated reporting. Upload datasets, analyze models, visualize insights, and export reports.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •