- Automated Model Selection: TPOT-powered search for classification & regression
- Production Pipeline: Preprocessing with imputation, encoding, and scaling
- Smart Fallbacks: Baseline models when TPOT fails or times out
- Config-Driven: YAML configuration for reproducible runs
- Data Validation: Catches NaN, single-class, and imbalance issues
- Visualizations: ROC/PR curves, residuals, feature distributions
- Type-Safe: Complete type hints throughout
- Secure: Joblib serialization, path traversal protection
git clone https://github.com/TurboRx/Evo-Learn.git
cd Evo-Learn
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python check_installation.pydocker-compose up evo-learn
docker-compose run evo-learn-test # Run testsfrom core import run_automl
result = run_automl(
data_path="data.csv",
target_column="target",
task="classification",
generations=5,
population_size=20
)
print(f"Accuracy: {result['metrics']['accuracy']:.4f}")
print(f"Model saved: {result['model_path']}")python cli.py train data.csv target --task classification --generations 5
python cli.py predict model.pkl test_data.csv --target target
python cli.py evaluate model.pkl test_data.csv targetCreate config.yaml:
handle_categoricals: true
impute_strategy: median
scale_numeric: true
output_dir: models
n_jobs: -1Use with:
result = run_automl(
data_path="data.csv",
target_column="target",
config_path="config.yaml"
).
├── core.py # Main AutoML logic
├── preprocessing.py # Data preprocessing
├── visualization.py # Plots and dashboards
├── cli.py # Command-line interface
├── utils.py # Utility functions
├── examples/ # Usage examples
└── tests/ # Test suite
See examples/ directory:
01_basic_classification.py02_regression_with_missing_data.py03_imbalanced_classification.py04_categorical_features.py05_new_features_demo.py
pytest tests/
pytest tests/ --cov=. --cov-report=htmlpip install -e .
pre-commit install
black .
flake8 .
mypy .MIT License - see LICENSE file
Pull requests welcome. Please ensure:
- Tests pass
- Code formatted with Black
- Type hints included
- Documentation updated
Note: Requires Python 3.10+