An intelligent, cloud-deployed machine learning platform that automates model selection and training for classification, regression, and computer vision tasks. Features both REST API and web UI interfaces.
Live Demo: https://automl.kahramankaya.com/docs#/
-
Three ML Task Types:
- π Tabular Classification - Automatic model selection from Random Forest, SVM, Decision Tree
- π Regression - Automatic selection from Random Forest, SVR, Decision Tree
- πΌοΈ Vision Classification - Deep learning models (ResNet18, VGG16, MobileNet v2) with transfer learning
-
Automatic Model Selection: Trains multiple models and automatically selects the best performer
-
GPU Support: CUDA-enabled Docker container for fast training
-
Dual Interfaces: FastAPI REST endpoints + Streamlit web UI
-
Cloud Ready: Fully containerized and deployed on cloud infrastructure
-
Flexible Input: Supports CSV files and image directories
-
Pre-configured Transforms: Optimized image preprocessing with augmentation
Clone the repository:
git clone https://github.com/KHRMNKY/AutoMl.git
cd AutoMlCreate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtStart the FastAPI server:
uvicorn api:app --reloadThe API will be available at http://127.0.0.1:8000
View interactive API documentation at http://127.0.0.1:8000/docs
Run the Streamlit interface:
streamlit run streamlit4.pyAccess the UI at http://localhost:8501
-
POST
/vision_classification/train- Train vision model{ "train_folder": "/path/to/train/folder", "learning_rate": 0.001, "epochs": 10 } -
POST
/vision_classification/predict- Predict on images{ "image_path": "/path/to/image/folder" }
-
POST
/classification/train- Train classification model{ "train_csv_path": "/path/to/train.csv" } -
POST
/classification/predict- Get predictions{ "test_csv_path": "/path/to/test.csv" }
-
POST
/regression/train- Train regression model{ "train_csv_path": "/path/to/train.csv" } -
POST
/regression/predict- Get predictions{ "test_csv_path": "/path/to/test.csv" }
AutoMl/
βββ api.py # FastAPI backend server
βββ autoML.py # Core AutoML class with model logic
βββ streamlit4.py # Streamlit web UI
βββ requirements.txt # Python dependencies
βββ Dockerfile # Docker containerization
βββ LICENSE # Apache 2.0 License
βββ README.md # This file
βββ data/
βββ Iris_train.csv # Sample training data
βββ Iris_test.csv # Sample testing data
βββ images/ # Sample image datasets
βββ apple_pie/
βββ baby_back_ribs/
βββ baklava/
- Input Size: 224Γ224 pixels
- Batch Size: 32
- Train/Test Split: 80/20
- Augmentation: TrivialAugmentWide with 31 magnitude bins
- Normalization: ImageNet standard (mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
Classification/Regression (Tabular):
- Random Forest
- Support Vector Machine (SVM/SVR)
- Decision Tree
Vision Classification:
- ResNet18 (ImageNet pre-trained)
- VGG16 (ImageNet pre-trained)
- MobileNet v2 (ImageNet pre-trained)
Build the Docker image:
docker build -t automl:latest .Run the container:
docker run -p 8081:8081 --gpus all automl:latestThe API will be available at http://localhost:8081
from autoML import AutoML
# Initialize AutoML
automl = AutoML()
# Train classification model
automl.model_fit('data/Iris_train.csv', task='classification')
# Make predictions
predictions = automl.predict('data/Iris_test.csv')
print(f"Best Model: {automl.model_name}")
print(f"Score: {automl.score}")
print(f"Predictions: {predictions}")- FastAPI: Web framework for building APIs
- PyTorch: Deep learning framework
- Scikit-learn: Machine learning algorithms
- Streamlit: Web UI framework
- Pandas: Data manipulation
- NumPy: Numerical computing
- Torchvision: Computer vision utilities
- Pillow: Image processing
See requirements.txt for complete list with versions.
This project is currently deployed at: https://automl.kahramankaya.com/docs#/
The API is hosted on cloud infrastructure with GPU support for accelerated training.
- Format: CSV files
- Target: Last column should be the target variable
- Features: All other columns are treated as features
- Preprocessing: Automatic handling of categorical variables and feature scaling
- Format: Folder structure with class subfolders
- Example:
train_data/ βββ class1/ β βββ image1.jpg β βββ image2.jpg βββ class2/ βββ image3.jpg βββ image4.jpg