Skip to main content

Structured AutoML Pipeline with Intelligent Dataset Profiling

Project description

Octolearn ๐Ÿ™

Structured AutoML Pipeline with Intelligent Dataset Profiling

Python 3.8+ License: MIT

Octolearn generates professional-grade intelligence dossiers on your datasets automatically. In under 1 second, you get:

  • ๐Ÿ“Š Risk Score (0-100 data quality assessment)
  • ๐Ÿ“ˆ Feature Importance (baseline model + SHAP analysis)
  • ๐Ÿ”ง Preprocessing Strategy (imputation, encoding, scaling recommendations)
  • ๐Ÿ“‰ Visual Analysis (distributions, correlations, SHAP plots)
  • ๐Ÿ’ก Strategic Recommendations (machine learning insights)
  • ๐Ÿ“„ Professional PDF Report (ready for stakeholders)

No code. No notebooks. Just intelligence.


โšก Quick Start

Installation

pip install octolearn

Basic Usage

from octolearn import AutoML
from sklearn.datasets import load_iris

# Load your dataset
data = load_iris(as_frame=True)
X, y = data.data, data.target

# User-driven preprocessing: override imputer, encoder, scaler, and ID columns
user_params = {
   'imputer_strategy': {'numeric': 'median', 'categorical': 'mode'},
   'encoder_strategy': {'ordinal_cols': ['petal length (cm)'], 'bool_cols': ['sex']},
   'scaler': 'standard',
   'id_columns': ['sample_id']
}

# Initialize and fit with user params
automl = AutoML(**user_params)
automl.fit(X, y)

# Generate comprehensive report (modern black/red PDF)
pdf_file = automl.generate_report()
print(f"Report saved: {pdf_file}")
# Output: octolearn_report_<hash>.pdf

# All trained models are saved in trained_models/ and tracked in the registry

Access Individual Analyses

# Get dataset risk score
risk = automl.get_risk_score()
print(f"Risk Score: {risk['score']}/100")
print(f"Category: {risk['category']}")

# Get feature importance
importance = automl.get_feature_importance()
for feature, score in list(importance.items())[:5]:
    print(f"{feature}: {score:.4f}")

# Get preprocessing suggestions
suggestions = automl.get_preprocessing_suggestions()
for strategy, recs in suggestions.items():
    print(f"{strategy}: {recs}")

๐ŸŽฏ Features

1. Dataset Intelligence (16 Metrics)

  • Row/column count
  • Feature type detection (numeric, categorical, datetime)
  • Missing value analysis
  • Duplicate detection
  • Cardinality assessment
  • Skewness detection
  • Task type auto-detection

2. Risk Scoring (0-100)

Comprehensive data quality assessment including:

  • Missing data impact (0-20 points)
  • Duplicate rows (0-15 points)
  • Class imbalance (0-15 points)
  • Feature skewness (0-10 points)
  • Constant columns (0-10 points)
  • High cardinality features (0-10 points)
  • Feature-to-sample ratio (0-10 points)
  • Sample size penalty (0-5 points)

Risk Categories:

  • โœ… 0-30: Low Risk
  • โš ๏ธ 31-60: Moderate Risk
  • โŒ 61-100: High Risk

3. Preprocessing Recommendations

Auto-generated strategy for:

  • Missing Values: Mean, median, KNN, or iterative imputation
  • Categorical Encoding: One-Hot, Ordinal, or Target Encoding
  • Feature Scaling: StandardScaler vs RobustScaler vs MinMaxScaler
  • Feature Engineering: Polynomial features, interactions, temporal features
  • Column Actions: Removal of constants, cardinality handling

4. Feature Importance

  • Baseline Model: Fast Random Forest (~150ms)
  • SHAP Analysis: TreeExplainer Shapley values
  • Ranking: Top features identified automatically

5. Visual Analysis

6 professional visualizations embedded in PDF:

  • Feature distributions (histograms with KDE)
  • Correlation heatmap
  • SHAP feature importance bar chart

6. Professional Reports

177KB PDF with:

  • Color-coded risk assessment
  • Executive summary
  • Detailed diagnostics
  • Visual analysis
  • Actionable recommendations
  • Professional formatting

๐Ÿ“Š Example Output

DATASET PROFILE:
   Rows: 150
   Columns: 4
   Task Type: classification
   Hash: 8145f023f195

RISK SCORE: 10/100 (Low Risk)
   Risk Factors:
   โ€ข 0.7% duplicate rows
   โ€ข Features/samples ratio: 0.03

