Beginner-friendly AutoML library for tabular data
Project description
pyezml 🚀
Beginner-Friendly AutoML for Tabular Data
Train machine learning models in one line of code — no ML expertise required.
pyezml is a lightweight yet powerful AutoML library that automatically handles preprocessing, model selection, and prediction so you can focus on results.
Built for students, developers, analysts, and beginners who want fast, reliable predictions without complex pipelines.
🚀 What's New in v0.2.3
✨ Synthetic Dataset Generator (new)
pyezml now includes a powerful Synthetic Dataset Generator to help you quickly create realistic tabular data for testing, benchmarking, and learning machine learning workflows.
🚀 What you can do
- 📊 Generate data from statistical distributions
- 🧮 Automatically create polynomial, trig, and interaction features
- 🎯 Build synthetic targets for regression and classification
- 🔁 Reproduce datasets with fixed random seeds
- ⚡ Create rich ML-ready datasets in one line
🔥 Quick Example
from ezml import make_mathematical_synthetic_data
df = make_mathematical_synthetic_data(n_samples=1000)
🚀 Installation
pip install pyezml
Optional (recommended for best mode):
pip install lightgbm
Requirements
- Python ≥ 3.8
⚡ Quick Example
from ezml import train_model
model = train_model("data.csv", target="price")
print(model.score())
That’s it — model trained and evaluated.
🧪 Generate Sample Data (NEW)
No dataset? No problem.
from ezml.datasets import make_classification_data
from ezml import train_model
df = make_classification_data()
model = train_model(df, target="target")
print(model.score())
Perfect for quick testing and demos.
🧬 Ultimate Synthetic Data Generation
Generate advanced datasets with probabilistic distributions and mathematical feature engineering:
from ezml.datasets import make_mathematical_synthetic_data, list_supported_distributions
print(list_supported_distributions())
df = make_mathematical_synthetic_data(
n_samples=2000,
task="classification",
target_name="label"
)
print(df.head())
You can also build custom schemas with normal, uniform, gamma, beta, poisson, binomial, triangular and more.
🔮 Labeled Probability Predictions (NEW)
pyezml returns human-readable probabilities:
probs = model.predict_proba({
"feature_0": 0.5,
"feature_1": -1.2
})
print(probs)
Example output:
[{'No': 0.12, 'Yes': 0.88}]
No index guessing required.
💾 Auto-Save Models (NEW)
Save automatically during training:
model = train_model(
df,
target="target",
save="my_model" # .pkl added automatically
)
Manual save still works:
model.save("model.pkl")
🔧 Advanced Usage
from ezml import AutoModel
model = AutoModel(mode="best") # fast | best
model.train("data.csv", target="price")
print(model.score())
print(model.feature_importance())
⚡ Model Modes
pyezml provides two performance modes:
🚀 fast (default)
- Model: RandomForest
- Best for: small to medium datasets
- Why use it: fast, robust, beginner-safe
🔥 best
- Model: LightGBM
- Best for: larger datasets and higher accuracy
- Why use it: stronger learning on complex tabular data
💡 Automatically falls back to RandomForest if LightGBM is unavailable.
📊 Metrics API
After training:
Classification
- Accuracy
- F1-score
Regression
- R² score
- MAE
Example:
print(model.metrics_)
print(model.score()) # primary metric
🔮 Flexible Prediction Inputs
Dict (recommended)
model.predict({"feature1": value1, "feature2": value2})
Batch dict
model.predict([
{"feature1": v1, "feature2": v2},
{"feature1": v3, "feature2": v4}
])
pandas DataFrame
model.predict(df)
🧹 Automatic Preprocessing
pyezml automatically handles:
- Missing value imputation
- Categorical encoding
- Optional feature scaling
- Column alignment during prediction
No manual preprocessing required.
📓 Demo Notebook
See the full working example:
👉 examples/pyezml_demo.ipynb
🎯 Project Goal
pyezml aims to make machine learning:
- simple
- fast
- accessible
- beginner-friendly
without sacrificing real-world usability.
🤝 Contributing
Contributions, issues, and suggestions are welcome!
If you find a bug or have an idea:
- Fork the repo
- Create a feature branch
- Submit a pull request
📜 License
MIT License — free to use and modify.
⭐ Support
If you find pyezml useful, consider giving the repository a star ⭐ It helps the project grow!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyezml-0.2.3.tar.gz.
File metadata
- Download URL: pyezml-0.2.3.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f92bfe729e29ae8ea2f94978c1d97c05d23e74ea2568009e1a9e76330e72af4
|
|
| MD5 |
17da4103336767a280b21b8a4103bcf3
|
|
| BLAKE2b-256 |
ae6e100f7a896a9e926b5e9077fc490ce39c97448fcc34ba7d6e2468e81df0d1
|
File details
Details for the file pyezml-0.2.3-py3-none-any.whl.
File metadata
- Download URL: pyezml-0.2.3-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1321ea224333c13284ab748645eecc591cfd2d2daebdaee369967448b7751d2e
|
|
| MD5 |
4895967d483bff59822042e74de0fd3f
|
|
| BLAKE2b-256 |
1c897e235f86716e774c27359cc0ee2a2a6ff94b52bac69a7a7e0184a32820a1
|