Flexible ML hyperparameter tuning and feature selection toolkit
Supports scikit-learn models and optionally XGBoost / LightGBM.
- Auto-tune hyperparameters (GridSearch)
- Optional greedy backward feature elimination
- Modular
Wrapperclasses for scikit-learn, XGBoost, LightGBM - Unit & integration tested, Python 3.12+
- Lightweight, simple API
Install base (requires Python ≥3.8):
pip install mltuneFor optional XGBoost / LightGBM support:
pip install mltune[xgboost,lgbm]from mltune.wrappers import RandomForestModelWrapper
# Load or prepare data
X, y, X_test = load_data()
# Initialize wrapper with all features
wrapper = RandomForestModelWrapper(features=list(X.columns))
# Auto-tune hyperparameters & feature set
wrapper.autotune(
X, y,
hyperparam_initial_info={
'n_estimators': [90, 95, 100, 105, 110],
'max_depth': [9, 10, 11]
},
feature_selection_strategy="greedy_backward",
verbose=True,
plot=True
)
# Wrapper will use calculated hyperparameters & feature set
predictions = wrapper.predict(X_test)- Wrappers:
- RandomForestModelWrapper
- XGBoostModelWrapper
- LightGBMModelWrapper
- Auto hyperparameter tuning:
- grid_search
- Feature selection strategy:
- none (skip feature elimination)
- greedy_backward
- Add other feature selection strategies (e.g. forward, recursive)
- Add other hyperparameter tuning strategies (e.g. Bayesian optimization)
- Voting strategies
Clone repo, install dev deps:
uv pip install -e .[dev] --systemRun tests:
pytest -vReleased under the MIT License.
Beta: Work in progress. Contributions and ideas welcome!