FEATURE IMPORTANCE (Top 3):
   1. petal length (cm): 0.4442
   2. petal width (cm): 0.4181
   3. sepal length (cm): 0.1099

PREPROCESSING SUGGESTIONS:
   Missing Values: No missing values detected
   Categorical Encoding: petal length (cm): Ordinal Encoding, sex: Label Encoding (0/1), others: One-Hot Encoding
   Scaling: StandardScaler applied
   Feature Engineering: Consider polynomial features

All model files are saved in trained_models/ and tracked in the registry.
PDF and all plots use a modern black background with red accents and modern font.

๐Ÿ”ฌ API Reference

AutoML()

Main orchestrator class.

Methods

fit(X, y)

Train profiler on dataset.

  • Parameters: X (DataFrame), y (Series or array)
  • Returns: self
generate_report()

Create comprehensive PDF report.

  • Returns: filename (str)
  • Output: Saves PDF with hash-based name
get_risk_score()

Get data quality assessment without full report.

  • Returns: {"score": int, "category": str, "factors": dict}
get_preprocessing_suggestions()

Get preprocessing strategy without full report.

  • Returns: dict with 5 recommendation categories
get_feature_importance()

Get baseline feature importance without full report.

  • Returns: dict of {feature: score}
report()

Get raw profile dataclass.

  • Returns: DatasetProfile

๐Ÿ— Architecture

Octolearn ๐Ÿ™ โ€” The Ultimate User-Driven AutoML & Data Intelligence Suite

Production-Ready, Fully User-Param Driven, Transparent, and Extensible AutoML for Real-World Data Science

Python 3.8+ License: MIT

Octolearn generates professional-grade intelligence dossiers on your datasets automatically. In under 1 second, you get:

  • Full user control at every step โ€” All preprocessing, modeling, and evaluation is user-param driven, with sensible defaults and full override capability.
  • Professional, modern PDF reports โ€” Black background, red accents, modern font, and a model benchmarks/results table with all metrics and parameters.
  • Robust model registry โ€” Every trained model is saved, versioned, and tracked with full metadata in trained_models/ and the registry.
  • Transparent, modular architecture โ€” Every phase is accessible, extensible, and documented. You can access, override, or extend any step.
  • Lightning-fast, production-grade outputs โ€” Full pipeline (profiling, cleaning, modeling, reporting) in under 1 second for most datasets.
  • Zero configuration, but infinite customization โ€” Works out of the box, but you can control every detail.

No code. No notebooks. Just intelligence.

๐Ÿš€ What is Octolearn?

Octolearn is a next-generation AutoML and data intelligence library that gives you:

  • Full user control at every step โ€” All preprocessing, modeling, and evaluation is user-param driven, with sensible defaults and full override capability.
  • Professional, modern PDF reports โ€” Black background, red accents, modern font, and a model benchmarks/results table with all metrics and parameters.
  • Robust model registry โ€” Every trained model is saved, versioned, and tracked with full metadata in trained_models/ and the registry.
  • Transparent, modular architecture โ€” Every phase is accessible, extensible, and documented. You can access, override, or extend any step.
  • Lightning-fast, production-grade outputs โ€” Full pipeline (profiling, cleaning, modeling, reporting) in under 1 second for most datasets.
  • Zero configuration, but infinite customization โ€” Works out of the box, but you can control every detail.

๐Ÿ’ก Why Octolearn?

  • User-param driven: You control imputation, encoding, scaling, ID columns, model selection, evaluation metric, and more.
  • No data leakage: Specify ID columns and they are never used in modeling or predictions.
  • Model registry: All models are saved, versioned, and tracked for reproducibility and deployment.
  • Professional reporting: PDF reports are modern, beautiful, and include a full model benchmarks/results table.
  • API-first, notebook-friendly: Use as a script, in notebooks, or as a backend for your own tools.
  • Extensible: Add your own models, metrics, or reporting sections easily.
  • Transparent: Access every intermediate result, log, and artifact.
  • Production-ready: Used in real-world projects, with robust error handling and logging.

โšก Quick Start

Installation

pip install octolearn

Minimal Usage

from octolearn import AutoML
import pandas as pd

df = pd.read_csv('your_data.csv')
X = df.drop('target', axis=1)
y = df['target']

# All defaults, full pipeline
automl = AutoML()
automl.fit(X, y)
pdf = automl.generate_report()
print(f"Report: {pdf}")

๐Ÿ› ๏ธ Full User-Param Control

