Welcome to the EY ML Playground! This application allows users to upload standard business spreadsheets (such as CSV or Excel files) and automatically train, evaluate, and deploy machine learning models without writing a single line of code.
Whether you want to forecast revenue, predict customer churn, or classify data categories, the EY ML Playground handles data preprocessing, model selection, hyperparameter tuning, and real-time scenario predictions automatically.
Before running the application, ensure you have one of the following setups:
- Option A (Recommended): Docker Desktop (Works on Windows, macOS, and Linux).
- Option B (Manual Setup):
- Python 3.10+
- Node.js 18+ and npm
The easiest way to run the entire application (Backend + Frontend) on any computer is using Docker Compose:
-
Open your terminal or command prompt and navigate to the project directory:
cd ML_Inventory_Jul14 -
Start the application with Docker Compose:
docker compose up --build
-
Open your browser:
- 🎨 Web Dashboard: http://localhost:5173
- ⚡ Backend API Documentation: http://localhost:7860/docs
For more details on Docker configurations, see DOCKER_GUIDE.md.
If you prefer running the backend and frontend services directly on your system, open two separate terminal windows:
-
Navigate to the project root folder:
cd ML_Inventory_Jul14 -
Set up and activate a Python virtual environment:
- macOS / Linux:
python3 -m venv venv source venv/bin/activate - Windows (PowerShell):
python -m venv venv .\venv\Scripts\Activate.ps1
- macOS / Linux:
-
Install required Python packages:
pip install -r requirements.txt
-
Start the FastAPI backend server:
python -m uvicorn api.main:app --reload --port 7860
(Keep this terminal running. The API runs at http://127.0.0.1:7860)
-
Open a new terminal tab/window and navigate to the
mlfolder:cd ML_Inventory_Jul14/ml -
Install Node.js dependencies (first time only):
npm install
-
Start the Vite React development server:
npm run dev
-
Open the link displayed in the terminal (typically http://localhost:5173).
If you are new to Machine Learning, here are the key concepts used in the dashboard:
- Target Column: The specific column you want to predict (e.g.,
Sales,Churn, orPrice). The target detector automatically suggests the target column and task type (Classification, Regression, or Forecasting). - Features: The input columns used by the model to make predictions (e.g.,
Marketing_Budget,Region,Customer_Age). - Train / Test Split: Data is divided into two sets:
- Training Set (e.g., 80%): Used by the machine learning algorithm to learn patterns.
- Test Set (e.g., 20%): Held back to evaluate model performance on unseen data.
- Data Quality Audit & Anomalies: The app automatically flags missing values, statistical outliers, and quality scores to clean data before training.
- Upload Dataset: Import any
.csvor.xlsxfile. - Audit Data Quality: View the automated Data Quality Score, missing value indicators, and outlier flags.
- Select Target Column: Choose what you want to predict. The app auto-detects whether the problem is Regression, Classification, or Forecasting.
- Select Features: Include or exclude specific variables from training.
- Configure Train/Test Split: Adjust split percentages (e.g., 80/20) and choose between random or chronological splitting.
- Cyclical & DateTime Normalization: Automatically extract month, day, quarter, and sin/cos cyclical transformations for time series data.
- Train Models: Click Execute Target Model Tasks to train multiple algorithms (XGBoost, LightGBM, CatBoost, Scikit-learn models) with automated hyperparameter optimization.
- Leaderboard Comparison: Compare models by R² score, RMSE, accuracy, and training duration.
- Interactive "What-If" Predictions: Input scenario parameters directly in the UI to generate real-time predictions with confidence intervals.
- Bulk Scenario Testing: Upload secondary spreadsheets to generate predictions across hundreds of rows simultaneously.
| Issue | Cause | Solution |
|---|---|---|
| Connection Error (Unable to connect to server) | Backend server is not running on port 7860. | Ensure uvicorn (or Docker container) is active on port 7860. |
| Frontend running on Port 5174 instead of 5173 | Port 5173 was busy on host system. | Vite automatically uses the next open port (5174/5175). Check terminal output for exact URL. |
| Module Not Found / Rollup Errors (Node.js) | Platform-specific optional dependency missing. | Run npm install inside the ml/ directory. |
| Invalid Login Credentials | No user account created yet. | Click the Sign Up tab on the login screen to register a local user account. |
Designed for cross-platform deployment on macOS, Linux, and Windows systems.