endgame-ml 1.0.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 (564) hide show
  1. endgame_ml-1.0.0/.github/ISSUE_TEMPLATE/bug_report.yml +59 -0
  2. endgame_ml-1.0.0/.github/ISSUE_TEMPLATE/feature_request.yml +71 -0
  3. endgame_ml-1.0.0/.github/PULL_REQUEST_TEMPLATE.md +19 -0
  4. endgame_ml-1.0.0/.github/workflows/ci.yml +86 -0
  5. endgame_ml-1.0.0/.github/workflows/publish.yml +28 -0
  6. endgame_ml-1.0.0/.gitignore +77 -0
  7. endgame_ml-1.0.0/.mcp.json +8 -0
  8. endgame_ml-1.0.0/.readthedocs.yml +15 -0
  9. endgame_ml-1.0.0/CHANGELOG.md +44 -0
  10. endgame_ml-1.0.0/CITATION.cff +34 -0
  11. endgame_ml-1.0.0/CODE_OF_CONDUCT.md +54 -0
  12. endgame_ml-1.0.0/CONTRIBUTING.md +205 -0
  13. endgame_ml-1.0.0/LICENSE +191 -0
  14. endgame_ml-1.0.0/PKG-INFO +894 -0
  15. endgame_ml-1.0.0/README.md +718 -0
  16. endgame_ml-1.0.0/SECURITY.md +47 -0
  17. endgame_ml-1.0.0/assets/endgame_automl.png +0 -0
  18. endgame_ml-1.0.0/assets/speeddating_confusion_matrix.png +0 -0
  19. endgame_ml-1.0.0/assets/speeddating_feature_importance.png +0 -0
  20. endgame_ml-1.0.0/assets/speeddating_roc_curve.png +0 -0
  21. endgame_ml-1.0.0/benchmarks/README.md +82 -0
  22. endgame_ml-1.0.0/benchmarks/run_calibration_benchmark.py +334 -0
  23. endgame_ml-1.0.0/benchmarks/run_glassbox_benchmark.py +327 -0
  24. endgame_ml-1.0.0/benchmarks/run_tabular_benchmark.py +1066 -0
  25. endgame_ml-1.0.0/docs/Makefile +14 -0
  26. endgame_ml-1.0.0/docs/api/anomaly.rst +7 -0
  27. endgame_ml-1.0.0/docs/api/automl.rst +7 -0
  28. endgame_ml-1.0.0/docs/api/benchmark.rst +7 -0
  29. endgame_ml-1.0.0/docs/api/calibration.rst +7 -0
  30. endgame_ml-1.0.0/docs/api/clustering.rst +7 -0
  31. endgame_ml-1.0.0/docs/api/dimensionality_reduction.rst +7 -0
  32. endgame_ml-1.0.0/docs/api/ensemble.rst +7 -0
  33. endgame_ml-1.0.0/docs/api/explain.rst +7 -0
  34. endgame_ml-1.0.0/docs/api/fairness.rst +7 -0
  35. endgame_ml-1.0.0/docs/api/feature_selection.rst +7 -0
  36. endgame_ml-1.0.0/docs/api/mcp.rst +7 -0
  37. endgame_ml-1.0.0/docs/api/models.rst +7 -0
  38. endgame_ml-1.0.0/docs/api/persistence.rst +7 -0
  39. endgame_ml-1.0.0/docs/api/preprocessing.rst +7 -0
  40. endgame_ml-1.0.0/docs/api/quick.rst +7 -0
  41. endgame_ml-1.0.0/docs/api/semi_supervised.rst +7 -0
  42. endgame_ml-1.0.0/docs/api/signal.rst +7 -0
  43. endgame_ml-1.0.0/docs/api/timeseries.rst +7 -0
  44. endgame_ml-1.0.0/docs/api/tracking.rst +7 -0
  45. endgame_ml-1.0.0/docs/api/tune.rst +7 -0
  46. endgame_ml-1.0.0/docs/api/utils.rst +7 -0
  47. endgame_ml-1.0.0/docs/api/validation.rst +7 -0
  48. endgame_ml-1.0.0/docs/api/visualization.rst +13 -0
  49. endgame_ml-1.0.0/docs/conf.py +78 -0
  50. endgame_ml-1.0.0/docs/guides/automl.md +828 -0
  51. endgame_ml-1.0.0/docs/guides/calibration.md +243 -0
  52. endgame_ml-1.0.0/docs/guides/endgame_automl.png +0 -0
  53. endgame_ml-1.0.0/docs/guides/ensembles.md +232 -0
  54. endgame_ml-1.0.0/docs/guides/explainability.md +222 -0
  55. endgame_ml-1.0.0/docs/guides/images/viz/arc_diagram.png +0 -0
  56. endgame_ml-1.0.0/docs/guides/images/viz/bar_chart.png +0 -0
  57. endgame_ml-1.0.0/docs/guides/images/viz/box_plot.png +0 -0
  58. endgame_ml-1.0.0/docs/guides/images/viz/bump_chart.png +0 -0
  59. endgame_ml-1.0.0/docs/guides/images/viz/calibration_plot.png +0 -0
  60. endgame_ml-1.0.0/docs/guides/images/viz/chord_diagram.png +0 -0
  61. endgame_ml-1.0.0/docs/guides/images/viz/confusion_matrix.png +0 -0
  62. endgame_ml-1.0.0/docs/guides/images/viz/decision_tree.png +0 -0
  63. endgame_ml-1.0.0/docs/guides/images/viz/donut_chart.png +0 -0
  64. endgame_ml-1.0.0/docs/guides/images/viz/dot_matrix.png +0 -0
  65. endgame_ml-1.0.0/docs/guides/images/viz/dumbbell_chart.png +0 -0
  66. endgame_ml-1.0.0/docs/guides/images/viz/error_bars.png +0 -0
  67. endgame_ml-1.0.0/docs/guides/images/viz/flow_chart.png +0 -0
  68. endgame_ml-1.0.0/docs/guides/images/viz/funnel_chart.png +0 -0
  69. endgame_ml-1.0.0/docs/guides/images/viz/gauge_chart.png +0 -0
  70. endgame_ml-1.0.0/docs/guides/images/viz/heatmap.png +0 -0
  71. endgame_ml-1.0.0/docs/guides/images/viz/histogram.png +0 -0
  72. endgame_ml-1.0.0/docs/guides/images/viz/lift_chart.png +0 -0
  73. endgame_ml-1.0.0/docs/guides/images/viz/line_chart.png +0 -0
  74. endgame_ml-1.0.0/docs/guides/images/viz/lollipop_chart.png +0 -0
  75. endgame_ml-1.0.0/docs/guides/images/viz/network_diagram.png +0 -0
  76. endgame_ml-1.0.0/docs/guides/images/viz/nightingale_rose.png +0 -0
  77. endgame_ml-1.0.0/docs/guides/images/viz/parallel_coordinates.png +0 -0
  78. endgame_ml-1.0.0/docs/guides/images/viz/pdp_1d.png +0 -0
  79. endgame_ml-1.0.0/docs/guides/images/viz/pdp_2d.png +0 -0
  80. endgame_ml-1.0.0/docs/guides/images/viz/pr_curve.png +0 -0
  81. endgame_ml-1.0.0/docs/guides/images/viz/radar_chart.png +0 -0
  82. endgame_ml-1.0.0/docs/guides/images/viz/radial_bar.png +0 -0
  83. endgame_ml-1.0.0/docs/guides/images/viz/ridgeline_plot.png +0 -0
  84. endgame_ml-1.0.0/docs/guides/images/viz/roc_curve.png +0 -0
  85. endgame_ml-1.0.0/docs/guides/images/viz/sankey.png +0 -0
  86. endgame_ml-1.0.0/docs/guides/images/viz/scatterplot.png +0 -0
  87. endgame_ml-1.0.0/docs/guides/images/viz/spiral_plot.png +0 -0
  88. endgame_ml-1.0.0/docs/guides/images/viz/stream_graph.png +0 -0
  89. endgame_ml-1.0.0/docs/guides/images/viz/sunburst.png +0 -0
  90. endgame_ml-1.0.0/docs/guides/images/viz/treemap.png +0 -0
  91. endgame_ml-1.0.0/docs/guides/images/viz/venn_diagram.png +0 -0
  92. endgame_ml-1.0.0/docs/guides/images/viz/violin_plot.png +0 -0
  93. endgame_ml-1.0.0/docs/guides/images/viz/waterfall.png +0 -0
  94. endgame_ml-1.0.0/docs/guides/images/viz/word_cloud.png +0 -0
  95. endgame_ml-1.0.0/docs/guides/installation.md +161 -0
  96. endgame_ml-1.0.0/docs/guides/mcp_server.md +349 -0
  97. endgame_ml-1.0.0/docs/guides/models.md +582 -0
  98. endgame_ml-1.0.0/docs/guides/preprocessing.md +437 -0
  99. endgame_ml-1.0.0/docs/guides/quickstart.md +368 -0
  100. endgame_ml-1.0.0/docs/guides/signal.md +240 -0
  101. endgame_ml-1.0.0/docs/guides/timeseries.md +304 -0
  102. endgame_ml-1.0.0/docs/guides/tracking.md +161 -0
  103. endgame_ml-1.0.0/docs/guides/visualization.md +1272 -0
  104. endgame_ml-1.0.0/docs/index.rst +88 -0
  105. endgame_ml-1.0.0/docs/requirements.txt +5 -0
  106. endgame_ml-1.0.0/endgame/__init__.py +95 -0
  107. endgame_ml-1.0.0/endgame/anomaly/__init__.py +58 -0
  108. endgame_ml-1.0.0/endgame/anomaly/gritbot.py +752 -0
  109. endgame_ml-1.0.0/endgame/anomaly/isolation_forest.py +446 -0
  110. endgame_ml-1.0.0/endgame/anomaly/lof.py +221 -0
  111. endgame_ml-1.0.0/endgame/anomaly/pyod_wrapper.py +388 -0
  112. endgame_ml-1.0.0/endgame/audio/__init__.py +16 -0
  113. endgame_ml-1.0.0/endgame/audio/augmentation.py +239 -0
  114. endgame_ml-1.0.0/endgame/audio/features.py +295 -0
  115. endgame_ml-1.0.0/endgame/audio/pretrained.py +564 -0
  116. endgame_ml-1.0.0/endgame/audio/sed.py +958 -0
  117. endgame_ml-1.0.0/endgame/audio/spectrogram.py +268 -0
  118. endgame_ml-1.0.0/endgame/automl/DEVELOPMENT.md +436 -0
  119. endgame_ml-1.0.0/endgame/automl/__init__.py +176 -0
  120. endgame_ml-1.0.0/endgame/automl/_safe_dim_reduce.py +40 -0
  121. endgame_ml-1.0.0/endgame/automl/audio.py +872 -0
  122. endgame_ml-1.0.0/endgame/automl/base.py +754 -0
  123. endgame_ml-1.0.0/endgame/automl/display.py +393 -0
  124. endgame_ml-1.0.0/endgame/automl/executors/__init__.py +22 -0
  125. endgame_ml-1.0.0/endgame/automl/executors/constraint_check.py +249 -0
  126. endgame_ml-1.0.0/endgame/automl/executors/explainability.py +296 -0
  127. endgame_ml-1.0.0/endgame/automl/executors/hpo.py +215 -0
  128. endgame_ml-1.0.0/endgame/automl/executors/persistence.py +187 -0
  129. endgame_ml-1.0.0/endgame/automl/executors/threshold_opt.py +132 -0
  130. endgame_ml-1.0.0/endgame/automl/guardrails.py +377 -0
  131. endgame_ml-1.0.0/endgame/automl/model_registry.py +1686 -0
  132. endgame_ml-1.0.0/endgame/automl/multimodal.py +1325 -0
  133. endgame_ml-1.0.0/endgame/automl/orchestrator.py +4238 -0
  134. endgame_ml-1.0.0/endgame/automl/predictor.py +610 -0
  135. endgame_ml-1.0.0/endgame/automl/preprocessing/__init__.py +14 -0
  136. endgame_ml-1.0.0/endgame/automl/preprocessing/auto_preprocessor.py +575 -0
  137. endgame_ml-1.0.0/endgame/automl/preprocessing_registry.py +731 -0
  138. endgame_ml-1.0.0/endgame/automl/presets.py +514 -0
  139. endgame_ml-1.0.0/endgame/automl/report.py +468 -0
  140. endgame_ml-1.0.0/endgame/automl/search/__init__.py +47 -0
  141. endgame_ml-1.0.0/endgame/automl/search/adaptive.py +205 -0
  142. endgame_ml-1.0.0/endgame/automl/search/bandit.py +625 -0
  143. endgame_ml-1.0.0/endgame/automl/search/base.py +358 -0
  144. endgame_ml-1.0.0/endgame/automl/search/bayesian.py +610 -0
  145. endgame_ml-1.0.0/endgame/automl/search/genetic.py +959 -0
  146. endgame_ml-1.0.0/endgame/automl/search/heuristic.py +499 -0
  147. endgame_ml-1.0.0/endgame/automl/search/portfolio.py +775 -0
  148. endgame_ml-1.0.0/endgame/automl/search/random.py +385 -0
  149. endgame_ml-1.0.0/endgame/automl/stacker.py +650 -0
  150. endgame_ml-1.0.0/endgame/automl/tabular.py +1670 -0
  151. endgame_ml-1.0.0/endgame/automl/text.py +871 -0
  152. endgame_ml-1.0.0/endgame/automl/time_manager.py +495 -0
  153. endgame_ml-1.0.0/endgame/automl/timeseries.py +759 -0
  154. endgame_ml-1.0.0/endgame/automl/utils/__init__.py +19 -0
  155. endgame_ml-1.0.0/endgame/automl/utils/data_loader.py +509 -0
  156. endgame_ml-1.0.0/endgame/automl/vision.py +1022 -0
  157. endgame_ml-1.0.0/endgame/benchmark/__init__.py +130 -0
  158. endgame_ml-1.0.0/endgame/benchmark/analyzer.py +750 -0
  159. endgame_ml-1.0.0/endgame/benchmark/learning_curve.py +786 -0
  160. endgame_ml-1.0.0/endgame/benchmark/loader.py +573 -0
  161. endgame_ml-1.0.0/endgame/benchmark/metalearner.py +769 -0
  162. endgame_ml-1.0.0/endgame/benchmark/profiler.py +607 -0
  163. endgame_ml-1.0.0/endgame/benchmark/report.py +1217 -0
  164. endgame_ml-1.0.0/endgame/benchmark/runner.py +949 -0
  165. endgame_ml-1.0.0/endgame/benchmark/synthetic.py +519 -0
  166. endgame_ml-1.0.0/endgame/benchmark/tracker.py +911 -0
  167. endgame_ml-1.0.0/endgame/calibration/__init__.py +48 -0
  168. endgame_ml-1.0.0/endgame/calibration/analysis.py +656 -0
  169. endgame_ml-1.0.0/endgame/calibration/conformal.py +1214 -0
  170. endgame_ml-1.0.0/endgame/calibration/scaling.py +554 -0
  171. endgame_ml-1.0.0/endgame/calibration/venn_abers.py +417 -0
  172. endgame_ml-1.0.0/endgame/clustering/__init__.py +99 -0
  173. endgame_ml-1.0.0/endgame/clustering/auto.py +275 -0
  174. endgame_ml-1.0.0/endgame/clustering/centroid.py +424 -0
  175. endgame_ml-1.0.0/endgame/clustering/density.py +436 -0
  176. endgame_ml-1.0.0/endgame/clustering/distribution.py +299 -0
  177. endgame_ml-1.0.0/endgame/clustering/graph.py +184 -0
  178. endgame_ml-1.0.0/endgame/clustering/hierarchical.py +190 -0
  179. endgame_ml-1.0.0/endgame/clustering/scalable.py +261 -0
  180. endgame_ml-1.0.0/endgame/core/__init__.py +55 -0
  181. endgame_ml-1.0.0/endgame/core/base.py +474 -0
  182. endgame_ml-1.0.0/endgame/core/config.py +284 -0
  183. endgame_ml-1.0.0/endgame/core/polars_ops.py +364 -0
  184. endgame_ml-1.0.0/endgame/core/types.py +182 -0
  185. endgame_ml-1.0.0/endgame/dimensionality_reduction/__init__.py +68 -0
  186. endgame_ml-1.0.0/endgame/dimensionality_reduction/linear.py +549 -0
  187. endgame_ml-1.0.0/endgame/dimensionality_reduction/manifold.py +883 -0
  188. endgame_ml-1.0.0/endgame/dimensionality_reduction/vae.py +627 -0
  189. endgame_ml-1.0.0/endgame/ensemble/__init__.py +69 -0
  190. endgame_ml-1.0.0/endgame/ensemble/bagging.py +390 -0
  191. endgame_ml-1.0.0/endgame/ensemble/bayesian_averaging.py +220 -0
  192. endgame_ml-1.0.0/endgame/ensemble/blending.py +690 -0
  193. endgame_ml-1.0.0/endgame/ensemble/boosting.py +385 -0
  194. endgame_ml-1.0.0/endgame/ensemble/cascade.py +244 -0
  195. endgame_ml-1.0.0/endgame/ensemble/distillation.py +355 -0
  196. endgame_ml-1.0.0/endgame/ensemble/hill_climbing.py +310 -0
  197. endgame_ml-1.0.0/endgame/ensemble/multi_output.py +892 -0
  198. endgame_ml-1.0.0/endgame/ensemble/negative_correlation.py +196 -0
  199. endgame_ml-1.0.0/endgame/ensemble/snapshot.py +166 -0
  200. endgame_ml-1.0.0/endgame/ensemble/stacking.py +357 -0
  201. endgame_ml-1.0.0/endgame/ensemble/super_learner.py +290 -0
  202. endgame_ml-1.0.0/endgame/ensemble/threshold.py +307 -0
  203. endgame_ml-1.0.0/endgame/ensemble/voting.py +302 -0
  204. endgame_ml-1.0.0/endgame/explain/__init__.py +172 -0
  205. endgame_ml-1.0.0/endgame/explain/_base.py +349 -0
  206. endgame_ml-1.0.0/endgame/explain/counterfactual.py +271 -0
  207. endgame_ml-1.0.0/endgame/explain/interaction.py +351 -0
  208. endgame_ml-1.0.0/endgame/explain/lime_explainer.py +247 -0
  209. endgame_ml-1.0.0/endgame/explain/pdp.py +251 -0
  210. endgame_ml-1.0.0/endgame/explain/shap_explainer.py +344 -0
  211. endgame_ml-1.0.0/endgame/fairness/__init__.py +57 -0
  212. endgame_ml-1.0.0/endgame/fairness/metrics.py +471 -0
  213. endgame_ml-1.0.0/endgame/fairness/mitigation.py +743 -0
  214. endgame_ml-1.0.0/endgame/fairness/report.py +433 -0
  215. endgame_ml-1.0.0/endgame/feature_selection/__init__.py +100 -0
  216. endgame_ml-1.0.0/endgame/feature_selection/filter/__init__.py +21 -0
  217. endgame_ml-1.0.0/endgame/feature_selection/filter/correlation.py +192 -0
  218. endgame_ml-1.0.0/endgame/feature_selection/filter/mrmr.py +245 -0
  219. endgame_ml-1.0.0/endgame/feature_selection/filter/relief.py +299 -0
  220. endgame_ml-1.0.0/endgame/feature_selection/filter/univariate.py +337 -0
  221. endgame_ml-1.0.0/endgame/feature_selection/importance/__init__.py +11 -0
  222. endgame_ml-1.0.0/endgame/feature_selection/importance/permutation.py +227 -0
  223. endgame_ml-1.0.0/endgame/feature_selection/importance/shap_importance.py +275 -0
  224. endgame_ml-1.0.0/endgame/feature_selection/importance/tree.py +210 -0
  225. endgame_ml-1.0.0/endgame/feature_selection/knockoff.py +322 -0
  226. endgame_ml-1.0.0/endgame/feature_selection/stability.py +253 -0
  227. endgame_ml-1.0.0/endgame/feature_selection/wrapper/__init__.py +13 -0
  228. endgame_ml-1.0.0/endgame/feature_selection/wrapper/boruta.py +311 -0
  229. endgame_ml-1.0.0/endgame/feature_selection/wrapper/genetic.py +350 -0
  230. endgame_ml-1.0.0/endgame/feature_selection/wrapper/rfe.py +195 -0
  231. endgame_ml-1.0.0/endgame/feature_selection/wrapper/sequential.py +255 -0
  232. endgame_ml-1.0.0/endgame/kaggle/__init__.py +71 -0
  233. endgame_ml-1.0.0/endgame/kaggle/client.py +853 -0
  234. endgame_ml-1.0.0/endgame/kaggle/competition.py +675 -0
  235. endgame_ml-1.0.0/endgame/kaggle/project.py +685 -0
  236. endgame_ml-1.0.0/endgame/mcp/__init__.py +19 -0
  237. endgame_ml-1.0.0/endgame/mcp/__main__.py +21 -0
  238. endgame_ml-1.0.0/endgame/mcp/codegen.py +188 -0
  239. endgame_ml-1.0.0/endgame/mcp/resources.py +178 -0
  240. endgame_ml-1.0.0/endgame/mcp/server.py +110 -0
  241. endgame_ml-1.0.0/endgame/mcp/session.py +208 -0
  242. endgame_ml-1.0.0/endgame/mcp/tools/__init__.py +1 -0
  243. endgame_ml-1.0.0/endgame/mcp/tools/_encoding.py +137 -0
  244. endgame_ml-1.0.0/endgame/mcp/tools/_timeout.py +70 -0
  245. endgame_ml-1.0.0/endgame/mcp/tools/advanced.py +304 -0
  246. endgame_ml-1.0.0/endgame/mcp/tools/data.py +275 -0
  247. endgame_ml-1.0.0/endgame/mcp/tools/discover.py +158 -0
  248. endgame_ml-1.0.0/endgame/mcp/tools/evaluate.py +221 -0
  249. endgame_ml-1.0.0/endgame/mcp/tools/export.py +75 -0
  250. endgame_ml-1.0.0/endgame/mcp/tools/predict.py +63 -0
  251. endgame_ml-1.0.0/endgame/mcp/tools/preprocess.py +216 -0
  252. endgame_ml-1.0.0/endgame/mcp/tools/train.py +279 -0
  253. endgame_ml-1.0.0/endgame/mcp/tools/visualize.py +325 -0
  254. endgame_ml-1.0.0/endgame/models/__init__.py +339 -0
  255. endgame_ml-1.0.0/endgame/models/baselines/__init__.py +48 -0
  256. endgame_ml-1.0.0/endgame/models/baselines/discriminant.py +523 -0
  257. endgame_ml-1.0.0/endgame/models/baselines/elm.py +459 -0
  258. endgame_ml-1.0.0/endgame/models/baselines/knn.py +392 -0
  259. endgame_ml-1.0.0/endgame/models/baselines/linear.py +414 -0
  260. endgame_ml-1.0.0/endgame/models/baselines/naive_bayes.py +308 -0
  261. endgame_ml-1.0.0/endgame/models/bayesian/__init__.py +116 -0
  262. endgame_ml-1.0.0/endgame/models/bayesian/base.py +795 -0
  263. endgame_ml-1.0.0/endgame/models/bayesian/classic/__init__.py +12 -0
  264. endgame_ml-1.0.0/endgame/models/bayesian/classic/ebmc.py +538 -0
  265. endgame_ml-1.0.0/endgame/models/bayesian/classic/eskdb.py +698 -0
  266. endgame_ml-1.0.0/endgame/models/bayesian/classic/tan.py +353 -0
  267. endgame_ml-1.0.0/endgame/models/bayesian/neural/__init__.py +14 -0
  268. endgame_ml-1.0.0/endgame/models/bayesian/neural/embeddings.py +392 -0
  269. endgame_ml-1.0.0/endgame/models/bayesian/neural/neural_kdb.py +623 -0
  270. endgame_ml-1.0.0/endgame/models/bayesian/structure/__init__.py +33 -0
  271. endgame_ml-1.0.0/endgame/models/bayesian/structure/autosle.py +577 -0
  272. endgame_ml-1.0.0/endgame/models/bayesian/structure/learning.py +720 -0
  273. endgame_ml-1.0.0/endgame/models/bayesian/structure/scores.py +411 -0
  274. endgame_ml-1.0.0/endgame/models/ebm.py +953 -0
  275. endgame_ml-1.0.0/endgame/models/interpretable/__init__.py +45 -0
  276. endgame_ml-1.0.0/endgame/models/interpretable/corels.py +692 -0
  277. endgame_ml-1.0.0/endgame/models/interpretable/gam.py +637 -0
  278. endgame_ml-1.0.0/endgame/models/interpretable/gami_net.py +1063 -0
  279. endgame_ml-1.0.0/endgame/models/interpretable/gosdt.py +511 -0
  280. endgame_ml-1.0.0/endgame/models/interpretable/node_gam.py +933 -0
  281. endgame_ml-1.0.0/endgame/models/interpretable/slim.py +774 -0
  282. endgame_ml-1.0.0/endgame/models/kernel/__init__.py +25 -0
  283. endgame_ml-1.0.0/endgame/models/kernel/gaussian_process.py +470 -0
  284. endgame_ml-1.0.0/endgame/models/kernel/svm.py +426 -0
  285. endgame_ml-1.0.0/endgame/models/linear/__init__.py +8 -0
  286. endgame_ml-1.0.0/endgame/models/linear/basis.py +343 -0
  287. endgame_ml-1.0.0/endgame/models/linear/mars.py +1374 -0
  288. endgame_ml-1.0.0/endgame/models/linear/tests/__init__.py +1 -0
  289. endgame_ml-1.0.0/endgame/models/linear/tests/test_mars.py +674 -0
  290. endgame_ml-1.0.0/endgame/models/neural/__init__.py +39 -0
  291. endgame_ml-1.0.0/endgame/models/neural/embedding_mlp.py +1001 -0
  292. endgame_ml-1.0.0/endgame/models/neural/mlp.py +798 -0
  293. endgame_ml-1.0.0/endgame/models/neural/tabnet.py +665 -0
  294. endgame_ml-1.0.0/endgame/models/neuroevolution/__init__.py +14 -0
  295. endgame_ml-1.0.0/endgame/models/neuroevolution/neat.py +407 -0
  296. endgame_ml-1.0.0/endgame/models/neuroevolution/tensor_neat.py +346 -0
  297. endgame_ml-1.0.0/endgame/models/ngboost.py +849 -0
  298. endgame_ml-1.0.0/endgame/models/ordinal/__init__.py +19 -0
  299. endgame_ml-1.0.0/endgame/models/ordinal/ordinal.py +536 -0
  300. endgame_ml-1.0.0/endgame/models/probabilistic/__init__.py +8 -0
  301. endgame_ml-1.0.0/endgame/models/probabilistic/bart.py +557 -0
  302. endgame_ml-1.0.0/endgame/models/rules/__init__.py +31 -0
  303. endgame_ml-1.0.0/endgame/models/rules/extraction.py +206 -0
  304. endgame_ml-1.0.0/endgame/models/rules/furia.py +747 -0
  305. endgame_ml-1.0.0/endgame/models/rules/rule.py +392 -0
  306. endgame_ml-1.0.0/endgame/models/rules/rulefit.py +1310 -0
  307. endgame_ml-1.0.0/endgame/models/rules/rulefit_plus.py +1380 -0
  308. endgame_ml-1.0.0/endgame/models/rules/tests/__init__.py +1 -0
  309. endgame_ml-1.0.0/endgame/models/rules/tests/test_rulefit.py +830 -0
  310. endgame_ml-1.0.0/endgame/models/subgroup/__init__.py +21 -0
  311. endgame_ml-1.0.0/endgame/models/subgroup/prim.py +813 -0
  312. endgame_ml-1.0.0/endgame/models/symbolic/__init__.py +18 -0
  313. endgame_ml-1.0.0/endgame/models/symbolic/_constant_optimizer.py +238 -0
  314. endgame_ml-1.0.0/endgame/models/symbolic/_expression.py +323 -0
  315. endgame_ml-1.0.0/endgame/models/symbolic/_operators.py +310 -0
  316. endgame_ml-1.0.0/endgame/models/symbolic/_pareto.py +112 -0
  317. endgame_ml-1.0.0/endgame/models/symbolic/_population.py +352 -0
  318. endgame_ml-1.0.0/endgame/models/symbolic/symbolic_classifier.py +226 -0
  319. endgame_ml-1.0.0/endgame/models/symbolic/symbolic_regressor.py +551 -0
  320. endgame_ml-1.0.0/endgame/models/tabular/__init__.py +258 -0
  321. endgame_ml-1.0.0/endgame/models/tabular/ft_transformer.py +1006 -0
  322. endgame_ml-1.0.0/endgame/models/tabular/gandalf.py +873 -0
  323. endgame_ml-1.0.0/endgame/models/tabular/grande.py +720 -0
  324. endgame_ml-1.0.0/endgame/models/tabular/modern_nca.py +498 -0
  325. endgame_ml-1.0.0/endgame/models/tabular/nam.py +1275 -0
  326. endgame_ml-1.0.0/endgame/models/tabular/node.py +719 -0
  327. endgame_ml-1.0.0/endgame/models/tabular/realmlp.py +1159 -0
  328. endgame_ml-1.0.0/endgame/models/tabular/saint.py +873 -0
  329. endgame_ml-1.0.0/endgame/models/tabular/tab_transformer.py +601 -0
  330. endgame_ml-1.0.0/endgame/models/tabular/tabdpt.py +547 -0
  331. endgame_ml-1.0.0/endgame/models/tabular/tabm.py +1082 -0
  332. endgame_ml-1.0.0/endgame/models/tabular/tabpfn.py +1663 -0
  333. endgame_ml-1.0.0/endgame/models/tabular/tabr.py +1177 -0
  334. endgame_ml-1.0.0/endgame/models/tabular/tabular_resnet.py +565 -0
  335. endgame_ml-1.0.0/endgame/models/tabular/xrfm.py +631 -0
  336. endgame_ml-1.0.0/endgame/models/trees/__init__.py +98 -0
  337. endgame_ml-1.0.0/endgame/models/trees/adtree.py +1665 -0
  338. endgame_ml-1.0.0/endgame/models/trees/c50.py +1057 -0
  339. endgame_ml-1.0.0/endgame/models/trees/c50_rust/Cargo.lock +572 -0
  340. endgame_ml-1.0.0/endgame/models/trees/c50_rust/Cargo.toml +39 -0
  341. endgame_ml-1.0.0/endgame/models/trees/c50_rust/__init__.py +8 -0
  342. endgame_ml-1.0.0/endgame/models/trees/c50_rust/pyproject.toml +13 -0
  343. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/boost.rs +304 -0
  344. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/classify.rs +305 -0
  345. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/info.rs +289 -0
  346. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/lib.rs +380 -0
  347. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/prune.rs +387 -0
  348. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/split.rs +632 -0
  349. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/tree.rs +355 -0
  350. endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/types.rs +388 -0
  351. endgame_ml-1.0.0/endgame/models/trees/cubist.py +375 -0
  352. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/Cargo.lock +572 -0
  353. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/Cargo.toml +39 -0
  354. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/pyproject.toml +13 -0
  355. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/lib.rs +330 -0
  356. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/predict.rs +246 -0
  357. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/regress.rs +421 -0
  358. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/rules.rs +361 -0
  359. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/split.rs +400 -0
  360. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/tree.rs +363 -0
  361. endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/types.rs +585 -0
  362. endgame_ml-1.0.0/endgame/models/trees/evtree/__init__.py +11 -0
  363. endgame_ml-1.0.0/endgame/models/trees/evtree/evtree.py +1419 -0
  364. endgame_ml-1.0.0/endgame/models/trees/oblique_forest.py +835 -0
  365. endgame_ml-1.0.0/endgame/models/trees/oblique_splits.py +1105 -0
  366. endgame_ml-1.0.0/endgame/models/trees/oblique_tree.py +964 -0
  367. endgame_ml-1.0.0/endgame/models/trees/quantile_forest.py +807 -0
  368. endgame_ml-1.0.0/endgame/models/trees/rotation_forest.py +455 -0
  369. endgame_ml-1.0.0/endgame/models/wrappers.py +698 -0
  370. endgame_ml-1.0.0/endgame/nlp/__init__.py +99 -0
  371. endgame_ml-1.0.0/endgame/nlp/dapt.py +154 -0
  372. endgame_ml-1.0.0/endgame/nlp/llm.py +758 -0
  373. endgame_ml-1.0.0/endgame/nlp/metrics.py +459 -0
  374. endgame_ml-1.0.0/endgame/nlp/postprocessing.py +530 -0
  375. endgame_ml-1.0.0/endgame/nlp/preprocessing.py +501 -0
  376. endgame_ml-1.0.0/endgame/nlp/pseudo_label.py +191 -0
  377. endgame_ml-1.0.0/endgame/nlp/tokenizer.py +431 -0
  378. endgame_ml-1.0.0/endgame/nlp/transformers.py +339 -0
  379. endgame_ml-1.0.0/endgame/nlp/translation.py +652 -0
  380. endgame_ml-1.0.0/endgame/persistence/__init__.py +30 -0
  381. endgame_ml-1.0.0/endgame/persistence/_backends.py +244 -0
  382. endgame_ml-1.0.0/endgame/persistence/_core.py +125 -0
  383. endgame_ml-1.0.0/endgame/persistence/_detection.py +108 -0
  384. endgame_ml-1.0.0/endgame/persistence/_metadata.py +200 -0
  385. endgame_ml-1.0.0/endgame/persistence/_onnx.py +596 -0
  386. endgame_ml-1.0.0/endgame/persistence/_server.py +302 -0
  387. endgame_ml-1.0.0/endgame/preprocessing/__init__.py +212 -0
  388. endgame_ml-1.0.0/endgame/preprocessing/aggregation.py +470 -0
  389. endgame_ml-1.0.0/endgame/preprocessing/dae.py +590 -0
  390. endgame_ml-1.0.0/endgame/preprocessing/discretize.py +487 -0
  391. endgame_ml-1.0.0/endgame/preprocessing/encoding.py +699 -0
  392. endgame_ml-1.0.0/endgame/preprocessing/imbalance.py +1487 -0
  393. endgame_ml-1.0.0/endgame/preprocessing/imbalance_generative.py +1001 -0
  394. endgame_ml-1.0.0/endgame/preprocessing/imbalance_geometric.py +744 -0
  395. endgame_ml-1.0.0/endgame/preprocessing/imbalance_llm.py +314 -0
  396. endgame_ml-1.0.0/endgame/preprocessing/imputation.py +1020 -0
  397. endgame_ml-1.0.0/endgame/preprocessing/noise_detection.py +520 -0
  398. endgame_ml-1.0.0/endgame/preprocessing/selection.py +415 -0
  399. endgame_ml-1.0.0/endgame/preprocessing/target_transform.py +666 -0
  400. endgame_ml-1.0.0/endgame/preprocessing/temporal.py +434 -0
  401. endgame_ml-1.0.0/endgame/py.typed +0 -0
  402. endgame_ml-1.0.0/endgame/quick/__init__.py +44 -0
  403. endgame_ml-1.0.0/endgame/quick/api.py +769 -0
  404. endgame_ml-1.0.0/endgame/semi_supervised/__init__.py +11 -0
  405. endgame_ml-1.0.0/endgame/semi_supervised/self_training.py +836 -0
  406. endgame_ml-1.0.0/endgame/signal/__init__.py +245 -0
  407. endgame_ml-1.0.0/endgame/signal/base.py +353 -0
  408. endgame_ml-1.0.0/endgame/signal/complexity.py +750 -0
  409. endgame_ml-1.0.0/endgame/signal/connectivity.py +766 -0
  410. endgame_ml-1.0.0/endgame/signal/entropy.py +715 -0
  411. endgame_ml-1.0.0/endgame/signal/features.py +761 -0
  412. endgame_ml-1.0.0/endgame/signal/filtering.py +628 -0
  413. endgame_ml-1.0.0/endgame/signal/spatial.py +683 -0
  414. endgame_ml-1.0.0/endgame/signal/spectral.py +988 -0
  415. endgame_ml-1.0.0/endgame/signal/wavelets.py +784 -0
  416. endgame_ml-1.0.0/endgame/timeseries/__init__.py +166 -0
  417. endgame_ml-1.0.0/endgame/timeseries/base.py +612 -0
  418. endgame_ml-1.0.0/endgame/timeseries/baselines.py +1193 -0
  419. endgame_ml-1.0.0/endgame/timeseries/features.py +573 -0
  420. endgame_ml-1.0.0/endgame/timeseries/neural.py +816 -0
  421. endgame_ml-1.0.0/endgame/timeseries/rocket.py +1033 -0
  422. endgame_ml-1.0.0/endgame/timeseries/statistical.py +684 -0
  423. endgame_ml-1.0.0/endgame/timeseries/validation.py +532 -0
  424. endgame_ml-1.0.0/endgame/tracking/__init__.py +65 -0
  425. endgame_ml-1.0.0/endgame/tracking/base.py +112 -0
  426. endgame_ml-1.0.0/endgame/tracking/console_logger.py +150 -0
  427. endgame_ml-1.0.0/endgame/tracking/mlflow_logger.py +173 -0
  428. endgame_ml-1.0.0/endgame/tune/__init__.py +17 -0
  429. endgame_ml-1.0.0/endgame/tune/optuna.py +349 -0
  430. endgame_ml-1.0.0/endgame/tune/spaces.py +240 -0
  431. endgame_ml-1.0.0/endgame/utils/__init__.py +48 -0
  432. endgame_ml-1.0.0/endgame/utils/metrics.py +315 -0
  433. endgame_ml-1.0.0/endgame/utils/reproducibility.py +214 -0
  434. endgame_ml-1.0.0/endgame/utils/sharpe.py +716 -0
  435. endgame_ml-1.0.0/endgame/utils/submission.py +316 -0
  436. endgame_ml-1.0.0/endgame/validation/__init__.py +34 -0
  437. endgame_ml-1.0.0/endgame/validation/adversarial.py +357 -0
  438. endgame_ml-1.0.0/endgame/validation/cv_utils.py +375 -0
  439. endgame_ml-1.0.0/endgame/validation/nested_cv.py +301 -0
  440. endgame_ml-1.0.0/endgame/validation/splitters.py +916 -0
  441. endgame_ml-1.0.0/endgame/vision/__init__.py +16 -0
  442. endgame_ml-1.0.0/endgame/vision/augmentation.py +515 -0
  443. endgame_ml-1.0.0/endgame/vision/backbone.py +249 -0
  444. endgame_ml-1.0.0/endgame/vision/segmentation.py +539 -0
  445. endgame_ml-1.0.0/endgame/vision/tta.py +225 -0
  446. endgame_ml-1.0.0/endgame/vision/wbf.py +308 -0
  447. endgame_ml-1.0.0/endgame/visualization/__init__.py +133 -0
  448. endgame_ml-1.0.0/endgame/visualization/_base.py +249 -0
  449. endgame_ml-1.0.0/endgame/visualization/_html_template.py +459 -0
  450. endgame_ml-1.0.0/endgame/visualization/_palettes.py +213 -0
  451. endgame_ml-1.0.0/endgame/visualization/_report_template.py +248 -0
  452. endgame_ml-1.0.0/endgame/visualization/arc_diagram.py +237 -0
  453. endgame_ml-1.0.0/endgame/visualization/bar_chart.py +323 -0
  454. endgame_ml-1.0.0/endgame/visualization/box_violin.py +388 -0
  455. endgame_ml-1.0.0/endgame/visualization/bump_chart.py +224 -0
  456. endgame_ml-1.0.0/endgame/visualization/calibration_plot.py +376 -0
  457. endgame_ml-1.0.0/endgame/visualization/chord_diagram.py +241 -0
  458. endgame_ml-1.0.0/endgame/visualization/classification_report.py +865 -0
  459. endgame_ml-1.0.0/endgame/visualization/confusion_matrix.py +306 -0
  460. endgame_ml-1.0.0/endgame/visualization/donut_chart.py +207 -0
  461. endgame_ml-1.0.0/endgame/visualization/dot_matrix.py +171 -0
  462. endgame_ml-1.0.0/endgame/visualization/dumbbell_chart.py +235 -0
  463. endgame_ml-1.0.0/endgame/visualization/error_bars.py +222 -0
  464. endgame_ml-1.0.0/endgame/visualization/flow_chart.py +278 -0
  465. endgame_ml-1.0.0/endgame/visualization/funnel_chart.py +194 -0
  466. endgame_ml-1.0.0/endgame/visualization/gauge_chart.py +275 -0
  467. endgame_ml-1.0.0/endgame/visualization/heatmap.py +281 -0
  468. endgame_ml-1.0.0/endgame/visualization/histogram.py +331 -0
  469. endgame_ml-1.0.0/endgame/visualization/lift_chart.py +287 -0
  470. endgame_ml-1.0.0/endgame/visualization/line_chart.py +322 -0
  471. endgame_ml-1.0.0/endgame/visualization/lollipop_chart.py +258 -0
  472. endgame_ml-1.0.0/endgame/visualization/network_diagram.py +575 -0
  473. endgame_ml-1.0.0/endgame/visualization/nightingale_rose.py +220 -0
  474. endgame_ml-1.0.0/endgame/visualization/parallel_coordinates.py +269 -0
  475. endgame_ml-1.0.0/endgame/visualization/pdp_plot.py +551 -0
  476. endgame_ml-1.0.0/endgame/visualization/pr_curve.py +295 -0
  477. endgame_ml-1.0.0/endgame/visualization/radar_chart.py +209 -0
  478. endgame_ml-1.0.0/endgame/visualization/radial_bar.py +193 -0
  479. endgame_ml-1.0.0/endgame/visualization/regression_report.py +621 -0
  480. endgame_ml-1.0.0/endgame/visualization/ridgeline_plot.py +311 -0
  481. endgame_ml-1.0.0/endgame/visualization/roc_curve.py +307 -0
  482. endgame_ml-1.0.0/endgame/visualization/sankey.py +208 -0
  483. endgame_ml-1.0.0/endgame/visualization/scatterplot.py +304 -0
  484. endgame_ml-1.0.0/endgame/visualization/spiral_plot.py +212 -0
  485. endgame_ml-1.0.0/endgame/visualization/stream_graph.py +231 -0
  486. endgame_ml-1.0.0/endgame/visualization/tree_visualizer.py +1542 -0
  487. endgame_ml-1.0.0/endgame/visualization/treemap.py +392 -0
  488. endgame_ml-1.0.0/endgame/visualization/venn.py +162 -0
  489. endgame_ml-1.0.0/endgame/visualization/waterfall_chart.py +329 -0
  490. endgame_ml-1.0.0/endgame/visualization/word_cloud.py +199 -0
  491. endgame_ml-1.0.0/examples/00_hello_endgame.ipynb +189 -0
  492. endgame_ml-1.0.0/examples/01_quickstart.ipynb +184 -0
  493. endgame_ml-1.0.0/examples/02_interpretable_models.ipynb +331 -0
  494. endgame_ml-1.0.0/examples/03_automl.ipynb +474 -0
  495. endgame_ml-1.0.0/examples/04_ensemble_calibration.ipynb +397 -0
  496. endgame_ml-1.0.0/examples/05_mcp_walkthrough.ipynb +669 -0
  497. endgame_ml-1.0.0/examples/06_signal_timeseries.ipynb +1009 -0
  498. endgame_ml-1.0.0/examples/07_vision.ipynb +311 -0
  499. endgame_ml-1.0.0/examples/08_nlp.ipynb +300 -0
  500. endgame_ml-1.0.0/examples/09_multimodal.ipynb +466 -0
  501. endgame_ml-1.0.0/examples/german_credit_lgbm.egm +0 -0
  502. endgame_ml-1.0.0/examples/quickstart_report.html +882 -0
  503. endgame_ml-1.0.0/pyproject.toml +223 -0
  504. endgame_ml-1.0.0/tests/__init__.py +1 -0
  505. endgame_ml-1.0.0/tests/test_adtree.py +478 -0
  506. endgame_ml-1.0.0/tests/test_anomaly.py +370 -0
  507. endgame_ml-1.0.0/tests/test_audio.py +187 -0
  508. endgame_ml-1.0.0/tests/test_automl.py +2621 -0
  509. endgame_ml-1.0.0/tests/test_bayesian.py +694 -0
  510. endgame_ml-1.0.0/tests/test_benchmark.py +570 -0
  511. endgame_ml-1.0.0/tests/test_c50.py +319 -0
  512. endgame_ml-1.0.0/tests/test_clustering.py +599 -0
  513. endgame_ml-1.0.0/tests/test_core.py +163 -0
  514. endgame_ml-1.0.0/tests/test_cpcv.py +358 -0
  515. endgame_ml-1.0.0/tests/test_cqr.py +348 -0
  516. endgame_ml-1.0.0/tests/test_dimensionality_reduction.py +543 -0
  517. endgame_ml-1.0.0/tests/test_distillation.py +134 -0
  518. endgame_ml-1.0.0/tests/test_ensemble.py +590 -0
  519. endgame_ml-1.0.0/tests/test_explain.py +221 -0
  520. endgame_ml-1.0.0/tests/test_fairness.py +223 -0
  521. endgame_ml-1.0.0/tests/test_feature_selection.py +736 -0
  522. endgame_ml-1.0.0/tests/test_furia.py +373 -0
  523. endgame_ml-1.0.0/tests/test_gandalf.py +419 -0
  524. endgame_ml-1.0.0/tests/test_grande.py +566 -0
  525. endgame_ml-1.0.0/tests/test_imbalance.py +663 -0
  526. endgame_ml-1.0.0/tests/test_imbalance_generative.py +272 -0
  527. endgame_ml-1.0.0/tests/test_imbalance_geometric.py +324 -0
  528. endgame_ml-1.0.0/tests/test_imbalance_llm.py +126 -0
  529. endgame_ml-1.0.0/tests/test_imputation.py +504 -0
  530. endgame_ml-1.0.0/tests/test_interpretable.py +547 -0
  531. endgame_ml-1.0.0/tests/test_kaggle.py +423 -0
  532. endgame_ml-1.0.0/tests/test_mcp.py +568 -0
  533. endgame_ml-1.0.0/tests/test_models.py +151 -0
  534. endgame_ml-1.0.0/tests/test_multi_output.py +547 -0
  535. endgame_ml-1.0.0/tests/test_nested_cv.py +105 -0
  536. endgame_ml-1.0.0/tests/test_ngboost.py +505 -0
  537. endgame_ml-1.0.0/tests/test_nlp.py +168 -0
  538. endgame_ml-1.0.0/tests/test_nlp_translation.py +308 -0
  539. endgame_ml-1.0.0/tests/test_noise_detection.py +119 -0
  540. endgame_ml-1.0.0/tests/test_oblique_forest.py +784 -0
  541. endgame_ml-1.0.0/tests/test_persistence.py +368 -0
  542. endgame_ml-1.0.0/tests/test_preprocessing.py +185 -0
  543. endgame_ml-1.0.0/tests/test_quantile_forest.py +469 -0
  544. endgame_ml-1.0.0/tests/test_quick.py +251 -0
  545. endgame_ml-1.0.0/tests/test_realmlp.py +680 -0
  546. endgame_ml-1.0.0/tests/test_semi_supervised.py +589 -0
  547. endgame_ml-1.0.0/tests/test_sharpe.py +463 -0
  548. endgame_ml-1.0.0/tests/test_signal.py +824 -0
  549. endgame_ml-1.0.0/tests/test_symbolic.py +481 -0
  550. endgame_ml-1.0.0/tests/test_tabdpt.py +388 -0
  551. endgame_ml-1.0.0/tests/test_tabm.py +635 -0
  552. endgame_ml-1.0.0/tests/test_tabpfn_25.py +430 -0
  553. endgame_ml-1.0.0/tests/test_tabpfn_v2.py +395 -0
  554. endgame_ml-1.0.0/tests/test_tabr.py +537 -0
  555. endgame_ml-1.0.0/tests/test_target_transform.py +563 -0
  556. endgame_ml-1.0.0/tests/test_timeseries.py +822 -0
  557. endgame_ml-1.0.0/tests/test_tracking.py +377 -0
  558. endgame_ml-1.0.0/tests/test_tree_visualization.py +285 -0
  559. endgame_ml-1.0.0/tests/test_tune.py +112 -0
  560. endgame_ml-1.0.0/tests/test_utils.py +211 -0
  561. endgame_ml-1.0.0/tests/test_validation.py +146 -0
  562. endgame_ml-1.0.0/tests/test_vision.py +171 -0
  563. endgame_ml-1.0.0/tests/test_visualizations.py +1921 -0
  564. endgame_ml-1.0.0/tests/test_xrfm.py +386 -0