automl = AutoML(
    imputer_strategy={"numeric": "median", "categorical": "mode"},
    encoder_strategy={"ordinal_cols": ["grade"], "default": "ohe"},
    scaler="minmax",
    id_columns=["id", "customer_id"],
    train_models=True,
    use_registry=True,
    n_models=3,
    evaluation_metric="f1",
    parallel_processing=True
)
automl.fit(X, y)
results = automl.train_auto_models()
pdf = automl.generate_report()
  • Dataset Profiling: profiling/data_profiler.py performs automatic type detection (numeric, categorical, datetime), missing-value summaries, duplicate detection, skewness and constant-column checks, high-cardinality detection, and produces a stable dataset hash.

๐Ÿ”ฅ Key Features & Power

  • User-param driven preprocessing: Imputer, encoder, scaler, and ID columns are all user-overridable at any point.
  • ID column handling: Any columns listed in id_columns are never used for modeling or predictions, but are preserved for merging and reference.
  • Model registry: Every trained model is saved in trained_models/ and tracked in the registry with full metadata (parameters, metrics, version, hash).
  • Model benchmarks/results table: PDF report includes a table of all trained models, their parameters, and all metrics, with the best model at the top (by your chosen metric).
  • User-param driven evaluation metric: Select the metric (e.g., F1, RMSE, accuracy, etc.) for best model selection and benchmarking.
  • Professional PDF reporting: Black background, red accents, modern font, and full transparency of all results.
  • Access at every point: Access cleaned data, profile, outlier analysis, feature interactions, cleaning log, all trained models, best model, and model benchmarks at any time.
  • Extensible and modular: Add your own models, metrics, or reporting sections with minimal code changes.
  • API-first: All phases and results are accessible via the API.
  • Production-grade error handling and logging: Robust, clear, and debug-friendly.

๐Ÿ“Š Example Output

DATASET PROFILE:
   Rows: 150
   Columns: 4
   Task Type: classification
   Hash: 8145f023f195

RISK SCORE: 10/100 (Low Risk)
   Risk Factors:
   โ€ข 0.7% duplicate rows
   โ€ข Features/samples ratio: 0.03

FEATURE IMPORTANCE (Top 3):
   1. petal length (cm): 0.4442
   2. petal width (cm): 0.4181
   3. sepal length (cm): 0.1099

PREPROCESSING SUGGESTIONS:
   Missing Values: No missing values detected
   Categorical Encoding: petal length (cm): Ordinal Encoding, sex: Label Encoding (0/1), others: One-Hot Encoding
   Scaling: StandardScaler applied
   Feature Engineering: Consider polynomial features

All model files are saved in trained_models/ and tracked in the registry.
PDF and all plots use a modern black background with red accents and modern font.

๐Ÿง‘โ€๐Ÿ’ป Advanced Usage & API

Data Access at Any Point

  • automl.X_ โ€” Cleaned features (IDs dropped for modeling, but available for merging)
  • automl.y_ โ€” Cleaned target
  • automl.profile_ โ€” Full dataset profile (metrics, types, etc.)
  • automl.outlier_results_ โ€” Outlier analysis
  • automl.interaction_results_ โ€” Feature interaction analysis
  • automl.cleaning_log_ โ€” Step-by-step cleaning log
  • automl.trained_models_ โ€” All trained model objects
  • automl.best_model_ โ€” Best model object
  • automl.model_benchmarks_ โ€” List of all model results/benchmarks

API Reference

  • fit(X, y, ...) โ€” Run the full pipeline with user-param overrides
  • generate_report() โ€” Create a professional PDF report
  • train_auto_models(evaluation_metric=...) โ€” Train all models and select best by your metric
  • get_risk_score() โ€” Get risk score and factors
  • get_preprocessing_suggestions() โ€” Get preprocessing plan
  • get_feature_importance() โ€” Get feature ranking
  • get_trained_models() โ€” Dict of all trained models
  • get_best_model() โ€” Best model object
  • report() โ€” Get the full dataset profile

๐Ÿ— Architecture & Extensibility

