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.
Files changed (33) hide show
  1. smartml_assistant-0.2.0/LICENSE +21 -0
  2. smartml_assistant-0.2.0/PKG-INFO +130 -0
  3. smartml_assistant-0.2.0/README.md +78 -0
  4. smartml_assistant-0.2.0/pyproject.toml +68 -0
  5. smartml_assistant-0.2.0/setup.cfg +4 -0
  6. smartml_assistant-0.2.0/smartml/__init__.py +442 -0
  7. smartml_assistant-0.2.0/smartml/assistant.py +806 -0
  8. smartml_assistant-0.2.0/smartml/core/__init__.py +64 -0
  9. smartml_assistant-0.2.0/smartml/core/analyzer.py +402 -0
  10. smartml_assistant-0.2.0/smartml/core/anomaly.py +273 -0
  11. smartml_assistant-0.2.0/smartml/core/clustering.py +345 -0
  12. smartml_assistant-0.2.0/smartml/core/explainer.py +64 -0
  13. smartml_assistant-0.2.0/smartml/core/feature_engineer.py +283 -0
  14. smartml_assistant-0.2.0/smartml/core/feature_selector.py +295 -0
  15. smartml_assistant-0.2.0/smartml/core/loaders.py +165 -0
  16. smartml_assistant-0.2.0/smartml/core/persistence.py +112 -0
  17. smartml_assistant-0.2.0/smartml/core/preprocessor.py +184 -0
  18. smartml_assistant-0.2.0/smartml/core/reporter.py +156 -0
  19. smartml_assistant-0.2.0/smartml/core/trainer.py +442 -0
  20. smartml_assistant-0.2.0/smartml/core/visualizer.py +458 -0
  21. smartml_assistant-0.2.0/smartml/py.typed +1 -0
  22. smartml_assistant-0.2.0/smartml_assistant.egg-info/PKG-INFO +130 -0
  23. smartml_assistant-0.2.0/smartml_assistant.egg-info/SOURCES.txt +31 -0
  24. smartml_assistant-0.2.0/smartml_assistant.egg-info/dependency_links.txt +1 -0
  25. smartml_assistant-0.2.0/smartml_assistant.egg-info/requires.txt +33 -0
  26. smartml_assistant-0.2.0/smartml_assistant.egg-info/top_level.txt +1 -0
  27. smartml_assistant-0.2.0/tests/test_assistant.py +120 -0
  28. smartml_assistant-0.2.0/tests/test_clustering.py +38 -0
  29. smartml_assistant-0.2.0/tests/test_core.py +155 -0
  30. smartml_assistant-0.2.0/tests/test_feature_engineering.py +56 -0
  31. smartml_assistant-0.2.0/tests/test_feature_selection.py +44 -0
  32. smartml_assistant-0.2.0/tests/test_loaders.py +32 -0
  33. 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"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+