smartml-assistant 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- smartml_assistant-0.2.0/LICENSE +21 -0
- smartml_assistant-0.2.0/PKG-INFO +130 -0
- smartml_assistant-0.2.0/README.md +78 -0
- smartml_assistant-0.2.0/pyproject.toml +68 -0
- smartml_assistant-0.2.0/setup.cfg +4 -0
- smartml_assistant-0.2.0/smartml/__init__.py +442 -0
- smartml_assistant-0.2.0/smartml/assistant.py +806 -0
- smartml_assistant-0.2.0/smartml/core/__init__.py +64 -0
- smartml_assistant-0.2.0/smartml/core/analyzer.py +402 -0
- smartml_assistant-0.2.0/smartml/core/anomaly.py +273 -0
- smartml_assistant-0.2.0/smartml/core/clustering.py +345 -0
- smartml_assistant-0.2.0/smartml/core/explainer.py +64 -0
- smartml_assistant-0.2.0/smartml/core/feature_engineer.py +283 -0
- smartml_assistant-0.2.0/smartml/core/feature_selector.py +295 -0
- smartml_assistant-0.2.0/smartml/core/loaders.py +165 -0
- smartml_assistant-0.2.0/smartml/core/persistence.py +112 -0
- smartml_assistant-0.2.0/smartml/core/preprocessor.py +184 -0
- smartml_assistant-0.2.0/smartml/core/reporter.py +156 -0
- smartml_assistant-0.2.0/smartml/core/trainer.py +442 -0
- smartml_assistant-0.2.0/smartml/core/visualizer.py +458 -0
- smartml_assistant-0.2.0/smartml/py.typed +1 -0
- smartml_assistant-0.2.0/smartml_assistant.egg-info/PKG-INFO +130 -0
- smartml_assistant-0.2.0/smartml_assistant.egg-info/SOURCES.txt +31 -0
- smartml_assistant-0.2.0/smartml_assistant.egg-info/dependency_links.txt +1 -0
- smartml_assistant-0.2.0/smartml_assistant.egg-info/requires.txt +33 -0
- smartml_assistant-0.2.0/smartml_assistant.egg-info/top_level.txt +1 -0
- smartml_assistant-0.2.0/tests/test_assistant.py +120 -0
- smartml_assistant-0.2.0/tests/test_clustering.py +38 -0
- smartml_assistant-0.2.0/tests/test_core.py +155 -0
- smartml_assistant-0.2.0/tests/test_feature_engineering.py +56 -0
- smartml_assistant-0.2.0/tests/test_feature_selection.py +44 -0
- smartml_assistant-0.2.0/tests/test_loaders.py +32 -0
- smartml_assistant-0.2.0/tests/test_public_api.py +45 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SmartML Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: smartml-assistant
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: A production-grade AutoML engine with a conversational Assistant interface.
|
|
5
|
+
Author-email: SmartML Contributors <contributors@smartml.org>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/smartml-contributors/smartml-assistant
|
|
8
|
+
Project-URL: Repository, https://github.com/smartml-contributors/smartml-assistant
|
|
9
|
+
Project-URL: Documentation, https://github.com/smartml-contributors/smartml-assistant#readme
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/smartml-contributors/smartml-assistant/issues
|
|
11
|
+
Keywords: automl,machine-learning,assistant,sklearn,explainable-ai
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: pandas>=2.0
|
|
25
|
+
Requires-Dist: numpy>=1.24
|
|
26
|
+
Requires-Dist: scikit-learn>=1.3
|
|
27
|
+
Requires-Dist: matplotlib>=3.7
|
|
28
|
+
Requires-Dist: joblib>=1.3
|
|
29
|
+
Provides-Extra: boosting
|
|
30
|
+
Requires-Dist: xgboost>=2.0; extra == "boosting"
|
|
31
|
+
Requires-Dist: lightgbm>=4.0; extra == "boosting"
|
|
32
|
+
Requires-Dist: catboost>=1.2; extra == "boosting"
|
|
33
|
+
Provides-Extra: tuning
|
|
34
|
+
Requires-Dist: optuna>=3.0; extra == "tuning"
|
|
35
|
+
Provides-Extra: explain
|
|
36
|
+
Requires-Dist: shap>=0.43; extra == "explain"
|
|
37
|
+
Provides-Extra: viz
|
|
38
|
+
Requires-Dist: plotly>=5.0; extra == "viz"
|
|
39
|
+
Requires-Dist: seaborn>=0.12; extra == "viz"
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: pytest>=7.4; extra == "dev"
|
|
42
|
+
Requires-Dist: pytest-cov>=4.0; extra == "dev"
|
|
43
|
+
Provides-Extra: all
|
|
44
|
+
Requires-Dist: xgboost>=2.0; extra == "all"
|
|
45
|
+
Requires-Dist: lightgbm>=4.0; extra == "all"
|
|
46
|
+
Requires-Dist: catboost>=1.2; extra == "all"
|
|
47
|
+
Requires-Dist: optuna>=3.0; extra == "all"
|
|
48
|
+
Requires-Dist: shap>=0.43; extra == "all"
|
|
49
|
+
Requires-Dist: plotly>=5.0; extra == "all"
|
|
50
|
+
Requires-Dist: seaborn>=0.12; extra == "all"
|
|
51
|
+
Dynamic: license-file
|
|
52
|
+
|
|
53
|
+
# SmartML
|
|
54
|
+
|
|
55
|
+
**SmartML** is a production-grade, enterprise-level Machine Learning Automation Library for Python. It combines data preprocessing, feature engineering, feature selection, AutoML model training, explainable AI, visualization, and a conversational Assistant interface into a single unified framework.
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pip install smartml-assistant
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
To install with optional boosting algorithms (XGBoost, LightGBM, CatBoost) and visualization libraries (Plotly, Seaborn):
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pip install "smartml-assistant[all]"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Quick Start
|
|
70
|
+
|
|
71
|
+
### The One-Line Auto-Pilot
|
|
72
|
+
Provide your DataFrame and the target column, and SmartML will do the rest: profiling, cleaning, feature engineering, model comparison, training, and evaluation.
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
import smartml as sml
|
|
76
|
+
|
|
77
|
+
# Load data (auto-detects CSV, Parquet, JSON, Excel, etc.)
|
|
78
|
+
df = sml.load("data/house_prices.csv")
|
|
79
|
+
|
|
80
|
+
# Run the complete AutoML pipeline
|
|
81
|
+
result = sml.auto(df, target="SalePrice", output_dir="my_project")
|
|
82
|
+
|
|
83
|
+
# Explain the best model
|
|
84
|
+
print(result.explain())
|
|
85
|
+
|
|
86
|
+
# Make predictions on new data
|
|
87
|
+
preds = result.predict(new_df)
|
|
88
|
+
|
|
89
|
+
# Save the model
|
|
90
|
+
result.save("my_model")
|
|
91
|
+
|
|
92
|
+
# Generate an HTML report
|
|
93
|
+
result.report(fmt="html")
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Unsupervised Clustering
|
|
97
|
+
```python
|
|
98
|
+
df = sml.load("data/customer_segments.csv")
|
|
99
|
+
result = sml.clustering_pipeline(df, algorithm="auto")
|
|
100
|
+
print(f"Found {result.clustering_result.n_clusters} clusters!")
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Conversational Assistant
|
|
104
|
+
Interact with your data using natural language:
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
import smartml as sml
|
|
108
|
+
|
|
109
|
+
assistant = sml.Assistant(df, target="SalePrice")
|
|
110
|
+
|
|
111
|
+
assistant.ask("Clean my dataset")
|
|
112
|
+
assistant.ask("Engineer some new features")
|
|
113
|
+
assistant.ask("Train the best regression model")
|
|
114
|
+
assistant.ask("Why did you choose this algorithm?")
|
|
115
|
+
assistant.ask("Show feature importance")
|
|
116
|
+
assistant.ask("Generate a report")
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Features
|
|
120
|
+
|
|
121
|
+
- **Automated Data Cleaning:** Imputation, deduplication, low-cardinality one-hot encoding, and scaling.
|
|
122
|
+
- **Advanced Feature Engineering:** Polynomial interactions, date decomposition, frequency encoding, and pairwise ratios.
|
|
123
|
+
- **Smart Feature Selection:** Variance thresholding, correlation filtering, univariate selection, and model-based feature importance thresholding.
|
|
124
|
+
- **Multi-Model Leaderboard:** Automatically cross-validates Logistic/Linear Regression, Random Forest, Gradient Boosting, SVM, XGBoost, LightGBM, CatBoost, and more.
|
|
125
|
+
- **Unsupervised Learning:** Full clustering (KMeans, DBSCAN, GMM, Agglomerative) and Anomaly Detection (IsolationForest, LOF, OneClassSVM).
|
|
126
|
+
- **Explainable AI:** Natural-language justifications for algorithm selection and feature importance.
|
|
127
|
+
- **Safe & Headless:** Safe for interactive environments. No global state side-effects.
|
|
128
|
+
|
|
129
|
+
## License
|
|
130
|
+
MIT License. See `LICENSE` for more information.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# SmartML
|
|
2
|
+
|
|
3
|
+
**SmartML** is a production-grade, enterprise-level Machine Learning Automation Library for Python. It combines data preprocessing, feature engineering, feature selection, AutoML model training, explainable AI, visualization, and a conversational Assistant interface into a single unified framework.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install smartml-assistant
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
To install with optional boosting algorithms (XGBoost, LightGBM, CatBoost) and visualization libraries (Plotly, Seaborn):
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install "smartml-assistant[all]"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
### The One-Line Auto-Pilot
|
|
20
|
+
Provide your DataFrame and the target column, and SmartML will do the rest: profiling, cleaning, feature engineering, model comparison, training, and evaluation.
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
import smartml as sml
|
|
24
|
+
|
|
25
|
+
# Load data (auto-detects CSV, Parquet, JSON, Excel, etc.)
|
|
26
|
+
df = sml.load("data/house_prices.csv")
|
|
27
|
+
|
|
28
|
+
# Run the complete AutoML pipeline
|
|
29
|
+
result = sml.auto(df, target="SalePrice", output_dir="my_project")
|
|
30
|
+
|
|
31
|
+
# Explain the best model
|
|
32
|
+
print(result.explain())
|
|
33
|
+
|
|
34
|
+
# Make predictions on new data
|
|
35
|
+
preds = result.predict(new_df)
|
|
36
|
+
|
|
37
|
+
# Save the model
|
|
38
|
+
result.save("my_model")
|
|
39
|
+
|
|
40
|
+
# Generate an HTML report
|
|
41
|
+
result.report(fmt="html")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Unsupervised Clustering
|
|
45
|
+
```python
|
|
46
|
+
df = sml.load("data/customer_segments.csv")
|
|
47
|
+
result = sml.clustering_pipeline(df, algorithm="auto")
|
|
48
|
+
print(f"Found {result.clustering_result.n_clusters} clusters!")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Conversational Assistant
|
|
52
|
+
Interact with your data using natural language:
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
import smartml as sml
|
|
56
|
+
|
|
57
|
+
assistant = sml.Assistant(df, target="SalePrice")
|
|
58
|
+
|
|
59
|
+
assistant.ask("Clean my dataset")
|
|
60
|
+
assistant.ask("Engineer some new features")
|
|
61
|
+
assistant.ask("Train the best regression model")
|
|
62
|
+
assistant.ask("Why did you choose this algorithm?")
|
|
63
|
+
assistant.ask("Show feature importance")
|
|
64
|
+
assistant.ask("Generate a report")
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Features
|
|
68
|
+
|
|
69
|
+
- **Automated Data Cleaning:** Imputation, deduplication, low-cardinality one-hot encoding, and scaling.
|
|
70
|
+
- **Advanced Feature Engineering:** Polynomial interactions, date decomposition, frequency encoding, and pairwise ratios.
|
|
71
|
+
- **Smart Feature Selection:** Variance thresholding, correlation filtering, univariate selection, and model-based feature importance thresholding.
|
|
72
|
+
- **Multi-Model Leaderboard:** Automatically cross-validates Logistic/Linear Regression, Random Forest, Gradient Boosting, SVM, XGBoost, LightGBM, CatBoost, and more.
|
|
73
|
+
- **Unsupervised Learning:** Full clustering (KMeans, DBSCAN, GMM, Agglomerative) and Anomaly Detection (IsolationForest, LOF, OneClassSVM).
|
|
74
|
+
- **Explainable AI:** Natural-language justifications for algorithm selection and feature importance.
|
|
75
|
+
- **Safe & Headless:** Safe for interactive environments. No global state side-effects.
|
|
76
|
+
|
|
77
|
+
## License
|
|
78
|
+
MIT License. See `LICENSE` for more information.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "smartml-assistant"
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "A production-grade AutoML engine with a conversational Assistant interface."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
authors = [{ name = "SmartML Contributors", email = "contributors@smartml.org" }]
|
|
13
|
+
keywords = ["automl", "machine-learning", "assistant", "sklearn", "explainable-ai"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 4 - Beta",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"Intended Audience :: Science/Research",
|
|
18
|
+
"License :: OSI Approved :: MIT License",
|
|
19
|
+
"Programming Language :: Python :: 3",
|
|
20
|
+
"Programming Language :: Python :: 3.10",
|
|
21
|
+
"Programming Language :: Python :: 3.11",
|
|
22
|
+
"Programming Language :: Python :: 3.12",
|
|
23
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
24
|
+
]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"pandas>=2.0",
|
|
27
|
+
"numpy>=1.24",
|
|
28
|
+
"scikit-learn>=1.3",
|
|
29
|
+
"matplotlib>=3.7",
|
|
30
|
+
"joblib>=1.3",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[project.urls]
|
|
34
|
+
Homepage = "https://github.com/smartml-contributors/smartml-assistant"
|
|
35
|
+
Repository = "https://github.com/smartml-contributors/smartml-assistant"
|
|
36
|
+
Documentation = "https://github.com/smartml-contributors/smartml-assistant#readme"
|
|
37
|
+
"Bug Tracker" = "https://github.com/smartml-contributors/smartml-assistant/issues"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
[project.optional-dependencies]
|
|
41
|
+
boosting = ["xgboost>=2.0", "lightgbm>=4.0", "catboost>=1.2"]
|
|
42
|
+
tuning = ["optuna>=3.0"]
|
|
43
|
+
explain = ["shap>=0.43"]
|
|
44
|
+
viz = ["plotly>=5.0", "seaborn>=0.12"]
|
|
45
|
+
dev = [
|
|
46
|
+
"pytest>=7.4",
|
|
47
|
+
"pytest-cov>=4.0",
|
|
48
|
+
]
|
|
49
|
+
all = [
|
|
50
|
+
"xgboost>=2.0",
|
|
51
|
+
"lightgbm>=4.0",
|
|
52
|
+
"catboost>=1.2",
|
|
53
|
+
"optuna>=3.0",
|
|
54
|
+
"shap>=0.43",
|
|
55
|
+
"plotly>=5.0",
|
|
56
|
+
"seaborn>=0.12",
|
|
57
|
+
]
|
|
58
|
+
|
|
59
|
+
[tool.setuptools.packages.find]
|
|
60
|
+
include = ["smartml*"]
|
|
61
|
+
|
|
62
|
+
[tool.pytest.ini_options]
|
|
63
|
+
filterwarnings = [
|
|
64
|
+
"ignore::DeprecationWarning",
|
|
65
|
+
"ignore::PendingDeprecationWarning",
|
|
66
|
+
"ignore::FutureWarning",
|
|
67
|
+
]
|
|
68
|
+
testpaths = ["tests"]
|