octolearn/
โ”œโ”€โ”€ core.py                      โ† Main AutoML class
โ”œโ”€โ”€ config.py                    โ† Configuration
โ”œโ”€โ”€ profiling/
โ”‚     โ””โ”€โ”€ data_profiler.py        โ† Dataset analysis (16 metrics)
โ”œโ”€โ”€ experiments/
โ”‚   โ”œโ”€โ”€ risk_scorer.py          โ† Risk assessment (0-100)
โ”‚   โ”œโ”€โ”€ preprocessing_suggester.py  โ† Preprocessing strategy
โ”‚   โ”œโ”€โ”€ baseline_importance.py   โ† Feature ranking
โ”‚   โ”œโ”€โ”€ plot_generator.py        โ† Visualization + SHAP
โ”‚   โ”œโ”€โ”€ recommendation_engine.py โ† Strategic insights
โ”‚   โ””โ”€โ”€ report_generator.py      โ† PDF factory
โ”œโ”€โ”€ feature/                    โ† Feature engineering & selection
โ”œโ”€โ”€ models/                     โ† Model training, registry, selection
โ”œโ”€โ”€ optimization/               โ† Optimization & distributed support
โ”œโ”€โ”€ evaluation/                 โ† Metrics & evaluation
โ”œโ”€โ”€ utils/                      โ† Logging, helpers, error handling

๐ŸŒŸ Power Features & Philosophy

  • User-param driven at every step: Override any phase, any time.
  • No data leakage: ID columns are never used for modeling or predictions.
  • Model registry: All models are saved, versioned, and tracked.
  • Professional, modern PDF reporting: Black background, red accents, modern font, and a model benchmarks/results table.
  • API-first, notebook-friendly, and scriptable: Use anywhere.
  • Extensible and modular: Add your own models, metrics, or reporting sections.
  • Transparent and debuggable: Access every intermediate result, log, and artifact.
  • Production-ready: Robust error handling, logging, and reproducibility.

โšก Performance

Task Time
Profile dataset ~50ms
Calculate risk score ~30ms
Generate suggestions ~20ms
Train baseline model ~150ms
Create visualizations ~200ms
Generate PDF ~100ms
TOTAL ~550ms

๐Ÿ“‹ Requirements

  • Python 3.8+
  • pandas โ‰ฅ 1.0.0
  • numpy โ‰ฅ 1.19.0
  • scikit-learn โ‰ฅ 0.24.0
  • reportlab โ‰ฅ 3.6.0
  • matplotlib โ‰ฅ 3.3.0
  • seaborn โ‰ฅ 0.11.0
  • shap โ‰ฅ 0.40.0

๐Ÿš€ Roadmap

  • User-param driven preprocessing (imputer, encoder, scaler, ID columns)
  • Robust model saving and registry
  • Modern black/red PDF/visuals
  • Model benchmarks/results table in PDF
  • User-param driven evaluation metric
  • Full API and data access at every point
  • Concise, up-to-date documentation
  • Outlier detection & visualization (coming soon)
  • Feature interaction analysis (coming soon)
  • Ensemble model selection (coming soon)
  • MLflow integration (coming soon)

๐Ÿงช Testing

Run Tests

# Basic test
python test_octolearn.py

# Validation test
python validation.py

# Interactive notebook
jupyter notebook octolearn_demo.ipynb

Example Notebooks

  • octolearn_demo.ipynb: Interactive feature showcase
  • notebooks/test_octolearn_full.ipynb: Full pipeline test

๐Ÿ“„ License

MIT License - see LICENSE file for details.


๐Ÿค Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Commit changes
  4. Push to branch
  5. Open a Pull Request

๐Ÿ“ž Support

Issues or Questions?


๐Ÿ™ Philosophy

"Build the skeleton first. Then make it breathe."

Octolearn follows modular, automated, and professional principles:

  • โœ… Modular Architecture - Each component independent
  • โœ… Automation First - Recommendations, not questions
  • โœ… Professional Quality - Production-ready outputs
  • โœ… Reproducible Results - Hash-based naming
  • โœ… Zero Configuration - Works out of the box
  • โœ… User-Param Driven - Full control at every step

