Machine_Learning_Algorithms_GUI is a Python-based MVC application for exploring both supervised and unsupervised machine learning algorithms.
It guides users step by step: dataset upload, preprocessing, learning type selection, algorithm choice, visualization, and comparison.
This project provides a hands-on environment to experiment with machine learning techniques.
The GUI is designed for clarity and pedagogy: each step of the workflow is implemented and visualized interactively.
Built entirely with Python in a local environment, the app follows an MVC architecture for modularity and extensibility.
- Upload
.csvdatasets directly into the GUI. - Preprocess data: handle missing values, detect outliers, normalize features.
- Select the learning type:
- Supervised: KNN, Naive Bayes, C4.5
- Unsupervised: K-Means, K-Medoids, DIANA, AGNES, DBSCAN
- Choose the algorithm within the selected type.
- Visualize results with scatter plots (partitioning & density), dendrograms (hierarchical), or classification plots (supervised).
- Compare algorithms:
- Within the same type
- Across all types
- Evaluate metrics: Silhouette Score, intra/inter-cluster distances, and supervised accuracy metrics.
π Step 1 β Dataset Upload
- Import
.csvfiles via the GUI. - Preview dataset structure before processing.
βοΈ Step 2 β Preprocessing
- Analyze and replace missing values.
- Detect and handle outliers.
- Normalize features for consistent scaling.
π Step 3 β Learning Type Selection
- Choose between Supervised or Unsupervised learning.
- Supervised: KNN, Naive Bayes, C4.5.
- Unsupervised: K-Means, K-Medoids, DIANA, AGNES, DBSCAN.
π¬ Step 4 β Algorithm Selection
- Select the specific algorithm within the chosen type.
π Step 5 β Visualization
- Scatter plots for partitioning & density algorithms.
- Dendrograms for hierarchical algorithms.
- Classification plots for supervised algorithms.
π Step 6 β Comparison
- Compare algorithms of the same type.
- Compare across supervised and unsupervised algorithms.
- Metrics: Silhouette Score, intra/inter-cluster distances, supervised accuracy & precision.
- Python (3.x) β core language
- Tkinter β GUI framework
- scikit-learn β supervised & unsupervised algorithms, metrics
- pandas β dataset handling
- numpy β numerical operations
- matplotlib / seaborn β visualization
- MVC architecture β structured application design
- Python (3.x) β main environment
- scikit-learn β ML algorithms & evaluation
- pandas + numpy β data manipulation
- matplotlib + seaborn β plotting
- Tkinter β GUI interface
- MVC β application architecture
π Getting Started
- Clone the repository.
- Install dependencies:
git clone your-repo python -m venv venv venv\Scripts\activate pip install -r requirements.txt python main.py