A comprehensive web application for machine learning algorithm analysis with an integrated AI chat assistant.
- Upload CSV or Excel datasets
- Supports files up to 16MB
- Displays data summary (rows, columns, data types)
- Supervised Learning: Logistic Regression, Decision Tree, Random Forest, SVM, Linear Regression
- Unsupervised Learning: K-Means Clustering, PCA, Hierarchical Clustering
- Select multiple algorithms at once
- Specify target column for supervised learning
- Automatic model training and evaluation
- Displays accuracy metrics for classification
- R² and MSE scores for regression
- Silhouette scores for clustering
- Explained variance ratio for dimensionality reduction
- Compact chat window anchored at the bottom-right of the screen
- Ask questions about the uploaded dataset, detected issues, and completed analysis
- Get explanations of algorithms, metrics, target columns, and cleaning decisions
- Useful for instant guidance while reviewing the analysis results
- Python 3.8 or higher
- pip (Python package manager)
-
Navigate to the project directory:
cd /path/to/MLEndOfModeuleProject -
Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Start the Flask server:
python app.py
-
Open your browser and navigate to:
http://localhost:5000 -
Use the application:
- Upload your dataset (CSV or Excel)
- Review the pre-analysis summary and decide whether to remove zero-variance columns
- Select your target column (for supervised learning)
- Choose the algorithms you want to test
- Click "Analyze" to run the models
- Use the floating chat icon at the bottom-right to ask questions about the file or the analysis results
MLEndOfModeuleProject/
├── app.py # Flask backend application
├── requirements.txt # Python dependencies
├── README.md # This file
├── templates/
│ └── index.html # Main webpage
└── uploads/ # Uploaded files storage (auto-created)
- Logistic Regression: Binary/multiclass classification using logistic function
- Decision Tree: Tree-based classification/regression
- Random Forest: Ensemble of decision trees
- Support Vector Machine (SVM): Kernel-based boundary finding
- Linear Regression: Continuous value prediction
- K-Means: Partitions data into K clusters
- PCA: Dimensionality reduction through variance analysis
- Hierarchical Clustering: Creates hierarchy of clusters
- Accuracy: (TP + TN) / Total predictions
- Train/Test Split: 80/20 by default
- R² Score: Coefficient of determination (0-1)
- MSE: Mean Squared Error
- Silhouette Score: -1 to 1 (higher is better)
- Optimal K: Automatically calculated
- Data Quality: Clean your data before uploading
- Feature Engineering: Consider preprocessing before analysis
- Target Column: Required for supervised learning
- Algorithm Selection: Start with simpler algorithms first
- Large Datasets: May take longer to process
If port 5000 is already in use, modify app.py:
app.run(debug=True, port=5001) # Change to different port- Ensure file is in CSV or Excel format
- Check file size (max 16MB)
- Verify data contains valid values
- Ensure target column is selected for supervised learning
- Check for missing or invalid data in dataset
- Verify columns match data types
See requirements.txt for all dependencies:
- Flask: Web framework
- pandas: Data manipulation
- scikit-learn: ML algorithms
- numpy: Numerical computing
- scipy: Scientific computing
- openpyxl: Excel file support
Free to use for educational purposes.
For issues or questions:
- Check the chat assistant in the application
- Review the Troubleshooting section
- Verify data format and requirements
Enjoy analyzing your data with multiple ML algorithms!