Skip to main content

Beginner-friendly AutoML library for tabular data

Project description

pyezml 🚀

Beginner-Friendly AutoML for Tabular Data

PyPI version Python License Downloads GitHub stars

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.0

  • Labeled probability predictions
  • Auto-save via save= parameter
  • Automatic .pkl extension handling
  • Robust DataFrame prediction support
  • Built-in sample data generators
  • Unified prediction pipeline

🚀 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.


🔮 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:

  1. Fork the repo
  2. Create a feature branch
  3. 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

pyezml-0.2.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyezml-0.2.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file pyezml-0.2.0.tar.gz.

File metadata

  • Download URL: pyezml-0.2.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyezml-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4a750a69608e0a6e3ebecf3df0ddad89749c1e8736ea32c754e2a8c6a962ffef
MD5 d27d6c7c3cf07593dd0191a21b975c1e
BLAKE2b-256 ac7cefba03b93d4ac25e398f844009f29a3f2dae688f6fcdd1d8f3ae93f3dc3f

See more details on using hashes here.

File details

Details for the file pyezml-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyezml-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyezml-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b87aa0a430dd4962267cb10785ebce6bcabe61717349f834613011b9ce7e6a97
MD5 a47249c2e06c59efdfd54b30669b85b5
BLAKE2b-256 8c2018ecef509459e2835d116d129bfa75f3a0d17ab57b8db64f429d9f5592c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page