julearn 0.3.5.dev21__tar.gz → 0.3.5.dev28__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.
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/PKG-INFO +2 -2
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/README.md +1 -1
- julearn-0.3.5.dev28/docs/changes/newsfragments/279.doc +1 -0
- julearn-0.3.5.dev28/docs/changes/newsfragments/282.doc +1 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/joblib.rst +32 -32
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/_version.py +2 -2
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/base/column_types.py +1 -1
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/tests/test_prepare.py +1 -1
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn.egg-info/PKG-INFO +2 -2
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn.egg-info/SOURCES.txt +2 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/ISSUE_TEMPLATE/documentation_request.yaml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/workflows/check-stale.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/workflows/ci-docs.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/workflows/ci.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/workflows/docs-preview.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/workflows/docs.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/workflows/lint.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/workflows/pypi.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.gitignore +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.pre-commit-config.yaml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/AUTHORS.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/LICENSE.md +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/codecov.yml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/Makefile +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/_static/css/custom.css +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/_static/js/custom.js +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/_templates/class.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/_templates/function.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/_templates/function_warning.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/_templates/versions.html +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/base.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/config.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/index.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/inspect.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/main.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/model_selection.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/models.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/pipeline.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/prepare.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/scoring.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/stats.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/transformers.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/utils.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/api/viz.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/available_pipeline_steps.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/changes/contributors.inc +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/changes/newsfragments/.gitignore +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/changes/newsfragments/277.enh +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/changes/newsfragments/278.doc +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/changes/newsfragments/283.doc +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/conf.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/configuration.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/contributing.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/examples.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/faq.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/getting_started.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/corrected_ttest.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/final_estimator.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/iris_X.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/iris_df.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/iris_y.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/joblib_htcondor/condor_q.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/joblib_htcondor/ui_main.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/joblib_htcondor/ui_open.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/joblib_htcondor/ui_stacked.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo_calm.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo_confbias.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo_cv.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo_generalization.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo_it.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo_ml.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/julearn_logo_mlit.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/multiple_scorers_run_cv.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/plot_scores.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/scores_run_cv.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/scores_run_cv_splitter.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/images/scores_run_cv_train.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/index.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/links.inc +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/maintaining.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/redirect.html +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/CBPM.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/confound_removal.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/cross_validation_splitter.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/hyperparameter_tuning.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/index.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/model_inspect.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/stacked_models.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/target_transformers.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/sphinxext/gh_substitutions.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/what_really_need_know/cross_validation.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/what_really_need_know/data.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/what_really_need_know/index.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/what_really_need_know/model_comparison.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/what_really_need_know/model_evaluation.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/what_really_need_know/pipeline.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/whats_new.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/plot_cm_acc_multiclass.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/plot_example_regression.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/plot_stratified_kfold_reg.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/run_combine_pandas.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/run_grouped_cv.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/run_simple_binary_classification.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/01_model_comparison/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/01_model_comparison/plot_simple_model_comparison.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/plot_groupcv_inspect_svm.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/plot_inspect_random_forest.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/plot_preprocess.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/run_binary_inspect_folds.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_apply_to_target.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_example_pca_featsets.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_hyperparameter_multiple_grids.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_hyperparameter_tuning.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_hyperparameter_tuning_bayessearch.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_stacked_models.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/04_confounds/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/04_confounds/plot_confound_removal_classification.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/04_confounds/run_return_confounds.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/05_customization/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/05_customization/run_custom_scorers_regression.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_cbpm_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_confound_removal_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_cv_splitters_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_data_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_hyperparameters_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_model_comparison_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_model_evaluation_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_model_inspection_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_pipeline_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_stacked_models_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/99_docs/run_target_transformer_docs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/README.rst +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/XX_disabled/dis_run_n_jobs.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/XX_disabled/dis_run_target_confound_removal.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/ignore_words.txt +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/api.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/base/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/base/estimators.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/base/tests/test_base_estimators.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/base/tests/test_column_types.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/config.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/conftest.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/external/optuna_searchcv.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/_cv.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/_pipeline.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/_preprocess.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/inspector.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/tests/test_cv.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/tests/test_inspector.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/tests/test_pipeline.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/inspect/tests/test_preprocess.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/_optuna_searcher.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/_skopt_searcher.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/available_searchers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/continuous_stratified_kfold.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/final_model_cv.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/stratified_bootstrap.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/tests/test_available_searchers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/tests/test_continous_stratified_kfold.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/tests/test_final_model_cv.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/tests/test_optuna_searcher.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/tests/test_skopt_searcher.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/tests/test_stratified_bootstrap.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/model_selection/utils.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/models/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/models/available_models.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/models/dynamic.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/models/tests/test_available_models.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/models/tests/test_dynamic.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/models/tests/test_models.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/merger.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/pipeline_creator.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/target_pipeline.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/target_pipeline_creator.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/tests/test_merger.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/tests/test_pipeline_creator.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/tests/test_target_pipeline.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/pipeline/tests/test_target_pipeline_creator.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/prepare.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/scoring/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/scoring/available_scorers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/scoring/metrics.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/scoring/tests/test_available_scorers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/scoring/tests/test_metrics.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/stats/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/stats/corrected_ttest.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/stats/tests/test_corrected_ttest.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/tests/test_api.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/tests/test_config.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/available_transformers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/cbpm.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/confound_remover.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/change_column_types.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/drop_columns.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/filter_columns.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/set_column_types.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/tests/test_change_column_types.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/tests/test_drop_columns.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/tests/test_filter_columns.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/dataframe/tests/test_set_column_types.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/ju_column_transformer.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/available_target_transformers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/ju_target_transformer.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/ju_transformed_target_model.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/target_confound_remover.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/tests/test_available_target_transformers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/tests/test_ju_target_transformer.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/tests/test_ju_transformed_target_model.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/target/tests/test_target_confound_remover.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/tests/test_available_transformers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/tests/test_cbpm.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/tests/test_confounds.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/transformers/tests/test_jucolumntransformers.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/_cv.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/checks.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/logging.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/testing.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/tests/test_logging.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/tests/test_version.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/typing.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/utils/versions.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/viz/__init__.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/viz/_scores.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn/viz/res/julearn_logo_generalization.png +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn.egg-info/dependency_links.txt +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn.egg-info/requires.txt +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/julearn.egg-info/top_level.txt +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/pyproject.toml +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/setup.cfg +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/setup.py +0 -0
- {julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: julearn
|
|
3
|
-
Version: 0.3.5.
|
|
3
|
+
Version: 0.3.5.dev28
|
|
4
4
|
Summary: Juelich Machine Learning Library
|
|
5
5
|
Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Sami Hamdan <s.hamdan@fz-juelich.de>
|
|
6
6
|
Maintainer-email: Sami Hamdan <s.hamdan@fz-juelich.de>
|
|
@@ -115,6 +115,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
115
115
|
|
|
116
116
|
If you use julearn in a scientific publication, please use the following reference
|
|
117
117
|
|
|
118
|
-
> Hamdan,
|
|
118
|
+
> Sami Hamdan,Shammi More,Leonard Sasse,Vera Komeyer,Kaustubh R. Patil,Federico Raimondo,for the Alzheimer’s Disease Neuroimaging Initiative,Julearn: an easy-to-use library for leakage-free evaluation and inspection of ML models,Gigabyte,2024 https://doi.org/10.46471/gigabyte.113
|
|
119
119
|
|
|
120
120
|
Since julearn is also heavily reliant on scikit-learn, please also cite them: https://scikit-learn.org/stable/about.html#citing-scikit-learn
|
|
@@ -55,6 +55,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
55
55
|
|
|
56
56
|
If you use julearn in a scientific publication, please use the following reference
|
|
57
57
|
|
|
58
|
-
> Hamdan,
|
|
58
|
+
> Sami Hamdan,Shammi More,Leonard Sasse,Vera Komeyer,Kaustubh R. Patil,Federico Raimondo,for the Alzheimer’s Disease Neuroimaging Initiative,Julearn: an easy-to-use library for leakage-free evaluation and inspection of ML models,Gigabyte,2024 https://doi.org/10.46471/gigabyte.113
|
|
59
59
|
|
|
60
60
|
Since julearn is also heavily reliant on scikit-learn, please also cite them: https://scikit-learn.org/stable/about.html#citing-scikit-learn
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Update citation in README by `Synchon Mandal`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Update joblib usage docs by `Synchon Mandal`_
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Parallelizing julearn with Joblib
|
|
7
7
|
=================================
|
|
8
8
|
|
|
9
|
-
.. warning::
|
|
9
|
+
.. warning::
|
|
10
10
|
Make sure you are using the latest version of ``julearn``, as we are
|
|
11
11
|
actively developing and fine-tuning these packages to improve performance.
|
|
12
12
|
Older versions of ``julearn`` might have a huge computational impact when used
|
|
@@ -26,7 +26,7 @@ case, you can parallelize the computation of the different folds, as the
|
|
|
26
26
|
training and testing of each fold are independent from the other folds.
|
|
27
27
|
|
|
28
28
|
Mostly all modern computers have multiple processors or *cores*, which allows
|
|
29
|
-
to run multiple tasks at the same time. If you are familiar, you might
|
|
29
|
+
to run multiple tasks at the same time. If you are familiar, you might
|
|
30
30
|
have noticed that scikit-learn already has a parallelization mechanism using
|
|
31
31
|
the ``n_jobs`` parameter. ``julearn`` is actually using scikit-learn, so it is
|
|
32
32
|
possible to use the ``n_jobs`` parameter. If you want to read more about how
|
|
@@ -38,9 +38,9 @@ number of jobs to run in parallel. If you set it to ``-1``, it will use all the
|
|
|
38
38
|
processors available, which is usually the best option for most cases.
|
|
39
39
|
|
|
40
40
|
One of the explicit ways to control parallelization in scikit-learn and
|
|
41
|
-
``julearn`` is to use a joblib's
|
|
41
|
+
``julearn`` is to use a joblib's
|
|
42
42
|
:external+joblib:class:`~joblib.parallel_config` context manager. The following
|
|
43
|
-
snippet will run the code in parallel using the ``"loky"`` backend
|
|
43
|
+
snippet will run the code in parallel using the ``"loky"`` backend
|
|
44
44
|
with 4 processors.
|
|
45
45
|
|
|
46
46
|
.. code-block:: python
|
|
@@ -95,12 +95,12 @@ Massively parallelizing ``julearn`` with Joblib and HTcondor
|
|
|
95
95
|
Sometimes even with multiple processors, the computation can take a long time.
|
|
96
96
|
As an example, assuming a model that takes 1 hour to fit, a 5 times 5-fold
|
|
97
97
|
cross-validation takes 25 hours of computation. If you add a grid search to
|
|
98
|
-
find the best hyperparameter using another 5-fold CV, and this grid has
|
|
99
|
-
10 hyperparameters sets to test, this adds another 1250 hours of computation.
|
|
100
|
-
This is a total of 1275 hours. In technical terms, this are 1275 core-hours,
|
|
98
|
+
find the best hyperparameter using another 5-fold CV, and this grid has
|
|
99
|
+
10 hyperparameters sets to test, this adds another 1250 hours of computation.
|
|
100
|
+
This is a total of 1275 hours. In technical terms, this are 1275 core-hours,
|
|
101
101
|
which is a unit of processing time in a single core. With 4 processors, this is
|
|
102
102
|
318 hours, which is almost 13 days of computation.
|
|
103
|
-
If the model takes 10 hours to fit, this goes to 12750 core-hours, which is
|
|
103
|
+
If the model takes 10 hours to fit, this goes to 12750 core-hours, which is
|
|
104
104
|
almost 4.5 months with 4 processors.
|
|
105
105
|
|
|
106
106
|
As you can see in the following table, sometimes we might need to use
|
|
@@ -119,7 +119,7 @@ hundreds of processors to obtain results within reasonable time spans.
|
|
|
119
119
|
|
|
120
120
|
|
|
121
121
|
At the `INM-7`_, were we have mainly developed this library, we have a
|
|
122
|
-
computational cluster that uses HTCondor. To overcome this limitation of
|
|
122
|
+
computational cluster that uses HTCondor. To overcome this limitation of
|
|
123
123
|
``julearn`` and `joblib`_, we have created the `joblib-htcondor`_ backend. This
|
|
124
124
|
allows joblib to submit each task as a job in an HTCondor queue, allowing to
|
|
125
125
|
massively parallelize computation.
|
|
@@ -144,7 +144,7 @@ the following example:
|
|
|
144
144
|
backend="htcondor",
|
|
145
145
|
n_jobs=-1,
|
|
146
146
|
request_cpus=1,
|
|
147
|
-
|
|
147
|
+
request_memory="4Gb",
|
|
148
148
|
):
|
|
149
149
|
scores = run_cross_validation(
|
|
150
150
|
X=X,
|
|
@@ -159,7 +159,7 @@ the following example:
|
|
|
159
159
|
|
|
160
160
|
This will submit each task to the HTCondor queue, and the computation will be
|
|
161
161
|
done in parallel. The ``request_cpus`` parameter specifies the number of CPUs
|
|
162
|
-
to request for each job, and the ``
|
|
162
|
+
to request for each job, and the ``request_memory`` parameter specifies the
|
|
163
163
|
amount of memory to request.
|
|
164
164
|
|
|
165
165
|
|
|
@@ -203,7 +203,7 @@ For example, at the INM-7, we can have a shared directory at
|
|
|
203
203
|
backend="htcondor",
|
|
204
204
|
n_jobs=-1,
|
|
205
205
|
request_cpus=1,
|
|
206
|
-
|
|
206
|
+
request_memory="4Gb",
|
|
207
207
|
shared_data_dir="/data/project/supercool_research",
|
|
208
208
|
):
|
|
209
209
|
scores = run_cross_validation(
|
|
@@ -221,11 +221,11 @@ Pool
|
|
|
221
221
|
~~~~
|
|
222
222
|
|
|
223
223
|
As in any computational cluster, most probably you will be required to submit
|
|
224
|
-
a job to a queue, which will then run the :func:`.run_cross_validation`
|
|
224
|
+
a job to a queue, which will then run the :func:`.run_cross_validation`
|
|
225
225
|
function that will then submit more jobs to the queue. This is not a problem,
|
|
226
226
|
but it needs to be possible to submit jobs from within a job. Check with your
|
|
227
|
-
cluster's admin team and ask for further instructions. Most probably you'll
|
|
228
|
-
also need to specify to which
|
|
227
|
+
cluster's admin team and ask for further instructions. Most probably you'll
|
|
228
|
+
also need to specify to which ``pool`` the jobs will be submitted. This can be
|
|
229
229
|
done with the ``pool`` parameter. For us, this is ``head2.htc.inm7.de``:
|
|
230
230
|
|
|
231
231
|
|
|
@@ -244,7 +244,7 @@ done with the ``pool`` parameter. For us, this is ``head2.htc.inm7.de``:
|
|
|
244
244
|
backend="htcondor",
|
|
245
245
|
n_jobs=-1,
|
|
246
246
|
request_cpus=1,
|
|
247
|
-
|
|
247
|
+
request_memory="4Gb",
|
|
248
248
|
shared_data_dir="/data/project/supercool_research",
|
|
249
249
|
pool="head2.htc.inm7.de",
|
|
250
250
|
):
|
|
@@ -277,7 +277,7 @@ Let's say we have the following pipeline:
|
|
|
277
277
|
This is indeed a pipeline with a hyperparameter search. A 5-fold Grid Search
|
|
278
278
|
approach will evaluate 49 different models, 5 times each. And this will happen
|
|
279
279
|
for every outer fold. So if we use `joblib-htcondor`_ as in the previous
|
|
280
|
-
example, each task could also benefit from parallelism, by submitting each
|
|
280
|
+
example, each task could also benefit from parallelism, by submitting each
|
|
281
281
|
inner fold of each hyperparameter combination as a separate job. This is
|
|
282
282
|
called recursive parallelization and we can instruct the backend to allow this
|
|
283
283
|
by setting the ``max_recursion_level`` parameter to ``1``:
|
|
@@ -297,7 +297,7 @@ by setting the ``max_recursion_level`` parameter to ``1``:
|
|
|
297
297
|
backend="htcondor",
|
|
298
298
|
n_jobs=-1,
|
|
299
299
|
request_cpus=1,
|
|
300
|
-
|
|
300
|
+
request_memory="4Gb",
|
|
301
301
|
shared_data_dir="/data/project/supercool_research",
|
|
302
302
|
pool="head2.htc.inm7.de",
|
|
303
303
|
max_recursion_level=1,
|
|
@@ -312,7 +312,7 @@ by setting the ``max_recursion_level`` parameter to ``1``:
|
|
|
312
312
|
cv=cv,
|
|
313
313
|
)
|
|
314
314
|
|
|
315
|
-
.. warning::
|
|
315
|
+
.. warning::
|
|
316
316
|
`scikit-learn`_ parallelizes many algorithms internally by default. So if
|
|
317
317
|
you set the ``max_recursion_level`` to something different than 0, you
|
|
318
318
|
might end-up with thousands of thousands of jobs. Please READ THE WHOLE
|
|
@@ -321,7 +321,7 @@ by setting the ``max_recursion_level`` parameter to ``1``:
|
|
|
321
321
|
|
|
322
322
|
|
|
323
323
|
But beware! This will submit 245 (5 times 49) jobs for each outer fold. For a
|
|
324
|
-
5 times 5-fold CV, this means 6125 jobs. This can be a lot of jobs, but not
|
|
324
|
+
5 times 5-fold CV, this means 6125 jobs. This can be a lot of jobs, but not
|
|
325
325
|
for HTCondor. It is though an issue with the data transfer. If each job requires
|
|
326
326
|
500 MB of data, this means 3.1 TB of data transfer, which requires 3.1 TB of
|
|
327
327
|
disk space in the shared directory.
|
|
@@ -365,7 +365,7 @@ the inner folds, we can do the following:
|
|
|
365
365
|
backend="htcondor",
|
|
366
366
|
n_jobs=-1,
|
|
367
367
|
request_cpus=1,
|
|
368
|
-
|
|
368
|
+
request_memory="4Gb",
|
|
369
369
|
shared_data_dir="/data/project/supercool_research",
|
|
370
370
|
pool="head2.htc.inm7.de",
|
|
371
371
|
max_recursion_level=1,
|
|
@@ -402,7 +402,7 @@ Scikit-learn parallelization
|
|
|
402
402
|
The rule is quite simple, if it has an ``n_jobs`` parameter, it can be
|
|
403
403
|
parallelized using joblib. This is the case for most of the scikit-learn's
|
|
404
404
|
algorithms. While the developers of scikit-learn are doing a great job and
|
|
405
|
-
currently working on documenting how this is done for each algorithm, this is
|
|
405
|
+
currently working on documenting how this is done for each algorithm, this is
|
|
406
406
|
still not that evident.
|
|
407
407
|
|
|
408
408
|
Most importantly, the default is always ``n_jobs=-1``. This means that it will
|
|
@@ -421,20 +421,20 @@ overhead.
|
|
|
421
421
|
The following is a non-exhaustive list of scikit-learn's algorithms that might
|
|
422
422
|
make sense to set the ``n_jobs`` parameter to ``-1`` or leave as default:
|
|
423
423
|
|
|
424
|
-
* :external:class:`~sklearn.ensemble.StackingClassifier` and
|
|
424
|
+
* :external:class:`~sklearn.ensemble.StackingClassifier` and
|
|
425
425
|
:external:class:`~sklearn.ensemble.StackingRegressor`
|
|
426
426
|
|
|
427
427
|
This model will first fit the base estimators in parallel for the whole data.
|
|
428
|
-
Then it will fit and score the base estimators in parallel for each of the
|
|
428
|
+
Then it will fit and score the base estimators in parallel for each of the
|
|
429
429
|
internal CV folds, to generate the meta-features.
|
|
430
430
|
|
|
431
|
-
* :external:class:`~sklearn.ensemble.VotingClassifier` and
|
|
431
|
+
* :external:class:`~sklearn.ensemble.VotingClassifier` and
|
|
432
432
|
:external:class:`~sklearn.ensemble.VotingRegressor`
|
|
433
433
|
|
|
434
434
|
Similar to the stacking models.
|
|
435
435
|
|
|
436
436
|
* Hyperparameter searchers
|
|
437
|
-
|
|
437
|
+
|
|
438
438
|
Most of the hyperparameter searchers in scikit-learn will parallelize the
|
|
439
439
|
search for the best hyperparameters. Either at the internal CV level or at
|
|
440
440
|
both the hyperparameter search space and the internal CV level, depending
|
|
@@ -468,7 +468,7 @@ will be used by the UI.
|
|
|
468
468
|
backend="htcondor",
|
|
469
469
|
n_jobs=-1,
|
|
470
470
|
request_cpus=1,
|
|
471
|
-
|
|
471
|
+
request_memory="4Gb",
|
|
472
472
|
shared_data_dir="/data/project/supercool_research",
|
|
473
473
|
pool="head2.htc.inm7.de",
|
|
474
474
|
max_recursion_level=1,
|
|
@@ -493,7 +493,7 @@ the ``condor_q`` command:
|
|
|
493
493
|
:alt: condor_q
|
|
494
494
|
|
|
495
495
|
|
|
496
|
-
The first row is the original job that is running
|
|
496
|
+
The first row is the original job that is running ``run_cross_validation``. The
|
|
497
497
|
rest are joblib-htcondor jobs.
|
|
498
498
|
|
|
499
499
|
Now this is difficult to understand, so we can use the `joblib-htcondor`_ UI,
|
|
@@ -522,7 +522,7 @@ and full final model fitting, and the second level is a Grid Search
|
|
|
522
522
|
(110 hyperparameter combinations, 5-fold CV). The throttle is set to 26 for
|
|
523
523
|
the outer fold and 60 for the inner folds.
|
|
524
524
|
|
|
525
|
-
On the bottom, we an see that it has been running for almost 4 days and
|
|
525
|
+
On the bottom, we an see that it has been running for almost 4 days and
|
|
526
526
|
we are using 10% of the 1.3 Tb of shared disk space.
|
|
527
527
|
|
|
528
528
|
|
|
@@ -559,6 +559,6 @@ This is a stacked model with a hyperparameter search created as follows:
|
|
|
559
559
|
)
|
|
560
560
|
|
|
561
561
|
|
|
562
|
-
As you can see, even the
|
|
563
|
-
:external:class:`~sklearn.linear_model.LogisticRegression` model has an
|
|
564
|
-
``n_jobs`` parameter that must be set to ``1``!
|
|
562
|
+
As you can see, even the
|
|
563
|
+
:external:class:`~sklearn.linear_model.LogisticRegression` model has an
|
|
564
|
+
``n_jobs`` parameter that must be set to ``1``!
|
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.3.5.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 3, 5, '
|
|
20
|
+
__version__ = version = '0.3.5.dev28'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 3, 5, 'dev28')
|
|
@@ -30,7 +30,7 @@ def change_column_type(column: str, new_type: str):
|
|
|
30
30
|
The new column name with the type changed.
|
|
31
31
|
|
|
32
32
|
"""
|
|
33
|
-
return "__:type:__".join(column.split("__:type:__")[0:1]
|
|
33
|
+
return "__:type:__".join([*column.split("__:type:__")[0:1], new_type])
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
def get_column_type(column):
|
|
@@ -240,7 +240,7 @@ def test_prepare_input_data_erors() -> None:
|
|
|
240
240
|
)
|
|
241
241
|
|
|
242
242
|
# Missing column in dataframe
|
|
243
|
-
X = columns[:5]
|
|
243
|
+
X = [*columns[:5], "wrong"]
|
|
244
244
|
y = columns[6]
|
|
245
245
|
groups = columns[7]
|
|
246
246
|
with pytest.raises(ValueError, match=r"missing: \['wrong'\]"):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: julearn
|
|
3
|
-
Version: 0.3.5.
|
|
3
|
+
Version: 0.3.5.dev28
|
|
4
4
|
Summary: Juelich Machine Learning Library
|
|
5
5
|
Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Sami Hamdan <s.hamdan@fz-juelich.de>
|
|
6
6
|
Maintainer-email: Sami Hamdan <s.hamdan@fz-juelich.de>
|
|
@@ -115,6 +115,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
115
115
|
|
|
116
116
|
If you use julearn in a scientific publication, please use the following reference
|
|
117
117
|
|
|
118
|
-
> Hamdan,
|
|
118
|
+
> Sami Hamdan,Shammi More,Leonard Sasse,Vera Komeyer,Kaustubh R. Patil,Federico Raimondo,for the Alzheimer’s Disease Neuroimaging Initiative,Julearn: an easy-to-use library for leakage-free evaluation and inspection of ML models,Gigabyte,2024 https://doi.org/10.46471/gigabyte.113
|
|
119
119
|
|
|
120
120
|
Since julearn is also heavily reliant on scikit-learn, please also cite them: https://scikit-learn.org/stable/about.html#citing-scikit-learn
|
|
@@ -56,6 +56,8 @@ docs/changes/contributors.inc
|
|
|
56
56
|
docs/changes/newsfragments/.gitignore
|
|
57
57
|
docs/changes/newsfragments/277.enh
|
|
58
58
|
docs/changes/newsfragments/278.doc
|
|
59
|
+
docs/changes/newsfragments/279.doc
|
|
60
|
+
docs/changes/newsfragments/282.doc
|
|
59
61
|
docs/changes/newsfragments/283.doc
|
|
60
62
|
docs/images/corrected_ttest.png
|
|
61
63
|
docs/images/final_estimator.png
|
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/.github/ISSUE_TEMPLATE/documentation_request.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/confound_removal.rst
RENAMED
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/hyperparameter_tuning.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/docs/selected_deeper_topics/target_transformers.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/plot_stratified_kfold_reg.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/00_starting/run_simple_binary_classification.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/plot_groupcv_inspect_svm.py
RENAMED
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/plot_inspect_random_forest.py
RENAMED
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/02_inspection/run_binary_inspect_folds.py
RENAMED
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_apply_to_target.py
RENAMED
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_example_pca_featsets.py
RENAMED
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_hyperparameter_tuning.py
RENAMED
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev21 → julearn-0.3.5.dev28}/examples/03_complex_models/run_stacked_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|