@@ -0,0 +1,59 @@
1
+ name: Bug Report
2
+ description: Report a bug in Endgame
3
+ labels: [bug]
4
+
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thank you for reporting a bug. Please fill out the sections below so we can reproduce and fix the issue.
10
+
11
+ - type: textarea
12
+ id: description
13
+ attributes:
14
+ label: Description
15
+ description: A clear description of the bug.
16
+ placeholder: What happened? What did you expect to happen?
17
+ validations:
18
+ required: true
19
+
20
+ - type: textarea
21
+ id: reproduction
22
+ attributes:
23
+ label: Steps to Reproduce
24
+ description: Minimal code or steps to reproduce the bug.
25
+ placeholder: |
26
+ ```python
27
+ import endgame as eg
28
+ # ...
29
+ ```
30
+ validations:
31
+ required: true
32
+
33
+ - type: textarea
34
+ id: expected
35
+ attributes:
36
+ label: Expected Behavior
37
+ description: What you expected to happen instead.
38
+ validations:
39
+ required: true
40
+
41
+ - type: textarea
42
+ id: traceback
43
+ attributes:
44
+ label: Traceback
45
+ description: Full error traceback, if applicable.
46
+ render: python
47
+
48
+ - type: textarea
49
+ id: environment
50
+ attributes:
51
+ label: Environment
52
+ description: Version and platform details.
53
+ placeholder: |
54
+ - Endgame version:
55
+ - Python version:
56
+ - OS:
57
+ - Relevant optional dependencies (e.g., xgboost, torch):
58
+ validations:
59
+ required: true
@@ -0,0 +1,71 @@
1
+ name: Feature Request
2
+ description: Suggest a new feature or improvement
3
+ labels: [enhancement]
4
+
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thank you for suggesting an improvement to Endgame. Please describe the feature and why it would be valuable.
10
+
11
+ - type: textarea
12
+ id: description
13
+ attributes:
14
+ label: Description
15
+ description: A clear description of the feature you would like.
16
+ validations:
17
+ required: true
18
+
19
+ - type: textarea
20
+ id: motivation
21
+ attributes:
22
+ label: Motivation
23
+ description: Why is this feature needed? What problem does it solve? Include links to papers or implementations if relevant.
24
+ validations:
25
+ required: true
26
+
27
+ - type: textarea
28
+ id: proposed-solution
29
+ attributes:
30
+ label: Proposed Solution
31
+ description: How do you think this should work? Include API sketches if you have them.
32
+ placeholder: |
33
+ ```python
34
+ from endgame.models import NewModel
35
+ model = NewModel(param=value)
36
+ model.fit(X, y)
37
+ ```
38
+
39
+ - type: dropdown
40
+ id: module
41
+ attributes:
42
+ label: Module
43
+ description: Which module does this relate to?
44
+ options:
45
+ - models
46
+ - ensemble
47
+ - calibration
48
+ - preprocessing
49
+ - validation
50
+ - visualization
51
+ - timeseries
52
+ - signal
53
+ - vision
54
+ - nlp
55
+ - audio
56
+ - anomaly
57
+ - tune
58
+ - benchmark
59
+ - quick
60
+ - automl
61
+ - mcp
62
+ - explain
63
+ - fairness
64
+ - other
65
+
66
+ - type: checkboxes
67
+ id: contribution
68
+ attributes:
69
+ label: Willingness to Contribute
70
+ options:
71
+ - label: I would be willing to submit a PR for this feature
@@ -0,0 +1,19 @@
1
+ ## Description
2
+
3
+ <!-- What does this PR do? Why is it needed? Link to any related issues. -->
4
+
5
+ ## Changes
6
+
7
+ <!-- Bullet-point summary of the changes. -->
8
+
9
+ -
10
+
11
+ ## Checklist
12
+
13
+ - [ ] Code follows the sklearn API (`fit`/`predict`/`transform`)
14
+ - [ ] Tests are included and pass (`pytest tests/ -v`)
15
+ - [ ] Linting passes (`ruff check endgame/`)
16
+ - [ ] New public classes are exported from `__init__.py`
17
+ - [ ] Docstrings are present (Google style, with parameters and examples)
18
+ - [ ] Optional dependencies are handled with graceful import errors
19
+ - [ ] `CHANGELOG.md` updated (if applicable)
@@ -0,0 +1,86 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.12"
22
+
23
+ - name: Install dependencies
24
+ run: pip install ruff
25
+
26
+ - name: Lint
27
+ run: ruff check endgame/
28
+
29
+ test:
30
+ runs-on: ubuntu-latest
31
+ strategy:
32
+ fail-fast: false
33
+ matrix:
34
+ python-version: ["3.10", "3.11"]
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: ${{ matrix.python-version }}
41
+ cache: pip
42
+
43
+ - name: Install dependencies
44
+ run: pip install -e ".[dev,tabular,calibration,explain,fairness,benchmark,anomaly,tracking,mcp]"
45
+
46
+ - name: Run tests
47
+ run: >
48
+ pytest tests/ -v --tb=short
49
+ --cov=endgame --cov-report=xml
50
+ --ignore=tests/test_oblique_forest.py
51
+ --ignore=tests/test_grande.py
52
+ --ignore=tests/test_tabdpt.py
53
+ --ignore=tests/test_nlp.py
54
+ --ignore=tests/test_nlp_translation.py
55
+ --ignore=tests/test_vision.py
56
+ -k "not TestExtendedIsolationForest and not (TestTabularPredictor and (test_predict_classification or test_predict_proba_classification or test_leaderboard)) and not (TestAutoMLPredictor and (test_predict_automl or test_chained_fit_predict)) and not (TestCORELS and test_fit_predict_without_corels) and not (TestGAM and test_partial_dependence) and not TestUMAPReducer and not TestTriMAPReducer and not TestPHATEReducer and not TestPaCMAPReducer and not TestTextPredictor"
57
+
58
+ - name: Upload coverage
59
+ if: matrix.python-version == '3.11'
60
+ uses: codecov/codecov-action@v4
61
+ with:
62
+ files: coverage.xml
63
+ fail_ci_if_error: false
64
+ env:
65
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
66
+
67
+ typecheck:
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+
72
+ - uses: actions/setup-python@v5
73
+ with:
74
+ python-version: "3.11"
75
+ cache: pip
76
+
77
+ - name: Install dependencies
78
+ run: pip install -e ".[dev,tabular,calibration,explain,fairness]"
79
+
80
+ - name: Type check (informational)
81
+ run: |
82
+ echo "Running mypy (informational — errors do not block CI)"
83
+ mypy endgame/ --ignore-missing-imports --no-error-summary 2>&1 | tail -20 || true
84
+ echo ""
85
+ mypy endgame/ --ignore-missing-imports 2>&1 | grep -c "error:" || echo "0 errors"
86
+ echo "See full output above. Typecheck is informational until error count reaches zero."
@@ -0,0 +1,28 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ id-token: write
9
+
10
+ jobs:
11
+ build-and-publish:
12
+ runs-on: ubuntu-latest
13
+ environment: pypi
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.12"
20
+
21
+ - name: Install build tools
22
+ run: pip install hatch
23
+
24
+ - name: Build package
25
+ run: hatch build
26
+
27
+ - name: Publish to PyPI
28
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,77 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.egg-info/
7
+ dist/
8
+ build/
9
+ *.egg
10
+
11
+ # Virtual environments
12
+ .venv/
13
+ venv/
14
+ env/
15
+
16
+ # IDE
17
+ .idea/
18
+ .vscode/
19
+ *.swp
20
+ *.swo
21
+ *~
22
+
23
+ # OS files
24
+ .DS_Store
25
+ Thumbs.db
26
+ ._*
27
+
28
+ # Claude Code
29
+ .claude/
30
+
31
+ # Build caches (e.g. compiled CORELS binary)
32
+ .cache/
33
+
34
+ # Rust build artifacts (C5.0, Cubist)
35
+ **/target/
36
+
37
+ # Git backup
38
+ .git-backup/
39
+
40
+ # Logs and artifacts
41
+ *.log
42
+ lightning_logs/
43
+ catboost_info/
44
+
45
+ # Data and results (large files)
46
+ data/
47
+ results/
48
+ saved_models/
49
+ submissions/
50
+ *.parquet
51
+
52
+ # Benchmark outputs
53
+ benchmark_results_report.html
54
+ *.csv
55
+
56
+ # Sphinx build output
57
+ docs/_build/
58
+
59
+ # Coverage
60
+ .coverage
61
+ .coverage.*
62
+ htmlcov/
63
+
64
+ # PyTorch temp
65
+ .pt_tmp/
66
+
67
+ # Paper (unpublished research — not public yet)
68
+ paper/
69
+
70
+ # AutoML output directories
71
+ automl_best_quality_output/
72
+ automl_interpretable_output/
73
+ automl_evolutionary_output/
74
+
75
+ # Requirements files (use pyproject.toml)
76
+ requirements*.txt
77
+ !docs/requirements.txt
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "endgame": {
4
+ "command": "python",
5
+ "args": ["-m", "endgame.mcp"]
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,15 @@
1
+ version: 2
2
+
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: "3.12"
7
+
8
+ sphinx:
9
+ configuration: docs/conf.py
10
+
11
+ python:
12
+ install:
13
+ - requirements: docs/requirements.txt
14
+ - method: pip
15
+ path: .
@@ -0,0 +1,44 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.0] - 2026-02-22
9
+
10
+ First stable release of Endgame.
11
+
12
+ ### Changed
13
+ - Version bump from 0.7.0-alpha to 1.0.0
14
+ - Updated development status to Production/Stable
15
+
16
+ ### Fixed
17
+ - `eg.timeseries`, `eg.signal`, `eg.automl`, `eg.dimensionality_reduction`, `eg.feature_selection` now accessible via top-level lazy loading
18
+ - Updated `__all__` to include all public modules
19
+
20
+ ## [0.7.0-alpha] - 2026-02-19
21
+
22
+ Initial public release of Endgame.
23
+
24
+ ### Added
25
+ - **100+ models** with unified sklearn-compatible API: GBDTs (LightGBM, XGBoost, CatBoost), deep tabular (FT-Transformer, SAINT, NODE, TabPFN, NAM, GANDALF), custom trees (Rotation Forest, C5.0/Cubist, Oblique, Evolutionary), rules (RuleFit, FURIA), Bayesian classifiers (TAN, KDB, ESKDB), kernel methods, probabilistic models (NGBoost, BART), and interpretable models (EBM, MARS)
26
+ - **Polars-powered preprocessing**: SafeTargetEncoder, AutoAggregator, 18+ resampling methods (SMOTE family, ADASYN, geometric, generative), MICE/MissForest imputation, ConfidentLearning noise detection
27
+ - **Ensemble methods**: SuperLearner (NNLS), HillClimbingEnsemble, StackingEnsemble, BlendingEnsemble, ThresholdOptimizer, knowledge distillation
28
+ - **Calibration**: Conformal prediction (classification + regression), CQR, Venn-ABERS, Temperature/Platt/Beta/Isotonic scaling
29
+ - **Validation**: AdversarialValidator, PurgedTimeSeriesSplit, StratifiedGroupKFold, CPCV
30
+ - **42 interactive visualizations**: ROC, PR, calibration, PDP/ICE, waterfall, confusion matrix, Sankey, network diagrams, tree visualizer, and more — all self-contained HTML with no CDN dependencies
31
+ - **Signal processing**: filtering (Butterworth, FIR, notch), spectral analysis (FFT, Welch, multitaper), wavelets (CWT, DWT), entropy measures, complexity measures, spatial filtering (CSP)
32
+ - **Time series**: statistical forecasters (AutoARIMA, AutoETS, MSTL), neural forecasters (N-BEATS, TFT, PatchTST), ROCKET/Hydra classification
33
+ - **Explainability**: SHAP, LIME, PDP, feature interactions, counterfactual explanations
34
+ - **Fairness**: demographic parity, equalized odds, bias mitigation (Reweighing, Exponentiated Gradient, Calibrated EqOdds)
35
+ - **AutoML**: TabularPredictor with preset system (best_quality, high_quality, good_quality, medium_quality, fast, interpretable) with evolutionary/genetic search strategy
36
+ - **Anomaly detection**: Isolation Forest, Extended IF, LOF, GritBot, PyOD wrapper (39+ algorithms)
37
+ - **Persistence**: model save/load, ONNX export, ModelServer for inference
38
+ - **MCP server**: 20 tools + 6 resources for LLM-powered ML pipelines with consistent categorical encoding, timeout protection, and structured error handling
39
+ - **Benchmark suite**: OpenML integration, meta-learning, synthetic data generation
40
+ - **Example notebooks**: 6 notebooks covering quickstart, interpretable models, AutoML, ensembles, MCP, and signal/timeseries
41
+
42
+ ### Dependencies
43
+ - Core: numpy>=1.24, polars>=0.20, scikit-learn>=1.3, optuna>=3.4, scipy>=1.10, networkx>=3.0
44
+ - Optional groups: `tabular`, `vision`, `nlp`, `audio`, `benchmark`, `calibration`, `explain`, `fairness`, `deployment`, `mcp`
@@ -0,0 +1,34 @@
1
+ cff-version: 1.2.0
2
+ title: "Endgame: A Living Library of Machine Learning"
3
+ message: "If you use this software, please cite it as below."
4
+ type: software
5
+ authors:
6
+ - given-names: Cameron Hamilton
7
+ family-names: Hamilton
8
+ affiliation: Alliance AI
9
+ repository-code: "https://github.com/allianceai/endgame"
10
+ url: "https://github.com/allianceai/endgame"
11
+ license: Apache-2.0
12
+ version: 1.0.0
13
+ date-released: "2026-02-22"
14
+ keywords:
15
+ - machine-learning
16
+ - deep-learning
17
+ - tabular-data
18
+ - ensemble-methods
19
+ - automl
20
+ - time-series
21
+ - signal-processing
22
+ - interpretability
23
+ - calibration
24
+ - scikit-learn
25
+ abstract: >-
26
+ Endgame brings together classic and state-of-the-art machine learning
27
+ methods from every domain under a single scikit-learn-compatible API.
28
+ It provides 300+ estimators, transformers, and visualizers across
29
+ tabular, time series, signal processing, vision, NLP, and audio —
30
+ including deep tabular models (FT-Transformer, SAINT, TabPFN),
31
+ time series classification (ROCKET, HYDRA), conformal prediction
32
+ with coverage guarantees, 22 ensemble strategies, and 42 self-contained
33
+ interactive HTML visualizations. Designed for research, production,
34
+ and competition.
@@ -0,0 +1,54 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a welcoming experience for everyone, regardless of background or
7
+ identity.
8
+
9
+ We pledge to act and interact in ways that contribute to an open, welcoming,
10
+ diverse, inclusive, and healthy community.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to a positive environment:
15
+
16
+ - Using welcoming and inclusive language
17
+ - Being respectful of differing viewpoints and experiences
18
+ - Gracefully accepting constructive criticism
19
+ - Focusing on what is best for the community
20
+ - Showing empathy towards other community members
21
+
22
+ Examples of unacceptable behavior:
23
+
24
+ - Trolling, insulting or derogatory comments, and personal attacks
25
+ - Public or private communication that others would reasonably find unwelcome
26
+ - Publishing others' private information without explicit permission
27
+ - Other conduct which could reasonably be considered inappropriate in a
28
+ professional setting
29
+
30
+ ## Enforcement Responsibilities
31
+
32
+ Community leaders are responsible for clarifying and enforcing our standards of
33
+ acceptable behavior and will take appropriate and fair corrective action in
34
+ response to any behavior that they deem inappropriate or harmful.
35
+
36
+ ## Scope
37
+
38
+ This Code of Conduct applies within all community spaces, and also applies when
39
+ an individual is officially representing the community in public spaces.
40
+
41
+ ## Enforcement
42
+
43
+ Instances of unacceptable behavior may be reported to the community leaders
44
+ responsible for enforcement via the contact methods listed in the repository.
45
+
46
+ All complaints will be reviewed and investigated promptly and fairly. Community
47
+ leaders are obligated to respect the privacy and security of the reporter of
48
+ any incident.
49
+
50
+ ## Attribution
51
+
52
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
53
+ version 2.1, available at
54
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).