AutoMLBench: Automating Machine Learning Workflows
Introducing AutoMLBench: A powerful Python library for automating the entire machine learning pipeline, from data preprocessing to model evaluation and visualization.
Automated Machine Learning Benchmarking Library
🚀 AutoMLBench provides a seamless way to compare machine learning models, preprocess data, evaluate performance, and optimize models with hyperparameter tuning.
📌 Installation
Ensure all dependencies are installed:
1
pip install pandas scikit-learn numpy matplotlib xgboost lightgbm catboost imbalanced-learn
Install from pypi:
1
pip install automlbench
For local development:
1
2
3
git clone https://github.com/AnnNaserNabil/automlbench.git
cd automlbench
pip install -e .
Model Comparison Without Hyperparameter Tuning
The simplest way to compare models using AutoMLBench.
1️⃣ Load Dataset & Preprocess
1
2
3
4
5
6
7
8
9
10
11
12
import pandas as pd
from automlbench import preprocess_data, get_models, train_models, evaluate_model, plot_performance
# Load dataset
url = "DATAPATH"
df = pd.read_csv(url)
# Define target column
target_column = "Name OF the Target Column"
# Preprocess data
X_train, X_test, y_train, y_test = preprocess_data(df, target_column)
2️⃣ Train All Default Models
1
2
3
4
5
6
7
8
# Get predefined models
models = get_models()
# Train models without tuning
results = train_models(X_train, X_test, y_train, y_test)
# Print model performance results
print(results)
3️⃣ Evaluate & Compare Model Performance
1
2
3
4
5
6
7
8
# Evaluate all models
for model_name, model in models.items():
print(f"Evaluating {model_name}...")
metrics = evaluate_model(model.fit(X_train, y_train), X_test, y_test)
print(metrics)
# Plot performance comparison
plot_performance(results, metrics=["Accuracy", "Precision", "Recall", "F1-Score", "RMSE"])
🔹 Model Comparison With Hyperparameter Tuning
For better performance, use hyperparameter tuning.
1️⃣ Get Hyperparameter Grids
1
2
3
4
from automlbench import get_hyperparameter_grids, tune_hyperparameters
# Retrieve hyperparameter grids
hyperparameter_grids = get_hyperparameter_grids()
2️⃣ Tune Models
1
2
3
4
5
6
7
8
9
10
11
best_models = {}
# Tune each model if it has a predefined hyperparameter grid
for model_name, model in models.items():
if model_name in hyperparameter_grids:
print(f"Tuning {model_name}...")
best_model, best_params = tune_hyperparameters(model, hyperparameter_grids[model_name], X_train, y_train)
best_models[model_name] = best_model
print(f"Best params for {model_name}: {best_params}")
else:
best_models[model_name] = model # Use default if no tuning grid
3️⃣ Train Tuned Models
1
2
3
4
5
6
7
8
9
# Train models using the best hyperparameters found
tuned_results = train_models(
X_train, X_test, y_train, y_test,
selected_models=list(best_models.keys()),
hyperparams={name: model.get_params() for name, model in best_models.items()}
)
# Display tuned model results
print(tuned_results)
4️⃣ Evaluate & Compare Tuned Models
1
2
3
4
5
6
7
8
# Evaluate all tuned models
for model_name, model in best_models.items():
print(f"Evaluating {model_name}...")
metrics = evaluate_model(model.fit(X_train, y_train), X_test, y_test)
print(metrics)
# Plot comparison of tuned models
plot_performance(tuned_results, metrics=["Accuracy", "Precision", "Recall", "F1-Score", "RMSE"])
⚡ Quick Summary
✅ Basic Comparison – Train models with default settings.
✅ Hyperparameter Tuning – Optimize models for better performance.
✅ Evaluation & Visualization – Compare accuracy, precision, recall, F1-score, and RMSE.
✅ Automated ML Benchmarking – Quickly assess multiple models with minimal code.
📌 Contributing
Contributions are welcome! To contribute:
- Fork the repository
- Create a new branch (
feature-branch
) - Make changes & test (
pytest tests/
) - Submit a pull request (PR)
📜 License
AutoMLBench is released under the MIT License.
Get Started Today!
Try AutoMLBench and streamline your machine learning projects. Visit the GitHub repository for more details, examples, and contributions. 🚀 ```
This version includes the appropriate metadata and a refined introduction to AutoMLBench. Let me know if you’d like any modifications! 🚀