Made with โ˜• and ๐Ÿ™ Logic.

  • Risk Scoring: experiments/risk_scorer.py computes a 0โ€“100 data quality risk score and returns contributing factors and a categorical label (Low / Moderate / High).
  • Preprocessing Suggestions: experiments/preprocessing_suggester.py generates actionable strategies for imputation, encoding, scaling, cardinality handling, and column-specific actions.
  • Baseline Feature Importance: experiments/baseline_importance.py trains a fast Random Forest baseline to produce feature importances.
  • Explainability (SHAP): experiments/plot_generator.py integrates SHAP TreeExplainer to produce SHAP summary plots and an importance bar chart for tree-based models.
  • Visual Diagnostics: experiments/plot_generator.py creates per-feature distribution plots, correlation heatmaps, and saves PNG artifacts (non-interactive Agg backend supported).
  • Automated PDF Report: experiments/report_generator.py composes a professional PDF dossier that embeds executive summary, risk banner, preprocessing suggestions, baseline importance, and visual diagnostics.
  • Recommendation Engine: experiments/recommendation_engine.py synthesizes profiling and model signals into concise, prioritized recommendations.
  • Core API / Orchestration: core.py exposes the high-level AutoML class with methods fit(X, y), generate_report(), get_risk_score(), get_preprocessing_suggestions(), get_feature_importance(), and report() (raw profile).
  • Model & Optimization Utilities: models/ (selector & registry) and optimization/optimizer.py provide foundations for model selection and future HPO workflows.
  • Preprocessing Pipeline Builder: preprocessing/pipeline_builder.py offers utilities to construct reproducible sklearn-compatible pipelines from suggested strategies.
  • Feature Engineering & Selection: feature/feature_engineer.py and feature/feature_selector.py include initial helpers for transformations and automatic selection heuristics.
  • Evaluation & Metrics: evaluation/metrics.py contains common evaluation helpers used by experiments and baseline checks.
  • Tracking & Utilities: experiments/tracker.py plus utils/helpers.py provide lightweight run-tracking, reproducibility helpers, and I/O utilities.
  • Fonts & Assets: fonts/ contains font assets used when rendering the PDF reports for consistent professional typography.

These components are designed to work together end-to-end: run AutoML().fit(X,y) to create a DatasetProfile, inspect suggestions and risks via the API, and call generate_report() to produce a stakeholder-ready PDF report and visual artifacts.

โšก Performance

Task Time
Profile dataset ~50ms
Calculate risk score ~30ms
Generate suggestions ~20ms
Train baseline model ~150ms
Create visualizations ~200ms
Generate PDF ~100ms
TOTAL ~550ms

๐Ÿ“‹ Requirements

  • Python 3.8+
  • pandas โ‰ฅ 1.0.0
  • numpy โ‰ฅ 1.19.0
  • scikit-learn โ‰ฅ 0.24.0
  • reportlab โ‰ฅ 3.6.0
  • matplotlib โ‰ฅ 3.3.0
  • seaborn โ‰ฅ 0.11.0
  • shap โ‰ฅ 0.40.0

๐Ÿงช Testing

Run Tests

# Basic test
python test_octolearn.py

# Validation test
python validation.py

# Interactive notebook
jupyter notebook octolearn_demo.ipynb

Example Notebooks

  • octolearn_demo.ipynb: Interactive feature showcase

๐Ÿ“„ License

MIT License - see LICENSE file for details.


๐Ÿค Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Commit changes
  4. Push to branch
  5. Open a Pull Request

๐Ÿ“ž Support

Issues or Questions?


๐Ÿ™ Philosophy

"Build the skeleton first. Then make it breathe."

Octolearn follows modular, automated principles:

  • โœ… Modular Architecture - Each component independent
  • โœ… Automation First - Recommendations, not questions
  • โœ… Professional Quality - Production-ready outputs
  • โœ… Reproducible Results - Hash-based naming
  • โœ… Zero Configuration - Works out of the box

Made with โ˜• and ๐Ÿ™ Logic.

Octolearn v0.5.3 โ€” Intelligent AutoML for Everyone

Optional distributed execution: if you need scalable runs with large datasets or parallel Optuna trials, install the distributed extras:

pip install .[distributed]

Benchmarks and reproducible examples are available in the benchmarks/ and notebooks/ folders. See benchmarks/README.md for details.

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

octolearn-0.5.3.tar.gz (786.4 kB view details)

Uploaded Source

Built Distribution

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

octolearn-0.5.3-py3-none-any.whl (744.2 kB view details)

Uploaded Python 3

File details

Details for the file octolearn-0.5.3.tar.gz.

File metadata

  • Download URL: octolearn-0.5.3.tar.gz
  • Upload date:
  • Size: 786.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for octolearn-0.5.3.tar.gz
Algorithm Hash digest
SHA256 a64233fd41fff21f85b76ee360e74caf21d76b2bcd2217167970c07da67700e6
MD5 37af0ec32b8954235989f69a7ad8440f
BLAKE2b-256 86d2ea3c09d4521da5ba68cb0d4247b9ba319d40b2956ba334829b424fd1e7b0

See more details on using hashes here.

File details

Details for the file octolearn-0.5.3-py3-none-any.whl.

File metadata

  • Download URL: octolearn-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 744.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for octolearn-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7f6d839650e0ecd561c93e75612fbfc040605874b9a8d754f6e226bd0d713ea9
MD5 d96bba84862d39af93de6e2bcb893fd4
BLAKE2b-256 87c63b2ee00ccd4bed69a7f376c6cdc5914b64cef0c38b99b3e681a441c80172

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