julearn 0.3.5.dev16__tar.gz → 0.3.5.dev25__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.dev16 → julearn-0.3.5.dev25}/PKG-INFO +5 -3
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/README.md +2 -1
- julearn-0.3.5.dev25/docs/changes/newsfragments/279.doc +1 -0
- julearn-0.3.5.dev25/docs/changes/newsfragments/283.doc +1 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/plot_stratified_kfold_reg.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/run_combine_pandas.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/run_grouped_cv.py +4 -4
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/02_inspection/plot_groupcv_inspect_svm.py +4 -4
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/run_hyperparameter_multiple_grids.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/run_hyperparameter_tuning.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_cv_splitters_docs.py +1 -1
- julearn-0.3.5.dev25/julearn/_version.py +21 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/base/column_types.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/base/estimators.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/conftest.py +5 -5
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/tests/test_preprocess.py +2 -2
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/pipeline_creator.py +2 -2
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/scoring/available_scorers.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/stats/corrected_ttest.py +2 -2
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/tests/test_prepare.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/ju_transformed_target_model.py +5 -5
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/target_confound_remover.py +1 -1
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn.egg-info/PKG-INFO +5 -3
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn.egg-info/SOURCES.txt +2 -0
- julearn-0.3.5.dev16/julearn/_version.py +0 -16
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/ISSUE_TEMPLATE/documentation_request.yaml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/workflows/check-stale.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/workflows/ci-docs.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/workflows/ci.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/workflows/docs-preview.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/workflows/docs.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/workflows/lint.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.github/workflows/pypi.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.gitignore +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.pre-commit-config.yaml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/AUTHORS.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/LICENSE.md +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/codecov.yml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/Makefile +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/_static/css/custom.css +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/_static/js/custom.js +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/_templates/class.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/_templates/function.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/_templates/function_warning.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/_templates/versions.html +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/base.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/config.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/index.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/inspect.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/main.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/model_selection.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/models.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/pipeline.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/prepare.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/scoring.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/stats.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/transformers.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/utils.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/api/viz.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/available_pipeline_steps.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/changes/contributors.inc +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/changes/newsfragments/.gitignore +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/changes/newsfragments/277.enh +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/changes/newsfragments/278.doc +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/conf.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/configuration.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/contributing.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/examples.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/faq.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/getting_started.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/corrected_ttest.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/final_estimator.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/iris_X.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/iris_df.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/iris_y.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/joblib_htcondor/condor_q.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/joblib_htcondor/ui_main.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/joblib_htcondor/ui_open.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/joblib_htcondor/ui_stacked.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo_calm.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo_confbias.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo_cv.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo_generalization.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo_it.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo_ml.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/julearn_logo_mlit.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/multiple_scorers_run_cv.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/plot_scores.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/scores_run_cv.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/scores_run_cv_splitter.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/images/scores_run_cv_train.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/index.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/links.inc +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/maintaining.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/redirect.html +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/CBPM.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/confound_removal.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/cross_validation_splitter.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/hyperparameter_tuning.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/index.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/joblib.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/model_inspect.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/stacked_models.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/selected_deeper_topics/target_transformers.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/sphinxext/gh_substitutions.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/what_really_need_know/cross_validation.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/what_really_need_know/data.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/what_really_need_know/index.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/what_really_need_know/model_comparison.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/what_really_need_know/model_evaluation.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/what_really_need_know/pipeline.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/docs/whats_new.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/plot_cm_acc_multiclass.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/plot_example_regression.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/run_simple_binary_classification.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/01_model_comparison/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/01_model_comparison/plot_simple_model_comparison.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/02_inspection/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/02_inspection/plot_inspect_random_forest.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/02_inspection/plot_preprocess.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/02_inspection/run_binary_inspect_folds.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/run_apply_to_target.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/run_example_pca_featsets.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/run_hyperparameter_tuning_bayessearch.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/run_stacked_models.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/04_confounds/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/04_confounds/plot_confound_removal_classification.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/04_confounds/run_return_confounds.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/05_customization/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/05_customization/run_custom_scorers_regression.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_cbpm_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_confound_removal_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_data_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_hyperparameters_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_model_comparison_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_model_evaluation_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_model_inspection_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_pipeline_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_stacked_models_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/99_docs/run_target_transformer_docs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/README.rst +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/XX_disabled/dis_run_n_jobs.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/XX_disabled/dis_run_target_confound_removal.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/ignore_words.txt +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/api.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/base/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/base/tests/test_base_estimators.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/base/tests/test_column_types.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/config.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/external/optuna_searchcv.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/_cv.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/_pipeline.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/_preprocess.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/inspector.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/tests/test_cv.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/tests/test_inspector.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/inspect/tests/test_pipeline.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/_optuna_searcher.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/_skopt_searcher.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/available_searchers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/continuous_stratified_kfold.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/final_model_cv.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/stratified_bootstrap.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/tests/test_available_searchers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/tests/test_continous_stratified_kfold.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/tests/test_final_model_cv.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/tests/test_optuna_searcher.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/tests/test_skopt_searcher.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/tests/test_stratified_bootstrap.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/model_selection/utils.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/models/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/models/available_models.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/models/dynamic.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/models/tests/test_available_models.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/models/tests/test_dynamic.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/models/tests/test_models.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/merger.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/target_pipeline.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/target_pipeline_creator.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/tests/test_merger.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/tests/test_pipeline_creator.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/tests/test_target_pipeline.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/pipeline/tests/test_target_pipeline_creator.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/prepare.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/scoring/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/scoring/metrics.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/scoring/tests/test_available_scorers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/scoring/tests/test_metrics.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/stats/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/stats/tests/test_corrected_ttest.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/tests/test_api.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/tests/test_config.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/available_transformers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/cbpm.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/confound_remover.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/change_column_types.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/drop_columns.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/filter_columns.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/set_column_types.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/tests/test_change_column_types.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/tests/test_drop_columns.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/tests/test_filter_columns.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/dataframe/tests/test_set_column_types.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/ju_column_transformer.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/available_target_transformers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/ju_target_transformer.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/tests/test_available_target_transformers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/tests/test_ju_target_transformer.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/tests/test_ju_transformed_target_model.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/tests/test_target_confound_remover.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/tests/test_available_transformers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/tests/test_cbpm.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/tests/test_confounds.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/tests/test_jucolumntransformers.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/_cv.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/checks.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/logging.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/testing.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/tests/test_logging.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/tests/test_version.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/typing.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/utils/versions.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/viz/__init__.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/viz/_scores.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/viz/res/julearn_logo_generalization.png +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn.egg-info/dependency_links.txt +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn.egg-info/requires.txt +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn.egg-info/top_level.txt +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/pyproject.toml +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/setup.cfg +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/setup.py +0 -0
- {julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: julearn
|
|
3
|
-
Version: 0.3.5.
|
|
3
|
+
Version: 0.3.5.dev25
|
|
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>
|
|
@@ -56,6 +56,7 @@ Requires-Dist: optuna<3.7,>=3.6.0; extra == "optuna"
|
|
|
56
56
|
Requires-Dist: optuna_integration<4.1,>=3.6.0; extra == "optuna"
|
|
57
57
|
Provides-Extra: all
|
|
58
58
|
Requires-Dist: julearn[optuna,skopt,viz]; extra == "all"
|
|
59
|
+
Dynamic: license-file
|
|
59
60
|
|
|
60
61
|
# julearn
|
|
61
62
|
|
|
@@ -67,6 +68,7 @@ Requires-Dist: julearn[optuna,skopt,viz]; extra == "all"
|
|
|
67
68
|

|
|
68
69
|
[](https://github.com/charliermarsh/ruff)
|
|
69
70
|
[](https://github.com/pre-commit/pre-commit)
|
|
71
|
+

|
|
70
72
|
|
|
71
73
|
## About
|
|
72
74
|
|
|
@@ -113,6 +115,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
113
115
|
|
|
114
116
|
If you use julearn in a scientific publication, please use the following reference
|
|
115
117
|
|
|
116
|
-
> 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
|
|
117
119
|
|
|
118
120
|
Since julearn is also heavily reliant on scikit-learn, please also cite them: https://scikit-learn.org/stable/about.html#citing-scikit-learn
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|

|
|
9
9
|
[](https://github.com/charliermarsh/ruff)
|
|
10
10
|
[](https://github.com/pre-commit/pre-commit)
|
|
11
|
+

|
|
11
12
|
|
|
12
13
|
## About
|
|
13
14
|
|
|
@@ -54,6 +55,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
54
55
|
|
|
55
56
|
If you use julearn in a scientific publication, please use the following reference
|
|
56
57
|
|
|
57
|
-
> 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
|
|
58
59
|
|
|
59
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
|
+
Add JuRSE Code Pick shield in README by `Synchon Mandal`_
|
{julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/00_starting/plot_stratified_kfold_reg.py
RENAMED
|
@@ -75,7 +75,7 @@ sns.displot(data_df, x="target", bins=20)
|
|
|
75
75
|
# distributed. We can see that the data is skewed towards the lower end of
|
|
76
76
|
# the target variable. We can also see that there are some outliers in the
|
|
77
77
|
# data. In any case, even with a low number of splits, some groups will not be
|
|
78
|
-
# represented in each fold.
|
|
78
|
+
# represented in each fold. Let's continue with 40 bins which gives a good
|
|
79
79
|
# granularity.
|
|
80
80
|
|
|
81
81
|
cv_stratified = ContinuousStratifiedKFold(n_bins=40, n_splits=5, shuffle=False)
|
|
@@ -122,7 +122,7 @@ df_fmri = df_fmri.reset_index()
|
|
|
122
122
|
|
|
123
123
|
###############################################################################
|
|
124
124
|
# Reshaping data frames (more complex)
|
|
125
|
-
#
|
|
125
|
+
# Let's suppose that our prediction target is now the *age* and we want to use
|
|
126
126
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
127
127
|
# as features the frontal and parietal value during each event. For this
|
|
128
128
|
# purpose, we need to convert the event values into columns. There are two
|
|
@@ -40,7 +40,7 @@ configure_logging(level="INFO")
|
|
|
40
40
|
df_fmri = load_dataset("fmri")
|
|
41
41
|
|
|
42
42
|
###############################################################################
|
|
43
|
-
# First,
|
|
43
|
+
# First, let's get some information on what the dataset has:
|
|
44
44
|
|
|
45
45
|
print(df_fmri.head())
|
|
46
46
|
|
|
@@ -49,7 +49,7 @@ print(df_fmri.head())
|
|
|
49
49
|
# were several subjects, timepoints, events and signal extracted from several
|
|
50
50
|
# brain regions.
|
|
51
51
|
#
|
|
52
|
-
#
|
|
52
|
+
# Let's check how many kinds of each we have.
|
|
53
53
|
print(df_fmri["event"].unique())
|
|
54
54
|
print(df_fmri["region"].unique())
|
|
55
55
|
print(sorted(df_fmri["timepoint"].unique()))
|
|
@@ -58,7 +58,7 @@ print(df_fmri["subject"].unique())
|
|
|
58
58
|
###############################################################################
|
|
59
59
|
# We have data from parietal and frontal regions during 2 types of events
|
|
60
60
|
# (*cue* and *stim*) during 18 timepoints and for 14 subjects.
|
|
61
|
-
#
|
|
61
|
+
# Let's see how many samples we have for each condition
|
|
62
62
|
|
|
63
63
|
print(df_fmri.groupby(["subject", "timepoint", "event", "region"]).count())
|
|
64
64
|
print(
|
|
@@ -72,7 +72,7 @@ print(
|
|
|
72
72
|
###############################################################################
|
|
73
73
|
# We have exactly one value per condition.
|
|
74
74
|
#
|
|
75
|
-
#
|
|
75
|
+
# Let's try to build a model, that uses parietal and frontal signal to predicts
|
|
76
76
|
# whether the event was a *cue* or a *stim*.
|
|
77
77
|
#
|
|
78
78
|
# First we define our X and y variables.
|
{julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/02_inspection/plot_groupcv_inspect_svm.py
RENAMED
|
@@ -42,7 +42,7 @@ configure_logging(level="INFO")
|
|
|
42
42
|
df_fmri = load_dataset("fmri")
|
|
43
43
|
|
|
44
44
|
###############################################################################
|
|
45
|
-
# First,
|
|
45
|
+
# First, let's get some information on what the dataset has:
|
|
46
46
|
|
|
47
47
|
print(df_fmri.head())
|
|
48
48
|
|
|
@@ -51,7 +51,7 @@ print(df_fmri.head())
|
|
|
51
51
|
# were several subjects, timepoints, events and signal extracted from several
|
|
52
52
|
# brain regions.
|
|
53
53
|
#
|
|
54
|
-
#
|
|
54
|
+
# Let's check how many kinds of each we have.
|
|
55
55
|
|
|
56
56
|
print(df_fmri["event"].unique())
|
|
57
57
|
print(df_fmri["region"].unique())
|
|
@@ -61,7 +61,7 @@ print(df_fmri["subject"].unique())
|
|
|
61
61
|
###############################################################################
|
|
62
62
|
# We have data from parietal and frontal regions during 2 types of events
|
|
63
63
|
# (*cue* and *stim*) during 18 timepoints and for 14 subjects.
|
|
64
|
-
#
|
|
64
|
+
# Let's see how many samples we have for each condition
|
|
65
65
|
|
|
66
66
|
print(df_fmri.groupby(["subject", "timepoint", "event", "region"]).count())
|
|
67
67
|
print(
|
|
@@ -75,7 +75,7 @@ print(
|
|
|
75
75
|
###############################################################################
|
|
76
76
|
# We have exactly one value per condition.
|
|
77
77
|
#
|
|
78
|
-
#
|
|
78
|
+
# Let's try to build a model, that uses parietal and frontal signal to predicts
|
|
79
79
|
# whether the event was a *cue* or a *stim*.
|
|
80
80
|
#
|
|
81
81
|
# First we define our X and y variables.
|
|
@@ -47,7 +47,7 @@ df_fmri = df_fmri.reset_index()
|
|
|
47
47
|
df_fmri.head()
|
|
48
48
|
|
|
49
49
|
###############################################################################
|
|
50
|
-
#
|
|
50
|
+
# Let's do a first attempt and use a linear SVM with the default parameters.
|
|
51
51
|
|
|
52
52
|
X = ["frontal", "parietal"]
|
|
53
53
|
y = "event"
|
{julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/examples/03_complex_models/run_hyperparameter_tuning.py
RENAMED
|
@@ -84,7 +84,7 @@ scores, estimator = run_cross_validation(
|
|
|
84
84
|
print(scores["test_score"].mean())
|
|
85
85
|
|
|
86
86
|
###############################################################################
|
|
87
|
-
# This did not change much,
|
|
87
|
+
# This did not change much, let's explore other kernels too.
|
|
88
88
|
|
|
89
89
|
creator = PipelineCreator(problem_type="classification")
|
|
90
90
|
creator.add("zscore")
|
|
@@ -182,7 +182,7 @@ fig.suptitle(
|
|
|
182
182
|
)
|
|
183
183
|
|
|
184
184
|
###############################################################################
|
|
185
|
-
# Now
|
|
185
|
+
# Now let's see how K-fold would have split this data.
|
|
186
186
|
cv = KFold(n_splits=3, shuffle=True, random_state=42)
|
|
187
187
|
|
|
188
188
|
fig, axis = plt.subplots(1, 2, figsize=(20, 4))
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
|
|
5
|
+
|
|
6
|
+
TYPE_CHECKING = False
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from typing import Tuple
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
11
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
12
|
+
else:
|
|
13
|
+
VERSION_TUPLE = object
|
|
14
|
+
|
|
15
|
+
version: str
|
|
16
|
+
__version__: str
|
|
17
|
+
__version_tuple__: VERSION_TUPLE
|
|
18
|
+
version_tuple: VERSION_TUPLE
|
|
19
|
+
|
|
20
|
+
__version__ = version = '0.3.5.dev25'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 3, 5, 'dev25')
|
|
@@ -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):
|
|
@@ -492,7 +492,7 @@ class WrapModel(JuBaseEstimator):
|
|
|
492
492
|
|
|
493
493
|
"""
|
|
494
494
|
model_params = list(self.model.get_params(True).keys())
|
|
495
|
-
kwargs = cast(Dict[str, Any], kwargs)
|
|
495
|
+
kwargs = cast("Dict[str, Any]", kwargs)
|
|
496
496
|
for param, val in kwargs.items():
|
|
497
497
|
if param in model_params:
|
|
498
498
|
self.model.set_params(**{param: val})
|
|
@@ -90,7 +90,7 @@ def df_typed_iris() -> pd.DataFrame:
|
|
|
90
90
|
|
|
91
91
|
"""
|
|
92
92
|
df = load_dataset("iris")
|
|
93
|
-
df = typing.cast(pd.DataFrame, df)
|
|
93
|
+
df = typing.cast("pd.DataFrame", df)
|
|
94
94
|
|
|
95
95
|
rename = {
|
|
96
96
|
"sepal_length": "sepal_length__:type:__continuous",
|
|
@@ -113,7 +113,7 @@ def df_iris() -> pd.DataFrame:
|
|
|
113
113
|
|
|
114
114
|
"""
|
|
115
115
|
df = load_dataset("iris")
|
|
116
|
-
df = typing.cast(pd.DataFrame, df)
|
|
116
|
+
df = typing.cast("pd.DataFrame", df)
|
|
117
117
|
|
|
118
118
|
return df.copy()
|
|
119
119
|
|
|
@@ -129,7 +129,7 @@ def df_binary() -> pd.DataFrame:
|
|
|
129
129
|
|
|
130
130
|
"""
|
|
131
131
|
df_iris = load_dataset("iris")
|
|
132
|
-
df_iris = typing.cast(pd.DataFrame, df_iris)
|
|
132
|
+
df_iris = typing.cast("pd.DataFrame", df_iris)
|
|
133
133
|
df_binary = df_iris[df_iris["species"].isin(["setosa", "virginica"])]
|
|
134
134
|
|
|
135
135
|
return df_binary
|
|
@@ -148,7 +148,7 @@ def X_iris() -> pd.DataFrame:
|
|
|
148
148
|
|
|
149
149
|
"""
|
|
150
150
|
df = load_dataset("iris")
|
|
151
|
-
df = typing.cast(pd.DataFrame, df)
|
|
151
|
+
df = typing.cast("pd.DataFrame", df)
|
|
152
152
|
features = ["sepal_length", "sepal_width", "petal_length", "petal_width"]
|
|
153
153
|
return df.loc[:, features]
|
|
154
154
|
|
|
@@ -166,7 +166,7 @@ def y_iris() -> pd.Series:
|
|
|
166
166
|
|
|
167
167
|
"""
|
|
168
168
|
df = load_dataset("iris")
|
|
169
|
-
df = typing.cast(pd.DataFrame, df)
|
|
169
|
+
df = typing.cast("pd.DataFrame", df)
|
|
170
170
|
|
|
171
171
|
return df.loc[:, "species"].astype("category").cat.codes
|
|
172
172
|
|
|
@@ -79,7 +79,7 @@ def test_preprocess_sklearn(
|
|
|
79
79
|
|
|
80
80
|
"""
|
|
81
81
|
X = list(X_iris.columns)
|
|
82
|
-
X = cast(List[str], X)
|
|
82
|
+
X = cast("List[str]", X)
|
|
83
83
|
pipeline.fit(X_iris, y=y_iris)
|
|
84
84
|
|
|
85
85
|
X_train = X_iris.copy()
|
|
@@ -111,7 +111,7 @@ def test_preprocess_sklearn_nodataframe(
|
|
|
111
111
|
|
|
112
112
|
"""
|
|
113
113
|
X = list(X_iris.columns)
|
|
114
|
-
X = cast(List[str], X)
|
|
114
|
+
X = cast("List[str]", X)
|
|
115
115
|
pipeline = Pipeline([("scaler", StandardScaler()), ("svm", SVC())])
|
|
116
116
|
pipeline.fit(X_iris, y=y_iris)
|
|
117
117
|
|
|
@@ -255,7 +255,7 @@ class PipelineCreator:
|
|
|
255
255
|
"TargetPipelineCreator can only be added to the target."
|
|
256
256
|
)
|
|
257
257
|
step = step.to_pipeline() # type: ignore
|
|
258
|
-
step = typing.cast(JuTargetPipeline, step)
|
|
258
|
+
step = typing.cast("JuTargetPipeline", step)
|
|
259
259
|
# Validate the step
|
|
260
260
|
self._validate_step(step, apply_to)
|
|
261
261
|
|
|
@@ -609,7 +609,7 @@ class PipelineCreator:
|
|
|
609
609
|
params_to_tune.update(step_params_to_tune)
|
|
610
610
|
pipeline_steps.append((model_name, model_estimator))
|
|
611
611
|
pipeline = Pipeline(pipeline_steps).set_output(transform="pandas")
|
|
612
|
-
pipeline = typing.cast(Pipeline, pipeline) # damn typing..
|
|
612
|
+
pipeline = typing.cast("Pipeline", pipeline) # damn typing..
|
|
613
613
|
# Deal with the Hyperparameter tuning
|
|
614
614
|
out = _prepare_hyperparameter_tuning(
|
|
615
615
|
params_to_tune, search_params, pipeline
|
|
@@ -161,7 +161,7 @@ def check_scoring(
|
|
|
161
161
|
wrap_score,
|
|
162
162
|
)
|
|
163
163
|
if isinstance(scoring, list):
|
|
164
|
-
scorer_names = typing.cast(List[str], scoring)
|
|
164
|
+
scorer_names = typing.cast("List[str]", scoring)
|
|
165
165
|
scoring_dict = {
|
|
166
166
|
score: _extend_scorer(get_scorer(score), wrap_score)
|
|
167
167
|
for score in scorer_names
|
|
@@ -168,8 +168,8 @@ def corrected_ttest(
|
|
|
168
168
|
n_train = i_scores["n_train"].values
|
|
169
169
|
n_test = i_scores["n_test"].values
|
|
170
170
|
|
|
171
|
-
n_train = typing.cast(np.ndarray, n_train)
|
|
172
|
-
n_test = typing.cast(np.ndarray, n_test)
|
|
171
|
+
n_train = typing.cast("np.ndarray", n_train)
|
|
172
|
+
n_test = typing.cast("np.ndarray", n_test)
|
|
173
173
|
|
|
174
174
|
if np.unique(n_train).size > 1:
|
|
175
175
|
warn_with_log(
|
|
@@ -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'\]"):
|
|
@@ -116,7 +116,7 @@ class JuTransformedTargetModel(JuBaseEstimator):
|
|
|
116
116
|
"""
|
|
117
117
|
if not hasattr(self, "model_"):
|
|
118
118
|
raise_error("Model not fitted yet.")
|
|
119
|
-
self.model_ = typing.cast(ModelLike, self.model_)
|
|
119
|
+
self.model_ = typing.cast("ModelLike", self.model_)
|
|
120
120
|
# TODO: Check if we can inverse the y transformations
|
|
121
121
|
# Raise warning if not possible
|
|
122
122
|
y_pred = self.model_.predict(X)
|
|
@@ -150,7 +150,7 @@ class JuTransformedTargetModel(JuBaseEstimator):
|
|
|
150
150
|
"""
|
|
151
151
|
if not hasattr(self, "model_"):
|
|
152
152
|
raise_error("Model not fitted yet.")
|
|
153
|
-
self.model_ = typing.cast(ModelLike, self.model_)
|
|
153
|
+
self.model_ = typing.cast("ModelLike", self.model_)
|
|
154
154
|
y_trans = self.transform_target(X, y)
|
|
155
155
|
return self.model_.score(X, y_trans)
|
|
156
156
|
|
|
@@ -173,7 +173,7 @@ class JuTransformedTargetModel(JuBaseEstimator):
|
|
|
173
173
|
"""
|
|
174
174
|
if not hasattr(self, "model_"):
|
|
175
175
|
raise_error("Model not fitted yet.")
|
|
176
|
-
self.model_ = typing.cast(ModelLike, self.model_)
|
|
176
|
+
self.model_ = typing.cast("ModelLike", self.model_)
|
|
177
177
|
return self.model_.predict_proba(X) # type: ignore
|
|
178
178
|
|
|
179
179
|
@available_if(_wrapped_model_has("decision_function"))
|
|
@@ -194,7 +194,7 @@ class JuTransformedTargetModel(JuBaseEstimator):
|
|
|
194
194
|
"""
|
|
195
195
|
if not hasattr(self, "model_"):
|
|
196
196
|
raise_error("Model not fitted yet.")
|
|
197
|
-
self.model_ = typing.cast(ModelLike, self.model_)
|
|
197
|
+
self.model_ = typing.cast("ModelLike", self.model_)
|
|
198
198
|
return self.model_.decision_function(X) # type: ignore
|
|
199
199
|
|
|
200
200
|
def transform_target(
|
|
@@ -233,5 +233,5 @@ class JuTransformedTargetModel(JuBaseEstimator):
|
|
|
233
233
|
"""Get the classes of the model."""
|
|
234
234
|
if not hasattr(self, "model_"):
|
|
235
235
|
raise_error("Model not fitted yet.")
|
|
236
|
-
self.model_ = typing.cast(ModelLike, self.model_)
|
|
236
|
+
self.model_ = typing.cast("ModelLike", self.model_)
|
|
237
237
|
return self.model_.classes_
|
{julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/julearn/transformers/target/target_confound_remover.py
RENAMED
|
@@ -99,7 +99,7 @@ class TargetConfoundRemover(JuTargetTransformer):
|
|
|
99
99
|
y_pred = self.model_confounds_.predict( # type: ignore
|
|
100
100
|
X_confounds.values
|
|
101
101
|
)
|
|
102
|
-
y_pred = typing.cast(pd.Series, y_pred)
|
|
102
|
+
y_pred = typing.cast("pd.Series", y_pred)
|
|
103
103
|
residuals = y - y_pred
|
|
104
104
|
if self.threshold is not None:
|
|
105
105
|
residuals[np.abs(residuals) < self.threshold] = 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: julearn
|
|
3
|
-
Version: 0.3.5.
|
|
3
|
+
Version: 0.3.5.dev25
|
|
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>
|
|
@@ -56,6 +56,7 @@ Requires-Dist: optuna<3.7,>=3.6.0; extra == "optuna"
|
|
|
56
56
|
Requires-Dist: optuna_integration<4.1,>=3.6.0; extra == "optuna"
|
|
57
57
|
Provides-Extra: all
|
|
58
58
|
Requires-Dist: julearn[optuna,skopt,viz]; extra == "all"
|
|
59
|
+
Dynamic: license-file
|
|
59
60
|
|
|
60
61
|
# julearn
|
|
61
62
|
|
|
@@ -67,6 +68,7 @@ Requires-Dist: julearn[optuna,skopt,viz]; extra == "all"
|
|
|
67
68
|

|
|
68
69
|
[](https://github.com/charliermarsh/ruff)
|
|
69
70
|
[](https://github.com/pre-commit/pre-commit)
|
|
71
|
+

|
|
70
72
|
|
|
71
73
|
## About
|
|
72
74
|
|
|
@@ -113,6 +115,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
113
115
|
|
|
114
116
|
If you use julearn in a scientific publication, please use the following reference
|
|
115
117
|
|
|
116
|
-
> 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
|
|
117
119
|
|
|
118
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/283.doc
|
|
59
61
|
docs/images/corrected_ttest.png
|
|
60
62
|
docs/images/final_estimator.png
|
|
61
63
|
docs/images/iris_X.png
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# file generated by setuptools_scm
|
|
2
|
-
# don't change, don't track in version control
|
|
3
|
-
TYPE_CHECKING = False
|
|
4
|
-
if TYPE_CHECKING:
|
|
5
|
-
from typing import Tuple, Union
|
|
6
|
-
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
7
|
-
else:
|
|
8
|
-
VERSION_TUPLE = object
|
|
9
|
-
|
|
10
|
-
version: str
|
|
11
|
-
__version__: str
|
|
12
|
-
__version_tuple__: VERSION_TUPLE
|
|
13
|
-
version_tuple: VERSION_TUPLE
|
|
14
|
-
|
|
15
|
-
__version__ = version = '0.3.5.dev16'
|
|
16
|
-
__version_tuple__ = version_tuple = (0, 3, 5, 'dev16')
|
|
File without changes
|
|
File without changes
|
{julearn-0.3.5.dev16 → julearn-0.3.5.dev25}/.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
|