scikit-learn-intelex 2025.6.1__py312-none-win_amd64.whl → 2025.8.0__py312-none-win_amd64.whl
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.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +2 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +258 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +30 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +4 -4
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +616 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +15 -16
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/__init__.py +26 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/_config.py +5 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/_device_offload.py +84 -94
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +42 -57
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +6 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +11 -11
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +7 -25
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +18 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/_backend.py +62 -37
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +32 -9
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +6 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +10 -12
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +8 -16
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +12 -2
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +156 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +61 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +8 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +61 -19
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +8 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +6 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +15 -9
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +14 -15
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +10 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +64 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -12
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +15 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +23 -6
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +25 -25
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +106 -54
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/validation.py +11 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/__init__.py +2 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/_config.py +17 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +45 -34
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/_utils.py +52 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/base.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +31 -45
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +50 -55
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +30 -27
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +1 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +14 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +21 -9
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +54 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +13 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +17 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +22 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +2 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +90 -73
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +83 -60
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +53 -41
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +11 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +47 -27
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +27 -61
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +577 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +8 -6
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +3 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +54 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +7 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +6 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +12 -8
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +11 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -7
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +21 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +16 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +31 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +41 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +77 -6
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +13 -13
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +4 -22
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +71 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +29 -11
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/METADATA +2 -2
- scikit_learn_intelex-2025.8.0.dist-info/RECORD +259 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -1025
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +0 -111
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -117
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +0 -311
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +0 -351
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -71
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -134
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -43
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
- scikit_learn_intelex-2025.6.1.dist-info/RECORD +0 -257
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.8.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.8.0.dist-info}/top_level.txt +0 -0
|
@@ -1,1025 +0,0 @@
|
|
|
1
|
-
# ==============================================================================
|
|
2
|
-
# Copyright 2014 Intel Corporation
|
|
3
|
-
#
|
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
# you may not use this file except in compliance with the License.
|
|
6
|
-
# You may obtain a copy of the License at
|
|
7
|
-
#
|
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
#
|
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
# See the License for the specific language governing permissions and
|
|
14
|
-
# limitations under the License.
|
|
15
|
-
# ==============================================================================
|
|
16
|
-
|
|
17
|
-
import numbers
|
|
18
|
-
|
|
19
|
-
import numpy as np
|
|
20
|
-
import scipy.optimize as optimize
|
|
21
|
-
import scipy.sparse as sparse
|
|
22
|
-
import sklearn.linear_model._logistic as logistic_module
|
|
23
|
-
from sklearn.linear_model._sag import sag_solver
|
|
24
|
-
from sklearn.utils import (
|
|
25
|
-
check_array,
|
|
26
|
-
check_consistent_length,
|
|
27
|
-
check_random_state,
|
|
28
|
-
compute_class_weight,
|
|
29
|
-
)
|
|
30
|
-
from sklearn.utils.optimize import _check_optimize_result, _newton_cg
|
|
31
|
-
from sklearn.utils.validation import _check_sample_weight, check_is_fitted
|
|
32
|
-
|
|
33
|
-
import daal4py as d4p
|
|
34
|
-
|
|
35
|
-
from .._n_jobs_support import control_n_jobs
|
|
36
|
-
from .._utils import PatchingConditionsChain, getFPType, sklearn_check_version
|
|
37
|
-
from ..utils.validation import check_feature_names
|
|
38
|
-
from .logistic_loss import (
|
|
39
|
-
_daal4py_cross_entropy_loss_extra_args,
|
|
40
|
-
_daal4py_grad_,
|
|
41
|
-
_daal4py_grad_hess_,
|
|
42
|
-
_daal4py_logistic_loss_extra_args,
|
|
43
|
-
_daal4py_loss_,
|
|
44
|
-
_daal4py_loss_and_grad,
|
|
45
|
-
)
|
|
46
|
-
|
|
47
|
-
if sklearn_check_version("1.1"):
|
|
48
|
-
from sklearn._loss.loss import HalfBinomialLoss, HalfMultinomialLoss
|
|
49
|
-
from sklearn.linear_model._linear_loss import LinearModelLoss
|
|
50
|
-
from sklearn.linear_model._logistic import _LOGISTIC_SOLVER_CONVERGENCE_MSG
|
|
51
|
-
from sklearn.linear_model._logistic import (
|
|
52
|
-
LogisticRegression as LogisticRegression_original,
|
|
53
|
-
)
|
|
54
|
-
from sklearn.linear_model._logistic import (
|
|
55
|
-
_check_multi_class,
|
|
56
|
-
_check_solver,
|
|
57
|
-
_fit_liblinear,
|
|
58
|
-
)
|
|
59
|
-
else:
|
|
60
|
-
from sklearn.linear_model._logistic import (
|
|
61
|
-
_check_solver,
|
|
62
|
-
_check_multi_class,
|
|
63
|
-
_fit_liblinear,
|
|
64
|
-
_logistic_loss_and_grad,
|
|
65
|
-
_logistic_loss,
|
|
66
|
-
_logistic_grad_hess,
|
|
67
|
-
_multinomial_loss,
|
|
68
|
-
_multinomial_loss_grad,
|
|
69
|
-
_multinomial_grad_hess,
|
|
70
|
-
_LOGISTIC_SOLVER_CONVERGENCE_MSG,
|
|
71
|
-
LogisticRegression as LogisticRegression_original,
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
from sklearn.linear_model._logistic import _logistic_regression_path as lr_path_original
|
|
75
|
-
from sklearn.preprocessing import LabelBinarizer, LabelEncoder
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
# Code adapted from sklearn.linear_model.logistic version 0.21
|
|
79
|
-
def __logistic_regression_path(
|
|
80
|
-
X,
|
|
81
|
-
y,
|
|
82
|
-
pos_class=None,
|
|
83
|
-
Cs=10,
|
|
84
|
-
fit_intercept=True,
|
|
85
|
-
max_iter=100,
|
|
86
|
-
tol=1e-4,
|
|
87
|
-
verbose=0,
|
|
88
|
-
solver="lbfgs",
|
|
89
|
-
coef=None,
|
|
90
|
-
class_weight=None,
|
|
91
|
-
dual=False,
|
|
92
|
-
penalty="l2",
|
|
93
|
-
intercept_scaling=1.0,
|
|
94
|
-
multi_class="warn",
|
|
95
|
-
random_state=None,
|
|
96
|
-
check_input=True,
|
|
97
|
-
max_squared_sum=None,
|
|
98
|
-
sample_weight=None,
|
|
99
|
-
l1_ratio=None,
|
|
100
|
-
n_threads=1,
|
|
101
|
-
):
|
|
102
|
-
"""Compute a Logistic Regression model for a list of regularization
|
|
103
|
-
parameters.
|
|
104
|
-
|
|
105
|
-
This is an implementation that uses the result of the previous model
|
|
106
|
-
to speed up computations along the set of solutions, making it faster
|
|
107
|
-
than sequentially calling LogisticRegression for the different parameters.
|
|
108
|
-
Note that there will be no speedup with liblinear solver, since it does
|
|
109
|
-
not handle warm-starting.
|
|
110
|
-
|
|
111
|
-
Read more in the :ref:`User Guide <logistic_regression>`.
|
|
112
|
-
|
|
113
|
-
Parameters
|
|
114
|
-
----------
|
|
115
|
-
X : array-like or sparse matrix, shape (n_samples, n_features)
|
|
116
|
-
Input data.
|
|
117
|
-
|
|
118
|
-
y : array-like, shape (n_samples,) or (n_samples, n_targets)
|
|
119
|
-
Input data, target values.
|
|
120
|
-
|
|
121
|
-
pos_class : int, None
|
|
122
|
-
The class with respect to which we perform a one-vs-all fit.
|
|
123
|
-
If None, then it is assumed that the given problem is binary.
|
|
124
|
-
|
|
125
|
-
Cs : int | array-like, shape (n_cs,)
|
|
126
|
-
List of values for the regularization parameter or integer specifying
|
|
127
|
-
the number of regularization parameters that should be used. In this
|
|
128
|
-
case, the parameters will be chosen in a logarithmic scale between
|
|
129
|
-
1e-4 and 1e4.
|
|
130
|
-
|
|
131
|
-
fit_intercept : bool
|
|
132
|
-
Whether to fit an intercept for the model. In this case the shape of
|
|
133
|
-
the returned array is (n_cs, n_features + 1).
|
|
134
|
-
|
|
135
|
-
max_iter : int
|
|
136
|
-
Maximum number of iterations for the solver.
|
|
137
|
-
|
|
138
|
-
tol : float
|
|
139
|
-
Stopping criterion. For the newton-cg and lbfgs solvers, the iteration
|
|
140
|
-
will stop when ``max{|g_i | i = 1, ..., n} <= tol``
|
|
141
|
-
where ``g_i`` is the i-th component of the gradient.
|
|
142
|
-
|
|
143
|
-
verbose : int
|
|
144
|
-
For the liblinear and lbfgs solvers set verbose to any positive
|
|
145
|
-
number for verbosity.
|
|
146
|
-
|
|
147
|
-
solver : {'lbfgs', 'newton-cg', 'liblinear', 'sag', 'saga'}
|
|
148
|
-
Numerical solver to use.
|
|
149
|
-
|
|
150
|
-
coef : array-like, shape (n_features,), default None
|
|
151
|
-
Initialization value for coefficients of logistic regression.
|
|
152
|
-
Useless for liblinear solver.
|
|
153
|
-
|
|
154
|
-
class_weight : dict or 'balanced', optional
|
|
155
|
-
Weights associated with classes in the form ``{class_label: weight}``.
|
|
156
|
-
If not given, all classes are supposed to have weight one.
|
|
157
|
-
|
|
158
|
-
The "balanced" mode uses the values of y to automatically adjust
|
|
159
|
-
weights inversely proportional to class frequencies in the input data
|
|
160
|
-
as ``n_samples / (n_classes * np.bincount(y))``.
|
|
161
|
-
|
|
162
|
-
Note that these weights will be multiplied with sample_weight (passed
|
|
163
|
-
through the fit method) if sample_weight is specified.
|
|
164
|
-
|
|
165
|
-
dual : bool
|
|
166
|
-
Dual or primal formulation. Dual formulation is only implemented for
|
|
167
|
-
l2 penalty with liblinear solver. Prefer dual=False when
|
|
168
|
-
n_samples > n_features.
|
|
169
|
-
|
|
170
|
-
penalty : str, 'l1', 'l2', or 'elasticnet'
|
|
171
|
-
Used to specify the norm used in the penalization. The 'newton-cg',
|
|
172
|
-
'sag' and 'lbfgs' solvers support only l2 penalties. 'elasticnet' is
|
|
173
|
-
only supported by the 'saga' solver.
|
|
174
|
-
|
|
175
|
-
intercept_scaling : float, default 1.
|
|
176
|
-
Useful only when the solver 'liblinear' is used
|
|
177
|
-
and self.fit_intercept is set to True. In this case, x becomes
|
|
178
|
-
[x, self.intercept_scaling],
|
|
179
|
-
i.e. a "synthetic" feature with constant value equal to
|
|
180
|
-
intercept_scaling is appended to the instance vector.
|
|
181
|
-
The intercept becomes ``intercept_scaling * synthetic_feature_weight``.
|
|
182
|
-
|
|
183
|
-
Note! the synthetic feature weight is subject to l1/l2 regularization
|
|
184
|
-
as all other features.
|
|
185
|
-
To lessen the effect of regularization on synthetic feature weight
|
|
186
|
-
(and therefore on the intercept) intercept_scaling has to be increased.
|
|
187
|
-
|
|
188
|
-
multi_class : str, {'ovr', 'multinomial', 'auto'}, default: 'ovr'
|
|
189
|
-
If the option chosen is 'ovr', then a binary problem is fit for each
|
|
190
|
-
label. For 'multinomial' the loss minimised is the multinomial loss fit
|
|
191
|
-
across the entire probability distribution, *even when the data is
|
|
192
|
-
binary*. 'multinomial' is unavailable when solver='liblinear'.
|
|
193
|
-
'auto' selects 'ovr' if the data is binary, or if solver='liblinear',
|
|
194
|
-
and otherwise selects 'multinomial'.
|
|
195
|
-
|
|
196
|
-
.. versionadded:: 0.18
|
|
197
|
-
Stochastic Average Gradient descent solver for 'multinomial' case.
|
|
198
|
-
.. versionchanged:: 0.20
|
|
199
|
-
Default will change from 'ovr' to 'auto' in 0.22.
|
|
200
|
-
|
|
201
|
-
random_state : int, RandomState instance or None, optional, default None
|
|
202
|
-
The seed of the pseudo random number generator to use when shuffling
|
|
203
|
-
the data. If int, random_state is the seed used by the random number
|
|
204
|
-
generator; If RandomState instance, random_state is the random number
|
|
205
|
-
generator; If None, the random number generator is the RandomState
|
|
206
|
-
instance used by `np.random`. Used when ``solver`` == 'sag' or
|
|
207
|
-
'liblinear'.
|
|
208
|
-
|
|
209
|
-
check_input : bool, default True
|
|
210
|
-
If False, the input arrays X and y will not be checked.
|
|
211
|
-
|
|
212
|
-
max_squared_sum : float, default None
|
|
213
|
-
Maximum squared sum of X over samples. Used only in SAG solver.
|
|
214
|
-
If None, it will be computed, going through all the samples.
|
|
215
|
-
The value should be precomputed to speed up cross validation.
|
|
216
|
-
|
|
217
|
-
sample_weight : array-like, shape(n_samples,) optional
|
|
218
|
-
Array of weights that are assigned to individual samples.
|
|
219
|
-
If not provided, then each sample is given unit weight.
|
|
220
|
-
|
|
221
|
-
l1_ratio : float or None, optional (default=None)
|
|
222
|
-
The Elastic-Net mixing parameter, with ``0 <= l1_ratio <= 1``. Only
|
|
223
|
-
used if ``penalty='elasticnet'``. Setting ``l1_ratio=0`` is equivalent
|
|
224
|
-
to using ``penalty='l2'``, while setting ``l1_ratio=1`` is equivalent
|
|
225
|
-
to using ``penalty='l1'``. For ``0 < l1_ratio <1``, the penalty is a
|
|
226
|
-
combination of L1 and L2.
|
|
227
|
-
|
|
228
|
-
Returns
|
|
229
|
-
-------
|
|
230
|
-
coefs : ndarray, shape (n_cs, n_features) or (n_cs, n_features + 1)
|
|
231
|
-
List of coefficients for the Logistic Regression model. If
|
|
232
|
-
fit_intercept is set to True then the second dimension will be
|
|
233
|
-
n_features + 1, where the last item represents the intercept. For
|
|
234
|
-
``multiclass='multinomial'``, the shape is (n_classes, n_cs,
|
|
235
|
-
n_features) or (n_classes, n_cs, n_features + 1).
|
|
236
|
-
|
|
237
|
-
Cs : ndarray
|
|
238
|
-
Grid of Cs used for cross-validation.
|
|
239
|
-
|
|
240
|
-
n_iter : array, shape (n_cs,)
|
|
241
|
-
Actual number of iteration for each Cs.
|
|
242
|
-
|
|
243
|
-
Notes
|
|
244
|
-
-----
|
|
245
|
-
You might get slightly different results with the solver liblinear than
|
|
246
|
-
with the others since this uses LIBLINEAR which penalizes the intercept.
|
|
247
|
-
|
|
248
|
-
.. versionchanged:: 0.19
|
|
249
|
-
The "copy" parameter was removed.
|
|
250
|
-
"""
|
|
251
|
-
_patching_status = PatchingConditionsChain(
|
|
252
|
-
"sklearn.linear_model.LogisticRegression.fit"
|
|
253
|
-
)
|
|
254
|
-
# TODO: remove this fallback workaround after
|
|
255
|
-
# logistic path is reworked to align with sklearn 1.2
|
|
256
|
-
_dal_ready = _patching_status.and_conditions(
|
|
257
|
-
[
|
|
258
|
-
(
|
|
259
|
-
not (sklearn_check_version("1.2") and solver == "newton-cholesky"),
|
|
260
|
-
f"'{solver}' solver is not supported. "
|
|
261
|
-
"Only 'lbfgs' and 'newton-cg' solvers are supported.",
|
|
262
|
-
)
|
|
263
|
-
]
|
|
264
|
-
)
|
|
265
|
-
if not _dal_ready:
|
|
266
|
-
_patching_status.write_log()
|
|
267
|
-
return lr_path_original(
|
|
268
|
-
X,
|
|
269
|
-
y,
|
|
270
|
-
pos_class=pos_class,
|
|
271
|
-
Cs=Cs,
|
|
272
|
-
fit_intercept=fit_intercept,
|
|
273
|
-
max_iter=max_iter,
|
|
274
|
-
tol=tol,
|
|
275
|
-
verbose=verbose,
|
|
276
|
-
solver=solver,
|
|
277
|
-
coef=coef,
|
|
278
|
-
class_weight=class_weight,
|
|
279
|
-
dual=dual,
|
|
280
|
-
penalty=penalty,
|
|
281
|
-
intercept_scaling=intercept_scaling,
|
|
282
|
-
multi_class=multi_class,
|
|
283
|
-
random_state=random_state,
|
|
284
|
-
check_input=check_input,
|
|
285
|
-
max_squared_sum=max_squared_sum,
|
|
286
|
-
sample_weight=sample_weight,
|
|
287
|
-
l1_ratio=l1_ratio,
|
|
288
|
-
n_threads=n_threads,
|
|
289
|
-
)
|
|
290
|
-
|
|
291
|
-
if isinstance(Cs, numbers.Integral):
|
|
292
|
-
Cs = np.logspace(-4, 4, Cs)
|
|
293
|
-
|
|
294
|
-
solver = _check_solver(solver, penalty, dual)
|
|
295
|
-
|
|
296
|
-
# Preprocessing.
|
|
297
|
-
if check_input:
|
|
298
|
-
if sklearn_check_version("1.1"):
|
|
299
|
-
X = check_array(
|
|
300
|
-
X,
|
|
301
|
-
accept_sparse="csr",
|
|
302
|
-
dtype=np.float64,
|
|
303
|
-
accept_large_sparse=solver not in ["liblinear", "sag", "saga"],
|
|
304
|
-
)
|
|
305
|
-
else:
|
|
306
|
-
X = check_array(
|
|
307
|
-
X,
|
|
308
|
-
accept_sparse="csr",
|
|
309
|
-
dtype=np.float64,
|
|
310
|
-
accept_large_sparse=solver != "liblinear",
|
|
311
|
-
)
|
|
312
|
-
y = check_array(y, ensure_2d=False, dtype=None)
|
|
313
|
-
check_consistent_length(X, y)
|
|
314
|
-
_, n_features = X.shape
|
|
315
|
-
|
|
316
|
-
classes = np.unique(y)
|
|
317
|
-
random_state = check_random_state(random_state)
|
|
318
|
-
|
|
319
|
-
multi_class = _check_multi_class(multi_class, solver, len(classes))
|
|
320
|
-
if pos_class is None and multi_class != "multinomial":
|
|
321
|
-
if classes.size > 2:
|
|
322
|
-
raise ValueError("To fit OvR, use the pos_class argument")
|
|
323
|
-
# np.unique(y) gives labels in sorted order.
|
|
324
|
-
pos_class = classes[1]
|
|
325
|
-
|
|
326
|
-
_dal_ready = _patching_status.and_conditions(
|
|
327
|
-
[
|
|
328
|
-
(
|
|
329
|
-
solver in ["lbfgs", "newton-cg"],
|
|
330
|
-
f"'{solver}' solver is not supported. "
|
|
331
|
-
"Only 'lbfgs' and 'newton-cg' solvers are supported.",
|
|
332
|
-
),
|
|
333
|
-
(not sparse.issparse(X), "X is sparse. Sparse input is not supported."),
|
|
334
|
-
(sample_weight is None, "Sample weights are not supported."),
|
|
335
|
-
(class_weight is None, "Class weights are not supported."),
|
|
336
|
-
]
|
|
337
|
-
)
|
|
338
|
-
|
|
339
|
-
if not _dal_ready:
|
|
340
|
-
sample_weight = _check_sample_weight(sample_weight, X, dtype=X.dtype, copy=True)
|
|
341
|
-
# If class_weights is a dict (provided by the user), the weights
|
|
342
|
-
# are assigned to the original labels. If it is "balanced", then
|
|
343
|
-
# the class_weights are assigned after masking the labels with a OvR.
|
|
344
|
-
le = LabelEncoder()
|
|
345
|
-
if (
|
|
346
|
-
isinstance(class_weight, dict) or multi_class == "multinomial"
|
|
347
|
-
) and not _dal_ready:
|
|
348
|
-
class_weight_ = compute_class_weight(class_weight, classes=classes, y=y)
|
|
349
|
-
if not np.allclose(class_weight_, np.ones_like(class_weight_)):
|
|
350
|
-
sample_weight *= class_weight_[le.fit_transform(y)]
|
|
351
|
-
|
|
352
|
-
# For doing a ovr, we need to mask the labels first. for the
|
|
353
|
-
# multinomial case this is not necessary.
|
|
354
|
-
if multi_class == "ovr":
|
|
355
|
-
y_bin = np.ones(y.shape, dtype=X.dtype)
|
|
356
|
-
|
|
357
|
-
if sklearn_check_version("1.1"):
|
|
358
|
-
mask = y == pos_class
|
|
359
|
-
y_bin = np.ones(y.shape, dtype=X.dtype)
|
|
360
|
-
# for compute_class_weight
|
|
361
|
-
|
|
362
|
-
if solver in ["lbfgs", "newton-cg"]:
|
|
363
|
-
# HalfBinomialLoss, used for those solvers, represents y in [0, 1] instead
|
|
364
|
-
# of in [-1, 1].
|
|
365
|
-
mask_classes = np.array([0, 1])
|
|
366
|
-
y_bin[~mask] = 0.0
|
|
367
|
-
else:
|
|
368
|
-
mask_classes = np.array([-1, 1])
|
|
369
|
-
y_bin[~mask] = -1.0
|
|
370
|
-
else:
|
|
371
|
-
mask_classes = np.array([-1, 1])
|
|
372
|
-
mask = y == pos_class
|
|
373
|
-
y_bin[~mask] = -1.0
|
|
374
|
-
# for compute_class_weight
|
|
375
|
-
|
|
376
|
-
if class_weight == "balanced" and not _dal_ready:
|
|
377
|
-
class_weight_ = compute_class_weight(
|
|
378
|
-
class_weight, classes=mask_classes, y=y_bin
|
|
379
|
-
)
|
|
380
|
-
if not np.allclose(class_weight_, np.ones_like(class_weight_)):
|
|
381
|
-
sample_weight *= class_weight_[le.fit_transform(y_bin)]
|
|
382
|
-
|
|
383
|
-
if _dal_ready:
|
|
384
|
-
w0 = np.zeros(n_features + 1, dtype=X.dtype)
|
|
385
|
-
y_bin[~mask] = 0.0
|
|
386
|
-
else:
|
|
387
|
-
w0 = np.zeros(n_features + int(fit_intercept), dtype=X.dtype)
|
|
388
|
-
|
|
389
|
-
else:
|
|
390
|
-
if sklearn_check_version("1.1"):
|
|
391
|
-
if solver in ["sag", "saga", "lbfgs", "newton-cg"]:
|
|
392
|
-
# SAG, lbfgs and newton-cg multinomial solvers need LabelEncoder,
|
|
393
|
-
# not LabelBinarizer, i.e. y as a 1d-array of integers.
|
|
394
|
-
# LabelEncoder also saves memory compared to LabelBinarizer, especially
|
|
395
|
-
# when n_classes is large.
|
|
396
|
-
if _dal_ready:
|
|
397
|
-
Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
|
|
398
|
-
else:
|
|
399
|
-
le = LabelEncoder()
|
|
400
|
-
Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
|
|
401
|
-
else:
|
|
402
|
-
# For liblinear solver, apply LabelBinarizer, i.e. y is one-hot encoded.
|
|
403
|
-
lbin = LabelBinarizer()
|
|
404
|
-
Y_multi = lbin.fit_transform(y)
|
|
405
|
-
if Y_multi.shape[1] == 1:
|
|
406
|
-
Y_multi = np.hstack([1 - Y_multi, Y_multi])
|
|
407
|
-
else:
|
|
408
|
-
if solver not in ["sag", "saga"]:
|
|
409
|
-
if _dal_ready:
|
|
410
|
-
Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
|
|
411
|
-
else:
|
|
412
|
-
lbin = LabelBinarizer()
|
|
413
|
-
Y_multi = lbin.fit_transform(y)
|
|
414
|
-
if Y_multi.shape[1] == 1:
|
|
415
|
-
Y_multi = np.hstack([1 - Y_multi, Y_multi])
|
|
416
|
-
else:
|
|
417
|
-
# SAG multinomial solver needs LabelEncoder, not LabelBinarizer
|
|
418
|
-
le = LabelEncoder()
|
|
419
|
-
Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
|
|
420
|
-
|
|
421
|
-
if _dal_ready:
|
|
422
|
-
w0 = np.zeros((classes.size, n_features + 1), order="C", dtype=X.dtype)
|
|
423
|
-
else:
|
|
424
|
-
w0 = np.zeros(
|
|
425
|
-
(classes.size, n_features + int(fit_intercept)), order="F", dtype=X.dtype
|
|
426
|
-
)
|
|
427
|
-
|
|
428
|
-
# Adoption of https://github.com/scikit-learn/scikit-learn/pull/26721
|
|
429
|
-
if solver in ["lbfgs", "newton-cg", "newton-cholesky"]:
|
|
430
|
-
sw_sum = len(X) if sample_weight is None else np.sum(sample_weight)
|
|
431
|
-
|
|
432
|
-
if coef is not None:
|
|
433
|
-
# it must work both giving the bias term and not
|
|
434
|
-
if multi_class == "ovr":
|
|
435
|
-
if coef.size not in (n_features, w0.size):
|
|
436
|
-
raise ValueError(
|
|
437
|
-
"Initialization coef is of shape %d, expected shape "
|
|
438
|
-
"%d or %d" % (coef.size, n_features, w0.size)
|
|
439
|
-
)
|
|
440
|
-
if _dal_ready:
|
|
441
|
-
w0[-coef.size :] = (
|
|
442
|
-
np.roll(coef, 1, -1) if coef.size != n_features else coef
|
|
443
|
-
)
|
|
444
|
-
else:
|
|
445
|
-
w0[: coef.size] = coef
|
|
446
|
-
else:
|
|
447
|
-
# For binary problems coef.shape[0] should be 1, otherwise it
|
|
448
|
-
# should be classes.size.
|
|
449
|
-
n_classes = classes.size
|
|
450
|
-
if n_classes == 2:
|
|
451
|
-
n_classes = 1
|
|
452
|
-
|
|
453
|
-
if coef.shape[0] != n_classes or coef.shape[1] not in (
|
|
454
|
-
n_features,
|
|
455
|
-
n_features + 1,
|
|
456
|
-
):
|
|
457
|
-
raise ValueError(
|
|
458
|
-
"Initialization coef is of shape (%d, %d), expected "
|
|
459
|
-
"shape (%d, %d) or (%d, %d)"
|
|
460
|
-
% (
|
|
461
|
-
coef.shape[0],
|
|
462
|
-
coef.shape[1],
|
|
463
|
-
classes.size,
|
|
464
|
-
n_features,
|
|
465
|
-
classes.size,
|
|
466
|
-
n_features + 1,
|
|
467
|
-
)
|
|
468
|
-
)
|
|
469
|
-
|
|
470
|
-
if _dal_ready:
|
|
471
|
-
w0[:, -coef.shape[1] :] = (
|
|
472
|
-
np.roll(coef, 1, -1) if coef.shape[1] != n_features else coef
|
|
473
|
-
)
|
|
474
|
-
else:
|
|
475
|
-
if n_classes == 1:
|
|
476
|
-
w0[0, : coef.shape[1]] = -coef
|
|
477
|
-
w0[1, : coef.shape[1]] = coef
|
|
478
|
-
else:
|
|
479
|
-
w0[:, : coef.shape[1]] = coef
|
|
480
|
-
|
|
481
|
-
C_daal_multiplier = 1
|
|
482
|
-
# commented out because this is Py3 feature
|
|
483
|
-
# def _map_to_binary_logistic_regression():
|
|
484
|
-
# nonlocal C_daal_multiplier
|
|
485
|
-
# nonlocal w0
|
|
486
|
-
# C_daal_multiplier = 2
|
|
487
|
-
# w0 *= 2
|
|
488
|
-
|
|
489
|
-
if multi_class == "multinomial":
|
|
490
|
-
# fmin_l_bfgs_b and newton-cg accepts only ravelled parameters.
|
|
491
|
-
if solver in ["lbfgs", "newton-cg"]:
|
|
492
|
-
if _dal_ready and classes.size == 2:
|
|
493
|
-
w0 = w0[-1:, :]
|
|
494
|
-
if sklearn_check_version("1.1"):
|
|
495
|
-
w0 = w0.ravel(order="F")
|
|
496
|
-
else:
|
|
497
|
-
w0 = w0.ravel()
|
|
498
|
-
target = Y_multi
|
|
499
|
-
loss = None
|
|
500
|
-
if sklearn_check_version("1.1"):
|
|
501
|
-
loss = LinearModelLoss(
|
|
502
|
-
base_loss=HalfMultinomialLoss(n_classes=classes.size),
|
|
503
|
-
fit_intercept=fit_intercept,
|
|
504
|
-
)
|
|
505
|
-
if solver == "lbfgs":
|
|
506
|
-
if _dal_ready:
|
|
507
|
-
if classes.size == 2:
|
|
508
|
-
# _map_to_binary_logistic_regression()
|
|
509
|
-
C_daal_multiplier = 2
|
|
510
|
-
w0 *= 2
|
|
511
|
-
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
512
|
-
else:
|
|
513
|
-
daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
|
|
514
|
-
func = _daal4py_loss_and_grad
|
|
515
|
-
else:
|
|
516
|
-
if sklearn_check_version("1.1") and loss is not None:
|
|
517
|
-
func = loss.loss_gradient
|
|
518
|
-
else:
|
|
519
|
-
|
|
520
|
-
def func(x, *args):
|
|
521
|
-
return _multinomial_loss_grad(x, *args)[0:2]
|
|
522
|
-
|
|
523
|
-
elif solver == "newton-cg":
|
|
524
|
-
if _dal_ready:
|
|
525
|
-
if classes.size == 2:
|
|
526
|
-
# _map_to_binary_logistic_regression()
|
|
527
|
-
C_daal_multiplier = 2
|
|
528
|
-
w0 *= 2
|
|
529
|
-
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
530
|
-
else:
|
|
531
|
-
daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
|
|
532
|
-
func = _daal4py_loss_
|
|
533
|
-
grad = _daal4py_grad_
|
|
534
|
-
hess = _daal4py_grad_hess_
|
|
535
|
-
else:
|
|
536
|
-
if sklearn_check_version("1.1") and loss is not None:
|
|
537
|
-
func = loss.loss
|
|
538
|
-
grad = loss.gradient
|
|
539
|
-
hess = loss.gradient_hessian_product # hess = [gradient, hessp]
|
|
540
|
-
else:
|
|
541
|
-
|
|
542
|
-
def func(x, *args):
|
|
543
|
-
return _multinomial_loss(x, *args)[0]
|
|
544
|
-
|
|
545
|
-
def grad(x, *args):
|
|
546
|
-
return _multinomial_loss_grad(x, *args)[1]
|
|
547
|
-
|
|
548
|
-
hess = _multinomial_grad_hess
|
|
549
|
-
warm_start_sag = {"coef": w0.T}
|
|
550
|
-
else:
|
|
551
|
-
target = y_bin
|
|
552
|
-
if solver == "lbfgs":
|
|
553
|
-
if _dal_ready:
|
|
554
|
-
func = _daal4py_loss_and_grad
|
|
555
|
-
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
556
|
-
else:
|
|
557
|
-
if sklearn_check_version("1.1"):
|
|
558
|
-
loss = LinearModelLoss(
|
|
559
|
-
base_loss=HalfBinomialLoss(), fit_intercept=fit_intercept
|
|
560
|
-
)
|
|
561
|
-
func = loss.loss_gradient
|
|
562
|
-
else:
|
|
563
|
-
func = _logistic_loss_and_grad
|
|
564
|
-
elif solver == "newton-cg":
|
|
565
|
-
if _dal_ready:
|
|
566
|
-
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
567
|
-
func = _daal4py_loss_
|
|
568
|
-
grad = _daal4py_grad_
|
|
569
|
-
hess = _daal4py_grad_hess_
|
|
570
|
-
else:
|
|
571
|
-
if sklearn_check_version("1.1"):
|
|
572
|
-
loss = LinearModelLoss(
|
|
573
|
-
base_loss=HalfBinomialLoss(), fit_intercept=fit_intercept
|
|
574
|
-
)
|
|
575
|
-
func = loss.loss
|
|
576
|
-
grad = loss.gradient
|
|
577
|
-
hess = loss.gradient_hessian_product # hess = [gradient, hessp]
|
|
578
|
-
else:
|
|
579
|
-
func = _logistic_loss
|
|
580
|
-
|
|
581
|
-
def grad(x, *args):
|
|
582
|
-
return _logistic_loss_and_grad(x, *args)[1]
|
|
583
|
-
|
|
584
|
-
hess = _logistic_grad_hess
|
|
585
|
-
warm_start_sag = {"coef": np.expand_dims(w0, axis=1)}
|
|
586
|
-
|
|
587
|
-
coefs = list()
|
|
588
|
-
n_iter = np.zeros(len(Cs), dtype=np.int32)
|
|
589
|
-
for i, C in enumerate(Cs):
|
|
590
|
-
if solver == "lbfgs":
|
|
591
|
-
if _dal_ready:
|
|
592
|
-
extra_args = daal_extra_args_func(
|
|
593
|
-
classes.size,
|
|
594
|
-
w0,
|
|
595
|
-
X,
|
|
596
|
-
target,
|
|
597
|
-
0.0,
|
|
598
|
-
1.0 / (2 * C * C_daal_multiplier * sw_sum),
|
|
599
|
-
fit_intercept,
|
|
600
|
-
value=True,
|
|
601
|
-
gradient=True,
|
|
602
|
-
hessian=False,
|
|
603
|
-
)
|
|
604
|
-
else:
|
|
605
|
-
if sklearn_check_version("1.1"):
|
|
606
|
-
l2_reg_strength = 1.0 / (C * sw_sum)
|
|
607
|
-
extra_args = (X, target, sample_weight, l2_reg_strength, n_threads)
|
|
608
|
-
else:
|
|
609
|
-
extra_args = (X, target, 1.0 / (C * sw_sum), sample_weight)
|
|
610
|
-
|
|
611
|
-
iprint = [-1, 50, 1, 100, 101][
|
|
612
|
-
np.searchsorted(np.array([0, 1, 2, 3]), verbose)
|
|
613
|
-
]
|
|
614
|
-
opt_res = optimize.minimize(
|
|
615
|
-
func,
|
|
616
|
-
w0,
|
|
617
|
-
method="L-BFGS-B",
|
|
618
|
-
jac=True,
|
|
619
|
-
args=extra_args,
|
|
620
|
-
options={
|
|
621
|
-
"maxiter": max_iter,
|
|
622
|
-
"maxls": 50,
|
|
623
|
-
"iprint": iprint,
|
|
624
|
-
"gtol": tol,
|
|
625
|
-
"ftol": 64 * np.finfo(float).eps,
|
|
626
|
-
},
|
|
627
|
-
)
|
|
628
|
-
n_iter_i = _check_optimize_result(
|
|
629
|
-
solver,
|
|
630
|
-
opt_res,
|
|
631
|
-
max_iter,
|
|
632
|
-
extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG,
|
|
633
|
-
)
|
|
634
|
-
w0, loss = opt_res.x, opt_res.fun
|
|
635
|
-
if _dal_ready and C_daal_multiplier == 2:
|
|
636
|
-
w0 /= 2
|
|
637
|
-
elif solver == "newton-cg":
|
|
638
|
-
if _dal_ready:
|
|
639
|
-
|
|
640
|
-
def make_ncg_funcs(f, value=False, gradient=False, hessian=False):
|
|
641
|
-
daal_penaltyL2 = 1.0 / (2 * C * C_daal_multiplier * sw_sum)
|
|
642
|
-
_obj_, X_, y_, n_samples = daal_extra_args_func(
|
|
643
|
-
classes.size,
|
|
644
|
-
w0,
|
|
645
|
-
X,
|
|
646
|
-
target,
|
|
647
|
-
0.0,
|
|
648
|
-
daal_penaltyL2,
|
|
649
|
-
fit_intercept,
|
|
650
|
-
value=value,
|
|
651
|
-
gradient=gradient,
|
|
652
|
-
hessian=hessian,
|
|
653
|
-
)
|
|
654
|
-
|
|
655
|
-
def _func_(x, *args):
|
|
656
|
-
return f(x, _obj_, *args)
|
|
657
|
-
|
|
658
|
-
return _func_, (X_, y_, n_samples, daal_penaltyL2)
|
|
659
|
-
|
|
660
|
-
loss_func, extra_args = make_ncg_funcs(func, value=True)
|
|
661
|
-
grad_func, _ = make_ncg_funcs(grad, gradient=True)
|
|
662
|
-
grad_hess_func, _ = make_ncg_funcs(hess, gradient=True)
|
|
663
|
-
w0, n_iter_i = _newton_cg(
|
|
664
|
-
grad_hess_func,
|
|
665
|
-
loss_func,
|
|
666
|
-
grad_func,
|
|
667
|
-
w0,
|
|
668
|
-
args=extra_args,
|
|
669
|
-
maxiter=max_iter,
|
|
670
|
-
tol=tol,
|
|
671
|
-
)
|
|
672
|
-
else:
|
|
673
|
-
if sklearn_check_version("1.1"):
|
|
674
|
-
l2_reg_strength = 1.0 / (C * sw_sum)
|
|
675
|
-
args = (X, target, sample_weight, l2_reg_strength, n_threads)
|
|
676
|
-
else:
|
|
677
|
-
args = (X, target, 1.0 / (C * sw_sum), sample_weight)
|
|
678
|
-
|
|
679
|
-
w0, n_iter_i = _newton_cg(
|
|
680
|
-
hess, func, grad, w0, args=args, maxiter=max_iter, tol=tol
|
|
681
|
-
)
|
|
682
|
-
elif solver == "liblinear":
|
|
683
|
-
(
|
|
684
|
-
coef_,
|
|
685
|
-
intercept_,
|
|
686
|
-
n_iter_i,
|
|
687
|
-
) = _fit_liblinear(
|
|
688
|
-
X,
|
|
689
|
-
target,
|
|
690
|
-
C,
|
|
691
|
-
fit_intercept,
|
|
692
|
-
intercept_scaling,
|
|
693
|
-
None,
|
|
694
|
-
penalty,
|
|
695
|
-
dual,
|
|
696
|
-
verbose,
|
|
697
|
-
max_iter,
|
|
698
|
-
tol,
|
|
699
|
-
random_state,
|
|
700
|
-
sample_weight=sample_weight,
|
|
701
|
-
)
|
|
702
|
-
if fit_intercept:
|
|
703
|
-
w0 = np.concatenate([coef_.ravel(), intercept_])
|
|
704
|
-
else:
|
|
705
|
-
w0 = coef_.ravel()
|
|
706
|
-
|
|
707
|
-
elif solver in ["sag", "saga"]:
|
|
708
|
-
if multi_class == "multinomial":
|
|
709
|
-
target = target.astype(X.dtype, copy=False)
|
|
710
|
-
loss = "multinomial"
|
|
711
|
-
else:
|
|
712
|
-
loss = "log"
|
|
713
|
-
# alpha is for L2-norm, beta is for L1-norm
|
|
714
|
-
if penalty == "l1":
|
|
715
|
-
alpha = 0.0
|
|
716
|
-
beta = 1.0 / C
|
|
717
|
-
elif penalty == "l2":
|
|
718
|
-
alpha = 1.0 / C
|
|
719
|
-
beta = 0.0
|
|
720
|
-
else: # Elastic-Net penalty
|
|
721
|
-
alpha = (1.0 / C) * (1 - l1_ratio)
|
|
722
|
-
beta = (1.0 / C) * l1_ratio
|
|
723
|
-
|
|
724
|
-
w0, n_iter_i, warm_start_sag = sag_solver(
|
|
725
|
-
X,
|
|
726
|
-
target,
|
|
727
|
-
sample_weight,
|
|
728
|
-
loss,
|
|
729
|
-
alpha,
|
|
730
|
-
beta,
|
|
731
|
-
max_iter,
|
|
732
|
-
tol,
|
|
733
|
-
verbose,
|
|
734
|
-
random_state,
|
|
735
|
-
False,
|
|
736
|
-
max_squared_sum,
|
|
737
|
-
warm_start_sag,
|
|
738
|
-
is_saga=(solver == "saga"),
|
|
739
|
-
)
|
|
740
|
-
|
|
741
|
-
else:
|
|
742
|
-
raise ValueError(
|
|
743
|
-
"solver must be one of {'liblinear', 'lbfgs', "
|
|
744
|
-
"'newton-cg', 'sag'}, got '%s' instead" % solver
|
|
745
|
-
)
|
|
746
|
-
|
|
747
|
-
if multi_class == "multinomial":
|
|
748
|
-
if _dal_ready:
|
|
749
|
-
if classes.size == 2:
|
|
750
|
-
multi_w0 = w0[np.newaxis, :]
|
|
751
|
-
else:
|
|
752
|
-
multi_w0 = np.reshape(w0, (classes.size, -1))
|
|
753
|
-
else:
|
|
754
|
-
n_classes = max(2, classes.size)
|
|
755
|
-
if sklearn_check_version("1.1"):
|
|
756
|
-
if solver in ["lbfgs", "newton-cg"]:
|
|
757
|
-
multi_w0 = np.reshape(w0, (n_classes, -1), order="F")
|
|
758
|
-
else:
|
|
759
|
-
multi_w0 = w0
|
|
760
|
-
else:
|
|
761
|
-
multi_w0 = np.reshape(w0, (n_classes, -1))
|
|
762
|
-
if n_classes == 2:
|
|
763
|
-
multi_w0 = multi_w0[1][np.newaxis, :]
|
|
764
|
-
coefs.append(multi_w0.copy())
|
|
765
|
-
else:
|
|
766
|
-
coefs.append(w0.copy())
|
|
767
|
-
|
|
768
|
-
n_iter[i] = n_iter_i
|
|
769
|
-
|
|
770
|
-
if _dal_ready:
|
|
771
|
-
if fit_intercept:
|
|
772
|
-
for i, ci in enumerate(coefs):
|
|
773
|
-
coefs[i] = np.roll(ci, -1, -1)
|
|
774
|
-
else:
|
|
775
|
-
for i, ci in enumerate(coefs):
|
|
776
|
-
coefs[i] = np.delete(ci, 0, axis=-1)
|
|
777
|
-
|
|
778
|
-
_patching_status.write_log()
|
|
779
|
-
|
|
780
|
-
return np.array(coefs), np.array(Cs), n_iter
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
def daal4py_fit(self, X, y, sample_weight=None):
|
|
784
|
-
which, what = logistic_module, "_logistic_regression_path"
|
|
785
|
-
replacer = logistic_regression_path
|
|
786
|
-
descriptor = getattr(which, what, None)
|
|
787
|
-
setattr(which, what, replacer)
|
|
788
|
-
try:
|
|
789
|
-
clf = LogisticRegression_original.fit(self, X, y, sample_weight)
|
|
790
|
-
finally:
|
|
791
|
-
setattr(which, what, descriptor)
|
|
792
|
-
return clf
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
def daal4py_predict(self, X, resultsToEvaluate):
|
|
796
|
-
check_is_fitted(self)
|
|
797
|
-
check_feature_names(self, X, reset=False)
|
|
798
|
-
X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
|
|
799
|
-
try:
|
|
800
|
-
fptype = getFPType(X)
|
|
801
|
-
except ValueError:
|
|
802
|
-
fptype = None
|
|
803
|
-
|
|
804
|
-
if resultsToEvaluate == "computeClassLabels":
|
|
805
|
-
_function_name = "predict"
|
|
806
|
-
elif resultsToEvaluate == "computeClassProbabilities":
|
|
807
|
-
_function_name = "predict_proba"
|
|
808
|
-
elif resultsToEvaluate == "computeClassLogProbabilities":
|
|
809
|
-
_function_name = "predict_log_proba"
|
|
810
|
-
else:
|
|
811
|
-
raise ValueError(
|
|
812
|
-
"resultsToEvaluate must be in [computeClassLabels, \
|
|
813
|
-
computeClassProbabilities, computeClassLogProbabilities]"
|
|
814
|
-
)
|
|
815
|
-
|
|
816
|
-
_patching_status = PatchingConditionsChain(
|
|
817
|
-
f"sklearn.linear_model.LogisticRegression.{_function_name}"
|
|
818
|
-
)
|
|
819
|
-
if _function_name != "predict":
|
|
820
|
-
_patching_status.and_conditions(
|
|
821
|
-
[
|
|
822
|
-
(
|
|
823
|
-
self.classes_.size == 2
|
|
824
|
-
or logistic_module._check_multi_class(
|
|
825
|
-
self.multi_class if self.multi_class != "deprecated" else "auto",
|
|
826
|
-
self.solver,
|
|
827
|
-
self.classes_.size,
|
|
828
|
-
)
|
|
829
|
-
!= "ovr",
|
|
830
|
-
f"selected multiclass option is not supported for n_classes > 2.",
|
|
831
|
-
),
|
|
832
|
-
],
|
|
833
|
-
)
|
|
834
|
-
|
|
835
|
-
_dal_ready = _patching_status.and_conditions(
|
|
836
|
-
[
|
|
837
|
-
(not sparse.issparse(X), "X is sparse. Sparse input is not supported."),
|
|
838
|
-
(
|
|
839
|
-
not sparse.issparse(self.coef_),
|
|
840
|
-
"self.coef_ is sparse. Sparse coefficients are not supported.",
|
|
841
|
-
),
|
|
842
|
-
(fptype is not None, "Unable to get dtype."),
|
|
843
|
-
]
|
|
844
|
-
)
|
|
845
|
-
|
|
846
|
-
_patching_status.write_log()
|
|
847
|
-
if _dal_ready:
|
|
848
|
-
n_features = self.coef_.shape[1]
|
|
849
|
-
if X.shape[1] != n_features:
|
|
850
|
-
raise ValueError(
|
|
851
|
-
f"X has {X.shape[1]} features, "
|
|
852
|
-
f"but LogisticRegression is expecting {n_features} features as input"
|
|
853
|
-
)
|
|
854
|
-
builder = d4p.logistic_regression_model_builder(X.shape[1], len(self.classes_))
|
|
855
|
-
builder.set_beta(self.coef_, self.intercept_)
|
|
856
|
-
predict = d4p.logistic_regression_prediction(
|
|
857
|
-
nClasses=len(self.classes_),
|
|
858
|
-
fptype=fptype,
|
|
859
|
-
method="defaultDense",
|
|
860
|
-
resultsToEvaluate=resultsToEvaluate,
|
|
861
|
-
)
|
|
862
|
-
res = predict.compute(X, builder.model)
|
|
863
|
-
if resultsToEvaluate == "computeClassLabels":
|
|
864
|
-
res = res.prediction
|
|
865
|
-
if (
|
|
866
|
-
not np.array_equal(self.classes_, np.arange(0, len(self.classes_)))
|
|
867
|
-
or self.classes_.dtype != X.dtype
|
|
868
|
-
):
|
|
869
|
-
res = self.classes_.take(np.asarray(res, dtype=np.intp))
|
|
870
|
-
elif resultsToEvaluate == "computeClassProbabilities":
|
|
871
|
-
res = res.probabilities
|
|
872
|
-
elif resultsToEvaluate == "computeClassLogProbabilities":
|
|
873
|
-
res = res.logProbabilities
|
|
874
|
-
else:
|
|
875
|
-
raise ValueError(
|
|
876
|
-
"resultsToEvaluate must be in [computeClassLabels, \
|
|
877
|
-
computeClassProbabilities, computeClassLogProbabilities]"
|
|
878
|
-
)
|
|
879
|
-
if res.shape[1] == 1:
|
|
880
|
-
res = np.ravel(res)
|
|
881
|
-
return res
|
|
882
|
-
|
|
883
|
-
if resultsToEvaluate == "computeClassLabels":
|
|
884
|
-
return LogisticRegression_original.predict(self, X)
|
|
885
|
-
if resultsToEvaluate == "computeClassProbabilities":
|
|
886
|
-
return LogisticRegression_original.predict_proba(self, X)
|
|
887
|
-
if resultsToEvaluate == "computeClassLogProbabilities":
|
|
888
|
-
return LogisticRegression_original.predict_log_proba(self, X)
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
def logistic_regression_path(
|
|
892
|
-
X,
|
|
893
|
-
y,
|
|
894
|
-
pos_class=None,
|
|
895
|
-
Cs=10,
|
|
896
|
-
fit_intercept=True,
|
|
897
|
-
max_iter=100,
|
|
898
|
-
tol=1e-4,
|
|
899
|
-
verbose=0,
|
|
900
|
-
solver="lbfgs",
|
|
901
|
-
coef=None,
|
|
902
|
-
class_weight=None,
|
|
903
|
-
dual=False,
|
|
904
|
-
penalty="l2",
|
|
905
|
-
intercept_scaling=1.0,
|
|
906
|
-
multi_class="auto",
|
|
907
|
-
random_state=None,
|
|
908
|
-
check_input=True,
|
|
909
|
-
max_squared_sum=None,
|
|
910
|
-
sample_weight=None,
|
|
911
|
-
l1_ratio=None,
|
|
912
|
-
n_threads=1,
|
|
913
|
-
):
|
|
914
|
-
if sklearn_check_version("1.1"):
|
|
915
|
-
return __logistic_regression_path(
|
|
916
|
-
X,
|
|
917
|
-
y,
|
|
918
|
-
pos_class=pos_class,
|
|
919
|
-
Cs=Cs,
|
|
920
|
-
fit_intercept=fit_intercept,
|
|
921
|
-
max_iter=max_iter,
|
|
922
|
-
tol=tol,
|
|
923
|
-
verbose=verbose,
|
|
924
|
-
solver=solver,
|
|
925
|
-
coef=coef,
|
|
926
|
-
class_weight=class_weight,
|
|
927
|
-
dual=dual,
|
|
928
|
-
penalty=penalty,
|
|
929
|
-
intercept_scaling=intercept_scaling,
|
|
930
|
-
multi_class=multi_class,
|
|
931
|
-
random_state=random_state,
|
|
932
|
-
check_input=check_input,
|
|
933
|
-
max_squared_sum=max_squared_sum,
|
|
934
|
-
sample_weight=sample_weight,
|
|
935
|
-
l1_ratio=l1_ratio,
|
|
936
|
-
n_threads=n_threads,
|
|
937
|
-
)
|
|
938
|
-
return __logistic_regression_path(
|
|
939
|
-
X,
|
|
940
|
-
y,
|
|
941
|
-
pos_class=pos_class,
|
|
942
|
-
Cs=Cs,
|
|
943
|
-
fit_intercept=fit_intercept,
|
|
944
|
-
max_iter=max_iter,
|
|
945
|
-
tol=tol,
|
|
946
|
-
verbose=verbose,
|
|
947
|
-
solver=solver,
|
|
948
|
-
coef=coef,
|
|
949
|
-
class_weight=class_weight,
|
|
950
|
-
dual=dual,
|
|
951
|
-
penalty=penalty,
|
|
952
|
-
intercept_scaling=intercept_scaling,
|
|
953
|
-
multi_class=multi_class,
|
|
954
|
-
random_state=random_state,
|
|
955
|
-
check_input=check_input,
|
|
956
|
-
max_squared_sum=max_squared_sum,
|
|
957
|
-
sample_weight=sample_weight,
|
|
958
|
-
l1_ratio=l1_ratio,
|
|
959
|
-
)
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
@control_n_jobs(
|
|
963
|
-
decorated_methods=["fit", "predict", "predict_proba", "predict_log_proba"]
|
|
964
|
-
)
|
|
965
|
-
class LogisticRegression(LogisticRegression_original):
|
|
966
|
-
__doc__ = LogisticRegression_original.__doc__
|
|
967
|
-
|
|
968
|
-
if sklearn_check_version("1.2"):
|
|
969
|
-
_parameter_constraints: dict = {
|
|
970
|
-
**LogisticRegression_original._parameter_constraints
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
def __init__(
|
|
974
|
-
self,
|
|
975
|
-
penalty="l2",
|
|
976
|
-
dual=False,
|
|
977
|
-
tol=1e-4,
|
|
978
|
-
C=1.0,
|
|
979
|
-
fit_intercept=True,
|
|
980
|
-
intercept_scaling=1,
|
|
981
|
-
class_weight=None,
|
|
982
|
-
random_state=None,
|
|
983
|
-
solver="lbfgs",
|
|
984
|
-
max_iter=100,
|
|
985
|
-
multi_class="auto",
|
|
986
|
-
verbose=0,
|
|
987
|
-
warm_start=False,
|
|
988
|
-
n_jobs=None,
|
|
989
|
-
l1_ratio=None,
|
|
990
|
-
):
|
|
991
|
-
self.penalty = penalty
|
|
992
|
-
self.dual = dual
|
|
993
|
-
self.tol = tol
|
|
994
|
-
self.C = C
|
|
995
|
-
self.fit_intercept = fit_intercept
|
|
996
|
-
self.intercept_scaling = intercept_scaling
|
|
997
|
-
self.class_weight = class_weight
|
|
998
|
-
self.random_state = random_state
|
|
999
|
-
self.solver = solver
|
|
1000
|
-
self.max_iter = max_iter
|
|
1001
|
-
self.multi_class = multi_class
|
|
1002
|
-
self.verbose = verbose
|
|
1003
|
-
self.warm_start = warm_start
|
|
1004
|
-
self.n_jobs = n_jobs
|
|
1005
|
-
self.l1_ratio = l1_ratio
|
|
1006
|
-
|
|
1007
|
-
def fit(self, X, y, sample_weight=None):
|
|
1008
|
-
check_feature_names(self, X, reset=True)
|
|
1009
|
-
if sklearn_check_version("1.2"):
|
|
1010
|
-
self._validate_params()
|
|
1011
|
-
return daal4py_fit(self, X, y, sample_weight)
|
|
1012
|
-
|
|
1013
|
-
def predict(self, X):
|
|
1014
|
-
return daal4py_predict(self, X, "computeClassLabels")
|
|
1015
|
-
|
|
1016
|
-
def predict_log_proba(self, X):
|
|
1017
|
-
return daal4py_predict(self, X, "computeClassLogProbabilities")
|
|
1018
|
-
|
|
1019
|
-
def predict_proba(self, X):
|
|
1020
|
-
return daal4py_predict(self, X, "computeClassProbabilities")
|
|
1021
|
-
|
|
1022
|
-
fit.__doc__ = LogisticRegression_original.fit.__doc__
|
|
1023
|
-
predict.__doc__ = LogisticRegression_original.predict.__doc__
|
|
1024
|
-
predict_log_proba.__doc__ = LogisticRegression_original.predict_log_proba.__doc__
|
|
1025
|
-
predict_proba.__doc__ = LogisticRegression_original.predict_proba.__doc__
|