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.
- endgame_ml-1.0.0/.github/ISSUE_TEMPLATE/bug_report.yml +59 -0
- endgame_ml-1.0.0/.github/ISSUE_TEMPLATE/feature_request.yml +71 -0
- endgame_ml-1.0.0/.github/PULL_REQUEST_TEMPLATE.md +19 -0
- endgame_ml-1.0.0/.github/workflows/ci.yml +86 -0
- endgame_ml-1.0.0/.github/workflows/publish.yml +28 -0
- endgame_ml-1.0.0/.gitignore +77 -0
- endgame_ml-1.0.0/.mcp.json +8 -0
- endgame_ml-1.0.0/.readthedocs.yml +15 -0
- endgame_ml-1.0.0/CHANGELOG.md +44 -0
- endgame_ml-1.0.0/CITATION.cff +34 -0
- endgame_ml-1.0.0/CODE_OF_CONDUCT.md +54 -0
- endgame_ml-1.0.0/CONTRIBUTING.md +205 -0
- endgame_ml-1.0.0/LICENSE +191 -0
- endgame_ml-1.0.0/PKG-INFO +894 -0
- endgame_ml-1.0.0/README.md +718 -0
- endgame_ml-1.0.0/SECURITY.md +47 -0
- endgame_ml-1.0.0/assets/endgame_automl.png +0 -0
- endgame_ml-1.0.0/assets/speeddating_confusion_matrix.png +0 -0
- endgame_ml-1.0.0/assets/speeddating_feature_importance.png +0 -0
- endgame_ml-1.0.0/assets/speeddating_roc_curve.png +0 -0
- endgame_ml-1.0.0/benchmarks/README.md +82 -0
- endgame_ml-1.0.0/benchmarks/run_calibration_benchmark.py +334 -0
- endgame_ml-1.0.0/benchmarks/run_glassbox_benchmark.py +327 -0
- endgame_ml-1.0.0/benchmarks/run_tabular_benchmark.py +1066 -0
- endgame_ml-1.0.0/docs/Makefile +14 -0
- endgame_ml-1.0.0/docs/api/anomaly.rst +7 -0
- endgame_ml-1.0.0/docs/api/automl.rst +7 -0
- endgame_ml-1.0.0/docs/api/benchmark.rst +7 -0
- endgame_ml-1.0.0/docs/api/calibration.rst +7 -0
- endgame_ml-1.0.0/docs/api/clustering.rst +7 -0
- endgame_ml-1.0.0/docs/api/dimensionality_reduction.rst +7 -0
- endgame_ml-1.0.0/docs/api/ensemble.rst +7 -0
- endgame_ml-1.0.0/docs/api/explain.rst +7 -0
- endgame_ml-1.0.0/docs/api/fairness.rst +7 -0
- endgame_ml-1.0.0/docs/api/feature_selection.rst +7 -0
- endgame_ml-1.0.0/docs/api/mcp.rst +7 -0
- endgame_ml-1.0.0/docs/api/models.rst +7 -0
- endgame_ml-1.0.0/docs/api/persistence.rst +7 -0
- endgame_ml-1.0.0/docs/api/preprocessing.rst +7 -0
- endgame_ml-1.0.0/docs/api/quick.rst +7 -0
- endgame_ml-1.0.0/docs/api/semi_supervised.rst +7 -0
- endgame_ml-1.0.0/docs/api/signal.rst +7 -0
- endgame_ml-1.0.0/docs/api/timeseries.rst +7 -0
- endgame_ml-1.0.0/docs/api/tracking.rst +7 -0
- endgame_ml-1.0.0/docs/api/tune.rst +7 -0
- endgame_ml-1.0.0/docs/api/utils.rst +7 -0
- endgame_ml-1.0.0/docs/api/validation.rst +7 -0
- endgame_ml-1.0.0/docs/api/visualization.rst +13 -0
- endgame_ml-1.0.0/docs/conf.py +78 -0
- endgame_ml-1.0.0/docs/guides/automl.md +828 -0
- endgame_ml-1.0.0/docs/guides/calibration.md +243 -0
- endgame_ml-1.0.0/docs/guides/endgame_automl.png +0 -0
- endgame_ml-1.0.0/docs/guides/ensembles.md +232 -0
- endgame_ml-1.0.0/docs/guides/explainability.md +222 -0
- endgame_ml-1.0.0/docs/guides/images/viz/arc_diagram.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/bar_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/box_plot.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/bump_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/calibration_plot.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/chord_diagram.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/confusion_matrix.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/decision_tree.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/donut_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/dot_matrix.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/dumbbell_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/error_bars.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/flow_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/funnel_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/gauge_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/heatmap.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/histogram.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/lift_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/line_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/lollipop_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/network_diagram.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/nightingale_rose.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/parallel_coordinates.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/pdp_1d.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/pdp_2d.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/pr_curve.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/radar_chart.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/radial_bar.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/ridgeline_plot.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/roc_curve.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/sankey.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/scatterplot.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/spiral_plot.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/stream_graph.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/sunburst.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/treemap.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/venn_diagram.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/violin_plot.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/waterfall.png +0 -0
- endgame_ml-1.0.0/docs/guides/images/viz/word_cloud.png +0 -0
- endgame_ml-1.0.0/docs/guides/installation.md +161 -0
- endgame_ml-1.0.0/docs/guides/mcp_server.md +349 -0
- endgame_ml-1.0.0/docs/guides/models.md +582 -0
- endgame_ml-1.0.0/docs/guides/preprocessing.md +437 -0
- endgame_ml-1.0.0/docs/guides/quickstart.md +368 -0
- endgame_ml-1.0.0/docs/guides/signal.md +240 -0
- endgame_ml-1.0.0/docs/guides/timeseries.md +304 -0
- endgame_ml-1.0.0/docs/guides/tracking.md +161 -0
- endgame_ml-1.0.0/docs/guides/visualization.md +1272 -0
- endgame_ml-1.0.0/docs/index.rst +88 -0
- endgame_ml-1.0.0/docs/requirements.txt +5 -0
- endgame_ml-1.0.0/endgame/__init__.py +95 -0
- endgame_ml-1.0.0/endgame/anomaly/__init__.py +58 -0
- endgame_ml-1.0.0/endgame/anomaly/gritbot.py +752 -0
- endgame_ml-1.0.0/endgame/anomaly/isolation_forest.py +446 -0
- endgame_ml-1.0.0/endgame/anomaly/lof.py +221 -0
- endgame_ml-1.0.0/endgame/anomaly/pyod_wrapper.py +388 -0
- endgame_ml-1.0.0/endgame/audio/__init__.py +16 -0
- endgame_ml-1.0.0/endgame/audio/augmentation.py +239 -0
- endgame_ml-1.0.0/endgame/audio/features.py +295 -0
- endgame_ml-1.0.0/endgame/audio/pretrained.py +564 -0
- endgame_ml-1.0.0/endgame/audio/sed.py +958 -0
- endgame_ml-1.0.0/endgame/audio/spectrogram.py +268 -0
- endgame_ml-1.0.0/endgame/automl/DEVELOPMENT.md +436 -0
- endgame_ml-1.0.0/endgame/automl/__init__.py +176 -0
- endgame_ml-1.0.0/endgame/automl/_safe_dim_reduce.py +40 -0
- endgame_ml-1.0.0/endgame/automl/audio.py +872 -0
- endgame_ml-1.0.0/endgame/automl/base.py +754 -0
- endgame_ml-1.0.0/endgame/automl/display.py +393 -0
- endgame_ml-1.0.0/endgame/automl/executors/__init__.py +22 -0
- endgame_ml-1.0.0/endgame/automl/executors/constraint_check.py +249 -0
- endgame_ml-1.0.0/endgame/automl/executors/explainability.py +296 -0
- endgame_ml-1.0.0/endgame/automl/executors/hpo.py +215 -0
- endgame_ml-1.0.0/endgame/automl/executors/persistence.py +187 -0
- endgame_ml-1.0.0/endgame/automl/executors/threshold_opt.py +132 -0
- endgame_ml-1.0.0/endgame/automl/guardrails.py +377 -0
- endgame_ml-1.0.0/endgame/automl/model_registry.py +1686 -0
- endgame_ml-1.0.0/endgame/automl/multimodal.py +1325 -0
- endgame_ml-1.0.0/endgame/automl/orchestrator.py +4238 -0
- endgame_ml-1.0.0/endgame/automl/predictor.py +610 -0
- endgame_ml-1.0.0/endgame/automl/preprocessing/__init__.py +14 -0
- endgame_ml-1.0.0/endgame/automl/preprocessing/auto_preprocessor.py +575 -0
- endgame_ml-1.0.0/endgame/automl/preprocessing_registry.py +731 -0
- endgame_ml-1.0.0/endgame/automl/presets.py +514 -0
- endgame_ml-1.0.0/endgame/automl/report.py +468 -0
- endgame_ml-1.0.0/endgame/automl/search/__init__.py +47 -0
- endgame_ml-1.0.0/endgame/automl/search/adaptive.py +205 -0
- endgame_ml-1.0.0/endgame/automl/search/bandit.py +625 -0
- endgame_ml-1.0.0/endgame/automl/search/base.py +358 -0
- endgame_ml-1.0.0/endgame/automl/search/bayesian.py +610 -0
- endgame_ml-1.0.0/endgame/automl/search/genetic.py +959 -0
- endgame_ml-1.0.0/endgame/automl/search/heuristic.py +499 -0
- endgame_ml-1.0.0/endgame/automl/search/portfolio.py +775 -0
- endgame_ml-1.0.0/endgame/automl/search/random.py +385 -0
- endgame_ml-1.0.0/endgame/automl/stacker.py +650 -0
- endgame_ml-1.0.0/endgame/automl/tabular.py +1670 -0
- endgame_ml-1.0.0/endgame/automl/text.py +871 -0
- endgame_ml-1.0.0/endgame/automl/time_manager.py +495 -0
- endgame_ml-1.0.0/endgame/automl/timeseries.py +759 -0
- endgame_ml-1.0.0/endgame/automl/utils/__init__.py +19 -0
- endgame_ml-1.0.0/endgame/automl/utils/data_loader.py +509 -0
- endgame_ml-1.0.0/endgame/automl/vision.py +1022 -0
- endgame_ml-1.0.0/endgame/benchmark/__init__.py +130 -0
- endgame_ml-1.0.0/endgame/benchmark/analyzer.py +750 -0
- endgame_ml-1.0.0/endgame/benchmark/learning_curve.py +786 -0
- endgame_ml-1.0.0/endgame/benchmark/loader.py +573 -0
- endgame_ml-1.0.0/endgame/benchmark/metalearner.py +769 -0
- endgame_ml-1.0.0/endgame/benchmark/profiler.py +607 -0
- endgame_ml-1.0.0/endgame/benchmark/report.py +1217 -0
- endgame_ml-1.0.0/endgame/benchmark/runner.py +949 -0
- endgame_ml-1.0.0/endgame/benchmark/synthetic.py +519 -0
- endgame_ml-1.0.0/endgame/benchmark/tracker.py +911 -0
- endgame_ml-1.0.0/endgame/calibration/__init__.py +48 -0
- endgame_ml-1.0.0/endgame/calibration/analysis.py +656 -0
- endgame_ml-1.0.0/endgame/calibration/conformal.py +1214 -0
- endgame_ml-1.0.0/endgame/calibration/scaling.py +554 -0
- endgame_ml-1.0.0/endgame/calibration/venn_abers.py +417 -0
- endgame_ml-1.0.0/endgame/clustering/__init__.py +99 -0
- endgame_ml-1.0.0/endgame/clustering/auto.py +275 -0
- endgame_ml-1.0.0/endgame/clustering/centroid.py +424 -0
- endgame_ml-1.0.0/endgame/clustering/density.py +436 -0
- endgame_ml-1.0.0/endgame/clustering/distribution.py +299 -0
- endgame_ml-1.0.0/endgame/clustering/graph.py +184 -0
- endgame_ml-1.0.0/endgame/clustering/hierarchical.py +190 -0
- endgame_ml-1.0.0/endgame/clustering/scalable.py +261 -0
- endgame_ml-1.0.0/endgame/core/__init__.py +55 -0
- endgame_ml-1.0.0/endgame/core/base.py +474 -0
- endgame_ml-1.0.0/endgame/core/config.py +284 -0
- endgame_ml-1.0.0/endgame/core/polars_ops.py +364 -0
- endgame_ml-1.0.0/endgame/core/types.py +182 -0
- endgame_ml-1.0.0/endgame/dimensionality_reduction/__init__.py +68 -0
- endgame_ml-1.0.0/endgame/dimensionality_reduction/linear.py +549 -0
- endgame_ml-1.0.0/endgame/dimensionality_reduction/manifold.py +883 -0
- endgame_ml-1.0.0/endgame/dimensionality_reduction/vae.py +627 -0
- endgame_ml-1.0.0/endgame/ensemble/__init__.py +69 -0
- endgame_ml-1.0.0/endgame/ensemble/bagging.py +390 -0
- endgame_ml-1.0.0/endgame/ensemble/bayesian_averaging.py +220 -0
- endgame_ml-1.0.0/endgame/ensemble/blending.py +690 -0
- endgame_ml-1.0.0/endgame/ensemble/boosting.py +385 -0
- endgame_ml-1.0.0/endgame/ensemble/cascade.py +244 -0
- endgame_ml-1.0.0/endgame/ensemble/distillation.py +355 -0
- endgame_ml-1.0.0/endgame/ensemble/hill_climbing.py +310 -0
- endgame_ml-1.0.0/endgame/ensemble/multi_output.py +892 -0
- endgame_ml-1.0.0/endgame/ensemble/negative_correlation.py +196 -0
- endgame_ml-1.0.0/endgame/ensemble/snapshot.py +166 -0
- endgame_ml-1.0.0/endgame/ensemble/stacking.py +357 -0
- endgame_ml-1.0.0/endgame/ensemble/super_learner.py +290 -0
- endgame_ml-1.0.0/endgame/ensemble/threshold.py +307 -0
- endgame_ml-1.0.0/endgame/ensemble/voting.py +302 -0
- endgame_ml-1.0.0/endgame/explain/__init__.py +172 -0
- endgame_ml-1.0.0/endgame/explain/_base.py +349 -0
- endgame_ml-1.0.0/endgame/explain/counterfactual.py +271 -0
- endgame_ml-1.0.0/endgame/explain/interaction.py +351 -0
- endgame_ml-1.0.0/endgame/explain/lime_explainer.py +247 -0
- endgame_ml-1.0.0/endgame/explain/pdp.py +251 -0
- endgame_ml-1.0.0/endgame/explain/shap_explainer.py +344 -0
- endgame_ml-1.0.0/endgame/fairness/__init__.py +57 -0
- endgame_ml-1.0.0/endgame/fairness/metrics.py +471 -0
- endgame_ml-1.0.0/endgame/fairness/mitigation.py +743 -0
- endgame_ml-1.0.0/endgame/fairness/report.py +433 -0
- endgame_ml-1.0.0/endgame/feature_selection/__init__.py +100 -0
- endgame_ml-1.0.0/endgame/feature_selection/filter/__init__.py +21 -0
- endgame_ml-1.0.0/endgame/feature_selection/filter/correlation.py +192 -0
- endgame_ml-1.0.0/endgame/feature_selection/filter/mrmr.py +245 -0
- endgame_ml-1.0.0/endgame/feature_selection/filter/relief.py +299 -0
- endgame_ml-1.0.0/endgame/feature_selection/filter/univariate.py +337 -0
- endgame_ml-1.0.0/endgame/feature_selection/importance/__init__.py +11 -0
- endgame_ml-1.0.0/endgame/feature_selection/importance/permutation.py +227 -0
- endgame_ml-1.0.0/endgame/feature_selection/importance/shap_importance.py +275 -0
- endgame_ml-1.0.0/endgame/feature_selection/importance/tree.py +210 -0
- endgame_ml-1.0.0/endgame/feature_selection/knockoff.py +322 -0
- endgame_ml-1.0.0/endgame/feature_selection/stability.py +253 -0
- endgame_ml-1.0.0/endgame/feature_selection/wrapper/__init__.py +13 -0
- endgame_ml-1.0.0/endgame/feature_selection/wrapper/boruta.py +311 -0
- endgame_ml-1.0.0/endgame/feature_selection/wrapper/genetic.py +350 -0
- endgame_ml-1.0.0/endgame/feature_selection/wrapper/rfe.py +195 -0
- endgame_ml-1.0.0/endgame/feature_selection/wrapper/sequential.py +255 -0
- endgame_ml-1.0.0/endgame/kaggle/__init__.py +71 -0
- endgame_ml-1.0.0/endgame/kaggle/client.py +853 -0
- endgame_ml-1.0.0/endgame/kaggle/competition.py +675 -0
- endgame_ml-1.0.0/endgame/kaggle/project.py +685 -0
- endgame_ml-1.0.0/endgame/mcp/__init__.py +19 -0
- endgame_ml-1.0.0/endgame/mcp/__main__.py +21 -0
- endgame_ml-1.0.0/endgame/mcp/codegen.py +188 -0
- endgame_ml-1.0.0/endgame/mcp/resources.py +178 -0
- endgame_ml-1.0.0/endgame/mcp/server.py +110 -0
- endgame_ml-1.0.0/endgame/mcp/session.py +208 -0
- endgame_ml-1.0.0/endgame/mcp/tools/__init__.py +1 -0
- endgame_ml-1.0.0/endgame/mcp/tools/_encoding.py +137 -0
- endgame_ml-1.0.0/endgame/mcp/tools/_timeout.py +70 -0
- endgame_ml-1.0.0/endgame/mcp/tools/advanced.py +304 -0
- endgame_ml-1.0.0/endgame/mcp/tools/data.py +275 -0
- endgame_ml-1.0.0/endgame/mcp/tools/discover.py +158 -0
- endgame_ml-1.0.0/endgame/mcp/tools/evaluate.py +221 -0
- endgame_ml-1.0.0/endgame/mcp/tools/export.py +75 -0
- endgame_ml-1.0.0/endgame/mcp/tools/predict.py +63 -0
- endgame_ml-1.0.0/endgame/mcp/tools/preprocess.py +216 -0
- endgame_ml-1.0.0/endgame/mcp/tools/train.py +279 -0
- endgame_ml-1.0.0/endgame/mcp/tools/visualize.py +325 -0
- endgame_ml-1.0.0/endgame/models/__init__.py +339 -0
- endgame_ml-1.0.0/endgame/models/baselines/__init__.py +48 -0
- endgame_ml-1.0.0/endgame/models/baselines/discriminant.py +523 -0
- endgame_ml-1.0.0/endgame/models/baselines/elm.py +459 -0
- endgame_ml-1.0.0/endgame/models/baselines/knn.py +392 -0
- endgame_ml-1.0.0/endgame/models/baselines/linear.py +414 -0
- endgame_ml-1.0.0/endgame/models/baselines/naive_bayes.py +308 -0
- endgame_ml-1.0.0/endgame/models/bayesian/__init__.py +116 -0
- endgame_ml-1.0.0/endgame/models/bayesian/base.py +795 -0
- endgame_ml-1.0.0/endgame/models/bayesian/classic/__init__.py +12 -0
- endgame_ml-1.0.0/endgame/models/bayesian/classic/ebmc.py +538 -0
- endgame_ml-1.0.0/endgame/models/bayesian/classic/eskdb.py +698 -0
- endgame_ml-1.0.0/endgame/models/bayesian/classic/tan.py +353 -0
- endgame_ml-1.0.0/endgame/models/bayesian/neural/__init__.py +14 -0
- endgame_ml-1.0.0/endgame/models/bayesian/neural/embeddings.py +392 -0
- endgame_ml-1.0.0/endgame/models/bayesian/neural/neural_kdb.py +623 -0
- endgame_ml-1.0.0/endgame/models/bayesian/structure/__init__.py +33 -0
- endgame_ml-1.0.0/endgame/models/bayesian/structure/autosle.py +577 -0
- endgame_ml-1.0.0/endgame/models/bayesian/structure/learning.py +720 -0
- endgame_ml-1.0.0/endgame/models/bayesian/structure/scores.py +411 -0
- endgame_ml-1.0.0/endgame/models/ebm.py +953 -0
- endgame_ml-1.0.0/endgame/models/interpretable/__init__.py +45 -0
- endgame_ml-1.0.0/endgame/models/interpretable/corels.py +692 -0
- endgame_ml-1.0.0/endgame/models/interpretable/gam.py +637 -0
- endgame_ml-1.0.0/endgame/models/interpretable/gami_net.py +1063 -0
- endgame_ml-1.0.0/endgame/models/interpretable/gosdt.py +511 -0
- endgame_ml-1.0.0/endgame/models/interpretable/node_gam.py +933 -0
- endgame_ml-1.0.0/endgame/models/interpretable/slim.py +774 -0
- endgame_ml-1.0.0/endgame/models/kernel/__init__.py +25 -0
- endgame_ml-1.0.0/endgame/models/kernel/gaussian_process.py +470 -0
- endgame_ml-1.0.0/endgame/models/kernel/svm.py +426 -0
- endgame_ml-1.0.0/endgame/models/linear/__init__.py +8 -0
- endgame_ml-1.0.0/endgame/models/linear/basis.py +343 -0
- endgame_ml-1.0.0/endgame/models/linear/mars.py +1374 -0
- endgame_ml-1.0.0/endgame/models/linear/tests/__init__.py +1 -0
- endgame_ml-1.0.0/endgame/models/linear/tests/test_mars.py +674 -0
- endgame_ml-1.0.0/endgame/models/neural/__init__.py +39 -0
- endgame_ml-1.0.0/endgame/models/neural/embedding_mlp.py +1001 -0
- endgame_ml-1.0.0/endgame/models/neural/mlp.py +798 -0
- endgame_ml-1.0.0/endgame/models/neural/tabnet.py +665 -0
- endgame_ml-1.0.0/endgame/models/neuroevolution/__init__.py +14 -0
- endgame_ml-1.0.0/endgame/models/neuroevolution/neat.py +407 -0
- endgame_ml-1.0.0/endgame/models/neuroevolution/tensor_neat.py +346 -0
- endgame_ml-1.0.0/endgame/models/ngboost.py +849 -0
- endgame_ml-1.0.0/endgame/models/ordinal/__init__.py +19 -0
- endgame_ml-1.0.0/endgame/models/ordinal/ordinal.py +536 -0
- endgame_ml-1.0.0/endgame/models/probabilistic/__init__.py +8 -0
- endgame_ml-1.0.0/endgame/models/probabilistic/bart.py +557 -0
- endgame_ml-1.0.0/endgame/models/rules/__init__.py +31 -0
- endgame_ml-1.0.0/endgame/models/rules/extraction.py +206 -0
- endgame_ml-1.0.0/endgame/models/rules/furia.py +747 -0
- endgame_ml-1.0.0/endgame/models/rules/rule.py +392 -0
- endgame_ml-1.0.0/endgame/models/rules/rulefit.py +1310 -0
- endgame_ml-1.0.0/endgame/models/rules/rulefit_plus.py +1380 -0
- endgame_ml-1.0.0/endgame/models/rules/tests/__init__.py +1 -0
- endgame_ml-1.0.0/endgame/models/rules/tests/test_rulefit.py +830 -0
- endgame_ml-1.0.0/endgame/models/subgroup/__init__.py +21 -0
- endgame_ml-1.0.0/endgame/models/subgroup/prim.py +813 -0
- endgame_ml-1.0.0/endgame/models/symbolic/__init__.py +18 -0
- endgame_ml-1.0.0/endgame/models/symbolic/_constant_optimizer.py +238 -0
- endgame_ml-1.0.0/endgame/models/symbolic/_expression.py +323 -0
- endgame_ml-1.0.0/endgame/models/symbolic/_operators.py +310 -0
- endgame_ml-1.0.0/endgame/models/symbolic/_pareto.py +112 -0
- endgame_ml-1.0.0/endgame/models/symbolic/_population.py +352 -0
- endgame_ml-1.0.0/endgame/models/symbolic/symbolic_classifier.py +226 -0
- endgame_ml-1.0.0/endgame/models/symbolic/symbolic_regressor.py +551 -0
- endgame_ml-1.0.0/endgame/models/tabular/__init__.py +258 -0
- endgame_ml-1.0.0/endgame/models/tabular/ft_transformer.py +1006 -0
- endgame_ml-1.0.0/endgame/models/tabular/gandalf.py +873 -0
- endgame_ml-1.0.0/endgame/models/tabular/grande.py +720 -0
- endgame_ml-1.0.0/endgame/models/tabular/modern_nca.py +498 -0
- endgame_ml-1.0.0/endgame/models/tabular/nam.py +1275 -0
- endgame_ml-1.0.0/endgame/models/tabular/node.py +719 -0
- endgame_ml-1.0.0/endgame/models/tabular/realmlp.py +1159 -0
- endgame_ml-1.0.0/endgame/models/tabular/saint.py +873 -0
- endgame_ml-1.0.0/endgame/models/tabular/tab_transformer.py +601 -0
- endgame_ml-1.0.0/endgame/models/tabular/tabdpt.py +547 -0
- endgame_ml-1.0.0/endgame/models/tabular/tabm.py +1082 -0
- endgame_ml-1.0.0/endgame/models/tabular/tabpfn.py +1663 -0
- endgame_ml-1.0.0/endgame/models/tabular/tabr.py +1177 -0
- endgame_ml-1.0.0/endgame/models/tabular/tabular_resnet.py +565 -0
- endgame_ml-1.0.0/endgame/models/tabular/xrfm.py +631 -0
- endgame_ml-1.0.0/endgame/models/trees/__init__.py +98 -0
- endgame_ml-1.0.0/endgame/models/trees/adtree.py +1665 -0
- endgame_ml-1.0.0/endgame/models/trees/c50.py +1057 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/Cargo.lock +572 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/Cargo.toml +39 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/__init__.py +8 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/pyproject.toml +13 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/boost.rs +304 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/classify.rs +305 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/info.rs +289 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/lib.rs +380 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/prune.rs +387 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/split.rs +632 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/tree.rs +355 -0
- endgame_ml-1.0.0/endgame/models/trees/c50_rust/src/types.rs +388 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist.py +375 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/Cargo.lock +572 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/Cargo.toml +39 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/pyproject.toml +13 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/lib.rs +330 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/predict.rs +246 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/regress.rs +421 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/rules.rs +361 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/split.rs +400 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/tree.rs +363 -0
- endgame_ml-1.0.0/endgame/models/trees/cubist_rust/src/types.rs +585 -0
- endgame_ml-1.0.0/endgame/models/trees/evtree/__init__.py +11 -0
- endgame_ml-1.0.0/endgame/models/trees/evtree/evtree.py +1419 -0
- endgame_ml-1.0.0/endgame/models/trees/oblique_forest.py +835 -0
- endgame_ml-1.0.0/endgame/models/trees/oblique_splits.py +1105 -0
- endgame_ml-1.0.0/endgame/models/trees/oblique_tree.py +964 -0
- endgame_ml-1.0.0/endgame/models/trees/quantile_forest.py +807 -0
- endgame_ml-1.0.0/endgame/models/trees/rotation_forest.py +455 -0
- endgame_ml-1.0.0/endgame/models/wrappers.py +698 -0
- endgame_ml-1.0.0/endgame/nlp/__init__.py +99 -0
- endgame_ml-1.0.0/endgame/nlp/dapt.py +154 -0
- endgame_ml-1.0.0/endgame/nlp/llm.py +758 -0
- endgame_ml-1.0.0/endgame/nlp/metrics.py +459 -0
- endgame_ml-1.0.0/endgame/nlp/postprocessing.py +530 -0
- endgame_ml-1.0.0/endgame/nlp/preprocessing.py +501 -0
- endgame_ml-1.0.0/endgame/nlp/pseudo_label.py +191 -0
- endgame_ml-1.0.0/endgame/nlp/tokenizer.py +431 -0
- endgame_ml-1.0.0/endgame/nlp/transformers.py +339 -0
- endgame_ml-1.0.0/endgame/nlp/translation.py +652 -0
- endgame_ml-1.0.0/endgame/persistence/__init__.py +30 -0
- endgame_ml-1.0.0/endgame/persistence/_backends.py +244 -0
- endgame_ml-1.0.0/endgame/persistence/_core.py +125 -0
- endgame_ml-1.0.0/endgame/persistence/_detection.py +108 -0
- endgame_ml-1.0.0/endgame/persistence/_metadata.py +200 -0
- endgame_ml-1.0.0/endgame/persistence/_onnx.py +596 -0
- endgame_ml-1.0.0/endgame/persistence/_server.py +302 -0
- endgame_ml-1.0.0/endgame/preprocessing/__init__.py +212 -0
- endgame_ml-1.0.0/endgame/preprocessing/aggregation.py +470 -0
- endgame_ml-1.0.0/endgame/preprocessing/dae.py +590 -0
- endgame_ml-1.0.0/endgame/preprocessing/discretize.py +487 -0
- endgame_ml-1.0.0/endgame/preprocessing/encoding.py +699 -0
- endgame_ml-1.0.0/endgame/preprocessing/imbalance.py +1487 -0
- endgame_ml-1.0.0/endgame/preprocessing/imbalance_generative.py +1001 -0
- endgame_ml-1.0.0/endgame/preprocessing/imbalance_geometric.py +744 -0
- endgame_ml-1.0.0/endgame/preprocessing/imbalance_llm.py +314 -0
- endgame_ml-1.0.0/endgame/preprocessing/imputation.py +1020 -0
- endgame_ml-1.0.0/endgame/preprocessing/noise_detection.py +520 -0
- endgame_ml-1.0.0/endgame/preprocessing/selection.py +415 -0
- endgame_ml-1.0.0/endgame/preprocessing/target_transform.py +666 -0
- endgame_ml-1.0.0/endgame/preprocessing/temporal.py +434 -0
- endgame_ml-1.0.0/endgame/py.typed +0 -0
- endgame_ml-1.0.0/endgame/quick/__init__.py +44 -0
- endgame_ml-1.0.0/endgame/quick/api.py +769 -0
- endgame_ml-1.0.0/endgame/semi_supervised/__init__.py +11 -0
- endgame_ml-1.0.0/endgame/semi_supervised/self_training.py +836 -0
- endgame_ml-1.0.0/endgame/signal/__init__.py +245 -0
- endgame_ml-1.0.0/endgame/signal/base.py +353 -0
- endgame_ml-1.0.0/endgame/signal/complexity.py +750 -0
- endgame_ml-1.0.0/endgame/signal/connectivity.py +766 -0
- endgame_ml-1.0.0/endgame/signal/entropy.py +715 -0
- endgame_ml-1.0.0/endgame/signal/features.py +761 -0
- endgame_ml-1.0.0/endgame/signal/filtering.py +628 -0
- endgame_ml-1.0.0/endgame/signal/spatial.py +683 -0
- endgame_ml-1.0.0/endgame/signal/spectral.py +988 -0
- endgame_ml-1.0.0/endgame/signal/wavelets.py +784 -0
- endgame_ml-1.0.0/endgame/timeseries/__init__.py +166 -0
- endgame_ml-1.0.0/endgame/timeseries/base.py +612 -0
- endgame_ml-1.0.0/endgame/timeseries/baselines.py +1193 -0
- endgame_ml-1.0.0/endgame/timeseries/features.py +573 -0
- endgame_ml-1.0.0/endgame/timeseries/neural.py +816 -0
- endgame_ml-1.0.0/endgame/timeseries/rocket.py +1033 -0
- endgame_ml-1.0.0/endgame/timeseries/statistical.py +684 -0
- endgame_ml-1.0.0/endgame/timeseries/validation.py +532 -0
- endgame_ml-1.0.0/endgame/tracking/__init__.py +65 -0
- endgame_ml-1.0.0/endgame/tracking/base.py +112 -0
- endgame_ml-1.0.0/endgame/tracking/console_logger.py +150 -0
- endgame_ml-1.0.0/endgame/tracking/mlflow_logger.py +173 -0
- endgame_ml-1.0.0/endgame/tune/__init__.py +17 -0
- endgame_ml-1.0.0/endgame/tune/optuna.py +349 -0
- endgame_ml-1.0.0/endgame/tune/spaces.py +240 -0
- endgame_ml-1.0.0/endgame/utils/__init__.py +48 -0
- endgame_ml-1.0.0/endgame/utils/metrics.py +315 -0
- endgame_ml-1.0.0/endgame/utils/reproducibility.py +214 -0
- endgame_ml-1.0.0/endgame/utils/sharpe.py +716 -0
- endgame_ml-1.0.0/endgame/utils/submission.py +316 -0
- endgame_ml-1.0.0/endgame/validation/__init__.py +34 -0
- endgame_ml-1.0.0/endgame/validation/adversarial.py +357 -0
- endgame_ml-1.0.0/endgame/validation/cv_utils.py +375 -0
- endgame_ml-1.0.0/endgame/validation/nested_cv.py +301 -0
- endgame_ml-1.0.0/endgame/validation/splitters.py +916 -0
- endgame_ml-1.0.0/endgame/vision/__init__.py +16 -0
- endgame_ml-1.0.0/endgame/vision/augmentation.py +515 -0
- endgame_ml-1.0.0/endgame/vision/backbone.py +249 -0
- endgame_ml-1.0.0/endgame/vision/segmentation.py +539 -0
- endgame_ml-1.0.0/endgame/vision/tta.py +225 -0
- endgame_ml-1.0.0/endgame/vision/wbf.py +308 -0
- endgame_ml-1.0.0/endgame/visualization/__init__.py +133 -0
- endgame_ml-1.0.0/endgame/visualization/_base.py +249 -0
- endgame_ml-1.0.0/endgame/visualization/_html_template.py +459 -0
- endgame_ml-1.0.0/endgame/visualization/_palettes.py +213 -0
- endgame_ml-1.0.0/endgame/visualization/_report_template.py +248 -0
- endgame_ml-1.0.0/endgame/visualization/arc_diagram.py +237 -0
- endgame_ml-1.0.0/endgame/visualization/bar_chart.py +323 -0
- endgame_ml-1.0.0/endgame/visualization/box_violin.py +388 -0
- endgame_ml-1.0.0/endgame/visualization/bump_chart.py +224 -0
- endgame_ml-1.0.0/endgame/visualization/calibration_plot.py +376 -0
- endgame_ml-1.0.0/endgame/visualization/chord_diagram.py +241 -0
- endgame_ml-1.0.0/endgame/visualization/classification_report.py +865 -0
- endgame_ml-1.0.0/endgame/visualization/confusion_matrix.py +306 -0
- endgame_ml-1.0.0/endgame/visualization/donut_chart.py +207 -0
- endgame_ml-1.0.0/endgame/visualization/dot_matrix.py +171 -0
- endgame_ml-1.0.0/endgame/visualization/dumbbell_chart.py +235 -0
- endgame_ml-1.0.0/endgame/visualization/error_bars.py +222 -0
- endgame_ml-1.0.0/endgame/visualization/flow_chart.py +278 -0
- endgame_ml-1.0.0/endgame/visualization/funnel_chart.py +194 -0
- endgame_ml-1.0.0/endgame/visualization/gauge_chart.py +275 -0
- endgame_ml-1.0.0/endgame/visualization/heatmap.py +281 -0
- endgame_ml-1.0.0/endgame/visualization/histogram.py +331 -0
- endgame_ml-1.0.0/endgame/visualization/lift_chart.py +287 -0
- endgame_ml-1.0.0/endgame/visualization/line_chart.py +322 -0
- endgame_ml-1.0.0/endgame/visualization/lollipop_chart.py +258 -0
- endgame_ml-1.0.0/endgame/visualization/network_diagram.py +575 -0
- endgame_ml-1.0.0/endgame/visualization/nightingale_rose.py +220 -0
- endgame_ml-1.0.0/endgame/visualization/parallel_coordinates.py +269 -0
- endgame_ml-1.0.0/endgame/visualization/pdp_plot.py +551 -0
- endgame_ml-1.0.0/endgame/visualization/pr_curve.py +295 -0
- endgame_ml-1.0.0/endgame/visualization/radar_chart.py +209 -0
- endgame_ml-1.0.0/endgame/visualization/radial_bar.py +193 -0
- endgame_ml-1.0.0/endgame/visualization/regression_report.py +621 -0
- endgame_ml-1.0.0/endgame/visualization/ridgeline_plot.py +311 -0
- endgame_ml-1.0.0/endgame/visualization/roc_curve.py +307 -0
- endgame_ml-1.0.0/endgame/visualization/sankey.py +208 -0
- endgame_ml-1.0.0/endgame/visualization/scatterplot.py +304 -0
- endgame_ml-1.0.0/endgame/visualization/spiral_plot.py +212 -0
- endgame_ml-1.0.0/endgame/visualization/stream_graph.py +231 -0
- endgame_ml-1.0.0/endgame/visualization/tree_visualizer.py +1542 -0
- endgame_ml-1.0.0/endgame/visualization/treemap.py +392 -0
- endgame_ml-1.0.0/endgame/visualization/venn.py +162 -0
- endgame_ml-1.0.0/endgame/visualization/waterfall_chart.py +329 -0
- endgame_ml-1.0.0/endgame/visualization/word_cloud.py +199 -0
- endgame_ml-1.0.0/examples/00_hello_endgame.ipynb +189 -0
- endgame_ml-1.0.0/examples/01_quickstart.ipynb +184 -0
- endgame_ml-1.0.0/examples/02_interpretable_models.ipynb +331 -0
- endgame_ml-1.0.0/examples/03_automl.ipynb +474 -0
- endgame_ml-1.0.0/examples/04_ensemble_calibration.ipynb +397 -0
- endgame_ml-1.0.0/examples/05_mcp_walkthrough.ipynb +669 -0
- endgame_ml-1.0.0/examples/06_signal_timeseries.ipynb +1009 -0
- endgame_ml-1.0.0/examples/07_vision.ipynb +311 -0
- endgame_ml-1.0.0/examples/08_nlp.ipynb +300 -0
- endgame_ml-1.0.0/examples/09_multimodal.ipynb +466 -0
- endgame_ml-1.0.0/examples/german_credit_lgbm.egm +0 -0
- endgame_ml-1.0.0/examples/quickstart_report.html +882 -0
- endgame_ml-1.0.0/pyproject.toml +223 -0
- endgame_ml-1.0.0/tests/__init__.py +1 -0
- endgame_ml-1.0.0/tests/test_adtree.py +478 -0
- endgame_ml-1.0.0/tests/test_anomaly.py +370 -0
- endgame_ml-1.0.0/tests/test_audio.py +187 -0
- endgame_ml-1.0.0/tests/test_automl.py +2621 -0
- endgame_ml-1.0.0/tests/test_bayesian.py +694 -0
- endgame_ml-1.0.0/tests/test_benchmark.py +570 -0
- endgame_ml-1.0.0/tests/test_c50.py +319 -0
- endgame_ml-1.0.0/tests/test_clustering.py +599 -0
- endgame_ml-1.0.0/tests/test_core.py +163 -0
- endgame_ml-1.0.0/tests/test_cpcv.py +358 -0
- endgame_ml-1.0.0/tests/test_cqr.py +348 -0
- endgame_ml-1.0.0/tests/test_dimensionality_reduction.py +543 -0
- endgame_ml-1.0.0/tests/test_distillation.py +134 -0
- endgame_ml-1.0.0/tests/test_ensemble.py +590 -0
- endgame_ml-1.0.0/tests/test_explain.py +221 -0
- endgame_ml-1.0.0/tests/test_fairness.py +223 -0
- endgame_ml-1.0.0/tests/test_feature_selection.py +736 -0
- endgame_ml-1.0.0/tests/test_furia.py +373 -0
- endgame_ml-1.0.0/tests/test_gandalf.py +419 -0
- endgame_ml-1.0.0/tests/test_grande.py +566 -0
- endgame_ml-1.0.0/tests/test_imbalance.py +663 -0
- endgame_ml-1.0.0/tests/test_imbalance_generative.py +272 -0
- endgame_ml-1.0.0/tests/test_imbalance_geometric.py +324 -0
- endgame_ml-1.0.0/tests/test_imbalance_llm.py +126 -0
- endgame_ml-1.0.0/tests/test_imputation.py +504 -0
- endgame_ml-1.0.0/tests/test_interpretable.py +547 -0
- endgame_ml-1.0.0/tests/test_kaggle.py +423 -0
- endgame_ml-1.0.0/tests/test_mcp.py +568 -0
- endgame_ml-1.0.0/tests/test_models.py +151 -0
- endgame_ml-1.0.0/tests/test_multi_output.py +547 -0
- endgame_ml-1.0.0/tests/test_nested_cv.py +105 -0
- endgame_ml-1.0.0/tests/test_ngboost.py +505 -0
- endgame_ml-1.0.0/tests/test_nlp.py +168 -0
- endgame_ml-1.0.0/tests/test_nlp_translation.py +308 -0
- endgame_ml-1.0.0/tests/test_noise_detection.py +119 -0
- endgame_ml-1.0.0/tests/test_oblique_forest.py +784 -0
- endgame_ml-1.0.0/tests/test_persistence.py +368 -0
- endgame_ml-1.0.0/tests/test_preprocessing.py +185 -0
- endgame_ml-1.0.0/tests/test_quantile_forest.py +469 -0
- endgame_ml-1.0.0/tests/test_quick.py +251 -0
- endgame_ml-1.0.0/tests/test_realmlp.py +680 -0
- endgame_ml-1.0.0/tests/test_semi_supervised.py +589 -0
- endgame_ml-1.0.0/tests/test_sharpe.py +463 -0
- endgame_ml-1.0.0/tests/test_signal.py +824 -0
- endgame_ml-1.0.0/tests/test_symbolic.py +481 -0
- endgame_ml-1.0.0/tests/test_tabdpt.py +388 -0
- endgame_ml-1.0.0/tests/test_tabm.py +635 -0
- endgame_ml-1.0.0/tests/test_tabpfn_25.py +430 -0
- endgame_ml-1.0.0/tests/test_tabpfn_v2.py +395 -0
- endgame_ml-1.0.0/tests/test_tabr.py +537 -0
- endgame_ml-1.0.0/tests/test_target_transform.py +563 -0
- endgame_ml-1.0.0/tests/test_timeseries.py +822 -0
- endgame_ml-1.0.0/tests/test_tracking.py +377 -0
- endgame_ml-1.0.0/tests/test_tree_visualization.py +285 -0
- endgame_ml-1.0.0/tests/test_tune.py +112 -0
- endgame_ml-1.0.0/tests/test_utils.py +211 -0
- endgame_ml-1.0.0/tests/test_validation.py +146 -0
- endgame_ml-1.0.0/tests/test_vision.py +171 -0
- endgame_ml-1.0.0/tests/test_visualizations.py +1921 -0
- 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,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).
|