FeatureIQ
A knowledge graph and meta-learning framework for context-aware automated feature engineering.
The Problem
Feature engineering is the most impactful yet most time-consuming step in building machine learning models. Practitioners repeatedly make the same decisions -- log-transforming skewed features, one-hot encoding categoricals, scaling for distance-based models -- but these decisions are rarely captured in a reusable, systematic way. The right transformations depend on three interacting factors: the data characteristics, the problem type, and the downstream algorithm. Getting this wrong wastes time and hurts model performance.
FeatureIQ solves this by encoding feature engineering expertise into a structured ontology of rules, each backed by real citations from ML literature. It profiles your dataset, matches applicable rules based on column statistics and your declared algorithm, and builds an sklearn-compatible transformation pipeline automatically. For advanced users, a meta-learning layer trained on OpenML benchmarks can re-rank recommendations based on what historically worked for similar datasets.
Installation
pip install featureiq
With meta-learning support (LightGBM + OpenML):
pip install featureiq[meta]
Or with Poetry:
poetry add featureiq
poetry add featureiq -E meta # with meta-learning
Quick Start
import pandas as pd
from sklearn.datasets import load_iris
from featureiq import FeatureIQ
data = load_iris()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = pd.Series(data.target, name="target")
fiq = FeatureIQ(
problem_type="multiclass_classification",
algorithm="random_forest",
)
X_transformed = fiq.fit_transform(X, y)
# Inspect recommendations
print(fiq.score_report())
for col, recs in fiq.recommend().items():
for rec in recs:
print(f" {col}: {rec['transformation']} (confidence: {rec['confidence']})")
FeatureIQ works inside sklearn pipelines:
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
pipe = Pipeline([
("features", FeatureIQ(problem_type="binary_classification", algorithm="logistic_regression")),
("clf", LogisticRegression()),
])
pipe.fit(X_train, y_train)
predictions = pipe.predict(X_test)
Key Features
Composability
Control exactly what FeatureIQ does:
fiq = FeatureIQ(
problem_type="regression",
algorithm="ridge",
exclude_columns=["id", "timestamp"], # pass through untouched
override_transforms={"price": ["log_transform", "standard_scaler"]}, # your rules
pre_transforms=[("custom_step", MyTransformer())], # before FeatureIQ
post_transforms=[("pca", PCA(n_components=10))], # after FeatureIQ
)
Validation and Ablation
Verify that transforms actually help:
from sklearn.linear_model import Ridge
fiq.fit(X_train, y_train)
results = fiq.validate(X_train, y_train, estimator=Ridge(), cv=5, scoring="r2")
print(f"FeatureIQ: {results['featureiq_score']:.3f} Baseline: {results['baseline_score']:.3f}")
# Per-transform impact analysis
ablation = fiq.ablate(X_train, y_train, estimator=Ridge(), cv=3)
for item in ablation[:5]:
print(f" {item['column']}/{item['transformation']}: impact={item['impact']:.4f}")
Cross-Column Awareness
FeatureIQ detects multicollinearity, computes VIF scores, and recommends accordingly for linear models -- while correctly skipping these checks for tree-based models that handle correlation natively.
Explainability
Every recommendation cites a real source:
fiq.explain_report() # rich-formatted table with evidence and citations
How It Works
FeatureIQ is built on three pillars:
-
Data Profiling -- Automatically analyzes every column: distribution shape, missing rates, cardinality, outliers, temporal structure, and cross-column correlations.
-
Ontology Rules -- A curated knowledge graph of feature engineering rules, each specifying when a transformation should (or should not) be applied. Rules are written in YAML, cite real ML literature, and can be extended by anyone.
-
Meta-Learning (optional) -- A LightGBM model trained on OpenML benchmarks that predicts which transformations will improve performance for datasets similar to yours. Falls back gracefully to ontology-only mode when no trained model is available.
Supported Algorithms
| Algorithm | Family |
|---|---|
| XGBoost | Tree-based |
| LightGBM | Tree-based |
| Random Forest | Tree-based |
| Decision Tree | Tree-based |
| Gradient Boosting | Tree-based |
| Logistic Regression | Linear Model |
| Linear Regression | Linear Model |
| Ridge | Linear Model |
| Lasso | Linear Model |
| SVM | Distance-based |
| KNN | Distance-based |
| MLP | Neural Network |
| AdaBoost | Ensemble |
| Bagging | Ensemble |
Supported Problem Types
| Problem Type | Value |
|---|---|
| Binary Classification | binary_classification |
| Multiclass Classification | multiclass_classification |
| Regression | regression |
| Time Series Forecasting | time_series_forecasting |
| Anomaly Detection | anomaly_detection |
API Overview
| Method | Description |
|---|---|
fit(X, y) |
Profile data, generate recommendations, build pipeline |
transform(X) |
Apply fitted pipeline to new data |
recommend() |
Return human-readable recommendations dict |
validate(X, y, estimator) |
Cross-validate FeatureIQ pipeline vs baseline |
ablate(X, y, estimator) |
Per-transform ablation analysis |
explain(column=None) |
Detailed explanations with evidence |
explain_report() |
Rich-formatted explanation table |
score_report() |
Plain-text summary of recommendations |
get_pipeline() |
Return the fitted sklearn Pipeline |
Contributing
Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines.
To contribute ontology rules, see docs/contributing_rules.md.
Citation
@software{featureiq2026,
title={FeatureIQ: Context-Aware Automated Feature Engineering},
author={Pratik Khedekar},
year={2026},
url={https://github.com/khedekarpratik0337/featureiq},
}
License
FeatureIQ is licensed under the Apache License 2.0.
Metadata
Release files for featureiq 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| featureiq-0.1.0.tar.gz | 39.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| featureiq-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 87.4 kB
Release files / featureiq-0.1.0.tar.gz
| Download URL | featureiq-0.1.0.tar.gz |
|---|---|
| Size | 39.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
95b4d84c593c70f0cc9ec097ef66292a651429b0d9bd28d85d00298c44320e7d
|
|
BLAKE2b-256 checksum How to use checksums |
151994a932f561cd72d8f891a654e7efd4761cc674ab9a9a73f53be8e3cd05e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.3 CPython/3.12.1 Darwin/25.2.0
|
Release files / featureiq-0.1.0-py3-none-any.whl
| Download URL | featureiq-0.1.0-py3-none-any.whl |
|---|---|
| Size | 48.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c852d20346a026da6901d925ad1114e6f3e41a7e58b81631c8bf2d7574a2eb8f
|
|
BLAKE2b-256 checksum How to use checksums |
086fe8fddd9a8c33c71b7ad814e46a5067d3527a81a9d48411d85987e419f609
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.3 CPython/3.12.1 Darwin/25.2.0
|
Security for featureiq 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.