scikit-learn-intelex 2025.4.0__py310-none-win_amd64.whl → 2025.6.0__py310-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.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__main__.py +1 -1
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +83 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +922 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +217 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py → scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +129 -106
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +6 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +6 -38
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +12 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +2 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +3 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +41 -153
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +13 -15
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +7 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +22 -57
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +3 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +8 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +30 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +3 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +6 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +4 -7
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +3 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +4 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +8 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +82 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/__init__.py +125 -83
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_config.py +27 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_device_offload.py +86 -82
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +21 -17
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +44 -39
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +35 -42
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +83 -74
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +57 -24
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/common/_backend.py +233 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +27 -12
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +27 -19
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +35 -32
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +6 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +179 -78
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -25
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +28 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +130 -93
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +76 -57
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +63 -37
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +96 -68
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +156 -119
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +5 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +21 -18
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/svm.py +80 -32
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +10 -9
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +10 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +8 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +5 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +10 -10
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +3 -13
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +14 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +16 -1
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +161 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +3 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/validation.py +47 -16
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__init__.py +3 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_config.py +48 -6
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +194 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_utils.py +36 -43
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +14 -20
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +31 -40
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +10 -11
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +20 -19
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +49 -62
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +9 -20
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +111 -366
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +18 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +41 -126
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +37 -85
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +52 -47
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +45 -84
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +17 -20
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +60 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +8 -6
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +1 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +1 -1
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +1 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +7 -54
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +6 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +31 -73
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +30 -70
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +5 -13
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +6 -19
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +45 -62
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +10 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +8 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +13 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +10 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +7 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +13 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +9 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +7 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +25 -8
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +6 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -3
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +12 -5
- {scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb → scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors}/__init__.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +27 -5
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +15 -28
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +36 -129
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +10 -22
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +34 -127
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +10 -22
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +51 -11
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +62 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +18 -24
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -4
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +89 -60
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +2 -2
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +8 -22
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/METADATA +2 -3
- scikit_learn_intelex-2025.6.0.dist-info/RECORD +257 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -424
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_base.py +0 -38
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_policy.py +0 -55
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -30
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -76
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/__init__.py +0 -49
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -126
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -25
- scikit_learn_intelex-2025.4.0.dist-info/RECORD +0 -259
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.4.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.4.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/top_level.txt +0 -0
scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Copyright contributors to the oneDAL project
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
import re
|
|
15
|
+
import sys
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
|
|
19
|
+
from .. import (
|
|
20
|
+
classifier_prediction_result,
|
|
21
|
+
logistic_regression_model_builder,
|
|
22
|
+
logistic_regression_prediction,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
_docstring_X = """Parameters
|
|
26
|
+
----------
|
|
27
|
+
X : array-like(n_samples, n_features)
|
|
28
|
+
The features / covariates for each row. Can be passed as either a NumPy array
|
|
29
|
+
or as a sparse CSR array/matrix from SciPy. For faster results, use the same
|
|
30
|
+
dtype as what this object was built for."""
|
|
31
|
+
if (sys.version_info.major == 3) and (sys.version_info.minor <= 12):
|
|
32
|
+
_docstring_X = re.sub("^", " " * 8, _docstring_X, flags=re.MULTILINE).strip()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class LogisticDAALModel:
|
|
36
|
+
"""
|
|
37
|
+
Logistic Regression Predictor
|
|
38
|
+
|
|
39
|
+
Creates a logistic regression or multionomial logistic regression model object
|
|
40
|
+
which can calculate fast predictions of different types (classes, probabilities,
|
|
41
|
+
logarithms of probabilities), from fitted coefficients and intercepts obtained
|
|
42
|
+
elsewhere (such as from :obj:`sklearn.linear_model.LogisticRegression`), making
|
|
43
|
+
the predictions either in double (``np.float64``) or single (``np.float32``)
|
|
44
|
+
precision.
|
|
45
|
+
|
|
46
|
+
See Also
|
|
47
|
+
--------
|
|
48
|
+
:obj:`sklearn.linear_model.LogisticRegression`, :obj:`sklearn.linear_model.SGDClassifier`,
|
|
49
|
+
:obj:`daal4py.classifier_prediction_result`.
|
|
50
|
+
|
|
51
|
+
Parameters
|
|
52
|
+
----------
|
|
53
|
+
coefs : array(n_classes, n_features) or array(n_features,)
|
|
54
|
+
The fitted model coefficients. Note that only dense arrays are supported.
|
|
55
|
+
In the case of binary classification, can be passed as a 1D array or as a
|
|
56
|
+
2D array having a single row.
|
|
57
|
+
intercepts: array(n_classes) or float
|
|
58
|
+
The fitted intercepts. In the case of binary classification, must be passed
|
|
59
|
+
as either a scalar, or as a 1D array with a single entry.
|
|
60
|
+
dtype : np.float32 or np.float64
|
|
61
|
+
The dtype to use for the object.
|
|
62
|
+
|
|
63
|
+
Attributes
|
|
64
|
+
----------
|
|
65
|
+
n_classes_ : int
|
|
66
|
+
Number of classes in the model.
|
|
67
|
+
n_features_in_ : int
|
|
68
|
+
Number of features in the model.
|
|
69
|
+
dtype_ : np.dtype
|
|
70
|
+
The dtype of the model
|
|
71
|
+
coef_ : array(n_classes, n_features)
|
|
72
|
+
The model coefficients
|
|
73
|
+
intercept_ : array(n_classes)
|
|
74
|
+
The model intercepts
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
def __init__(self, coefs, intercepts, dtype=np.float64):
|
|
78
|
+
assert dtype in [np.float32, np.float64]
|
|
79
|
+
coefs = np.require(coefs, requirements=["ENSUREARRAY"])
|
|
80
|
+
if len(coefs.shape) == 1:
|
|
81
|
+
coefs = coefs.reshape((1, -1))
|
|
82
|
+
self.n_features_in_ = coefs.shape[1]
|
|
83
|
+
self.n_classes_ = max(2, coefs.shape[0])
|
|
84
|
+
intercepts = np.require(intercepts, requirements=["ENSUREARRAY"]).reshape(-1)
|
|
85
|
+
if self.n_classes_ == 2:
|
|
86
|
+
assert len(intercepts) == 1
|
|
87
|
+
else:
|
|
88
|
+
assert intercepts.shape[0] == coefs.shape[0]
|
|
89
|
+
self._fptype = "float" if dtype == np.float32 else "double"
|
|
90
|
+
self.dtype_ = dtype
|
|
91
|
+
if coefs.dtype != self.dtype_:
|
|
92
|
+
coefs = coefs.astype(self.dtype_)
|
|
93
|
+
if intercepts.dtype != self.dtype_:
|
|
94
|
+
intercepts = intercepts.astype(self.dtype_)
|
|
95
|
+
builder = logistic_regression_model_builder(
|
|
96
|
+
n_classes=self.n_classes_, n_features=coefs.shape[1]
|
|
97
|
+
)
|
|
98
|
+
builder.set_beta(coefs, intercepts)
|
|
99
|
+
self._model = builder.model
|
|
100
|
+
self._alg_pred_class = logistic_regression_prediction(
|
|
101
|
+
nClasses=self.n_classes_,
|
|
102
|
+
fptype=self._fptype,
|
|
103
|
+
resultsToEvaluate="computeClassLabels",
|
|
104
|
+
)
|
|
105
|
+
self._alg_pred_prob = logistic_regression_prediction(
|
|
106
|
+
nClasses=self.n_classes_,
|
|
107
|
+
fptype=self._fptype,
|
|
108
|
+
resultsToEvaluate="computeClassProbabilities",
|
|
109
|
+
)
|
|
110
|
+
self._alg_pred_logprob = logistic_regression_prediction(
|
|
111
|
+
nClasses=self.n_classes_,
|
|
112
|
+
fptype=self._fptype,
|
|
113
|
+
resultsToEvaluate="computeClassLogProbabilities",
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
@property
|
|
117
|
+
def coef_(self):
|
|
118
|
+
return self._model.Beta[:, 1:]
|
|
119
|
+
|
|
120
|
+
@property
|
|
121
|
+
def intercept_(self):
|
|
122
|
+
return self._model.Beta[:, 0]
|
|
123
|
+
|
|
124
|
+
def predict(self, X) -> np.ndarray:
|
|
125
|
+
"""
|
|
126
|
+
Predict most probable class
|
|
127
|
+
|
|
128
|
+
%docstring_X%
|
|
129
|
+
|
|
130
|
+
Returns
|
|
131
|
+
-------
|
|
132
|
+
classes : array(n_samples,)
|
|
133
|
+
The most probable class, as integer indexes
|
|
134
|
+
"""
|
|
135
|
+
return (
|
|
136
|
+
self._alg_pred_class.compute(X, self._model)
|
|
137
|
+
.prediction.reshape(-1)
|
|
138
|
+
.astype(int)
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
predict.__doc__ = predict.__doc__.replace(r"%docstring_X%", _docstring_X)
|
|
142
|
+
|
|
143
|
+
def predict_proba(self, X) -> np.ndarray:
|
|
144
|
+
"""
|
|
145
|
+
Predict probabilities of belonging to each class
|
|
146
|
+
|
|
147
|
+
%docstring_X%
|
|
148
|
+
|
|
149
|
+
Returns
|
|
150
|
+
-------
|
|
151
|
+
proba : array(n_samples, n_classes)
|
|
152
|
+
The predicted probabilities for each class.
|
|
153
|
+
"""
|
|
154
|
+
return self._alg_pred_prob.compute(X, self._model).probabilities
|
|
155
|
+
|
|
156
|
+
predict_proba.__doc__ = predict_proba.__doc__.replace(r"%docstring_X%", _docstring_X)
|
|
157
|
+
|
|
158
|
+
def predict_log_proba(self, X) -> np.ndarray:
|
|
159
|
+
"""
|
|
160
|
+
Predict log-probabilities of belonging to each class
|
|
161
|
+
|
|
162
|
+
%docstring_X%
|
|
163
|
+
|
|
164
|
+
Returns
|
|
165
|
+
-------
|
|
166
|
+
log_proba : array(n_samples, n_classes)
|
|
167
|
+
The logarithms of the predicted probabilities for each class.
|
|
168
|
+
"""
|
|
169
|
+
return self._alg_pred_logprob.compute(X, self._model).logProbabilities
|
|
170
|
+
|
|
171
|
+
predict_log_proba.__doc__ = predict_log_proba.__doc__.replace(
|
|
172
|
+
r"%docstring_X%", _docstring_X
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
def predict_multiple(
|
|
176
|
+
self, X, classes: bool = True, proba: bool = True, log_proba: bool = True
|
|
177
|
+
) -> classifier_prediction_result:
|
|
178
|
+
"""
|
|
179
|
+
Make multiple prediction types at once
|
|
180
|
+
|
|
181
|
+
A method that can output the results from ``predict``, ``predict_proba``, and ``predict_log_proba``
|
|
182
|
+
all together in the same call more efficiently than computing them independently.
|
|
183
|
+
|
|
184
|
+
%docstring_X%
|
|
185
|
+
classes : bool
|
|
186
|
+
Whether to output class predictions (what is obtained from :meth:`predict`).
|
|
187
|
+
proba : bool
|
|
188
|
+
Whether to output per-class probability predictions (what is obtained from
|
|
189
|
+
:meth:`predict_proba`).
|
|
190
|
+
log_proba : bool
|
|
191
|
+
Whether to output per-class logarithms of probabilities (what is obtained
|
|
192
|
+
from :meth:`predict_log_proba`).
|
|
193
|
+
|
|
194
|
+
Returns
|
|
195
|
+
-------
|
|
196
|
+
predictions : classifier_prediction_result
|
|
197
|
+
An object of class :obj:`daal4py.classifier_prediction_result` with the requested
|
|
198
|
+
prediction types for the same ``X`` data.
|
|
199
|
+
"""
|
|
200
|
+
pred_request = "|".join(
|
|
201
|
+
(["computeClassLabels"] if classes else [])
|
|
202
|
+
+ (["computeClassProbabilities"] if proba else [])
|
|
203
|
+
+ (["computeClassLogProbabilities"] if log_proba else [])
|
|
204
|
+
)
|
|
205
|
+
if not len(pred_request):
|
|
206
|
+
raise ValueError(
|
|
207
|
+
"Must request at least one of 'classes', 'proba', 'log_proba'."
|
|
208
|
+
)
|
|
209
|
+
return logistic_regression_prediction(
|
|
210
|
+
nClasses=self.n_classes_,
|
|
211
|
+
fptype=self._fptype,
|
|
212
|
+
resultsToEvaluate=pred_request,
|
|
213
|
+
).compute(X, self._model)
|
|
214
|
+
|
|
215
|
+
predict_multiple.__doc__ = predict_multiple.__doc__.replace(
|
|
216
|
+
r"%docstring_X%", _docstring_X
|
|
217
|
+
)
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
# daal4py Model builders API
|
|
18
18
|
|
|
19
|
+
import warnings
|
|
19
20
|
from typing import Literal, Optional
|
|
20
21
|
|
|
21
22
|
import numpy as np
|
|
@@ -32,6 +33,15 @@ except (ImportError, ModuleNotFoundError):
|
|
|
32
33
|
|
|
33
34
|
from sklearn.utils.metaestimators import available_if
|
|
34
35
|
|
|
36
|
+
from .gbt_convertors import (
|
|
37
|
+
get_catboost_params,
|
|
38
|
+
get_gbt_model_from_catboost,
|
|
39
|
+
get_gbt_model_from_lightgbm,
|
|
40
|
+
get_gbt_model_from_xgboost,
|
|
41
|
+
get_lightgbm_params,
|
|
42
|
+
get_xgboost_params,
|
|
43
|
+
)
|
|
44
|
+
|
|
35
45
|
|
|
36
46
|
def parse_dtype(dt):
|
|
37
47
|
if dt == np.double:
|
|
@@ -82,21 +92,25 @@ class GBTDAALBaseModel:
|
|
|
82
92
|
def _get_params_from_catboost(self, params):
|
|
83
93
|
if "class_params" in params["model_info"]:
|
|
84
94
|
self.n_classes_ = len(params["model_info"]["class_params"]["class_to_label"])
|
|
95
|
+
else:
|
|
96
|
+
self.n_classes_ = 1
|
|
85
97
|
self.n_features_in_ = len(params["features_info"]["float_features"])
|
|
86
98
|
|
|
87
99
|
def _convert_model_from_lightgbm(self, booster):
|
|
88
|
-
lgbm_params =
|
|
89
|
-
self.daal_model_ =
|
|
100
|
+
lgbm_params = get_lightgbm_params(booster)
|
|
101
|
+
self.daal_model_ = get_gbt_model_from_lightgbm(booster, lgbm_params)
|
|
90
102
|
self._get_params_from_lightgbm(lgbm_params)
|
|
103
|
+
self.supports_shap_ = self.n_classes_ < 3
|
|
91
104
|
|
|
92
105
|
def _convert_model_from_xgboost(self, booster):
|
|
93
|
-
xgb_params =
|
|
94
|
-
self.daal_model_ =
|
|
106
|
+
xgb_params = get_xgboost_params(booster)
|
|
107
|
+
self.daal_model_ = get_gbt_model_from_xgboost(booster, xgb_params)
|
|
95
108
|
self._get_params_from_xgboost(xgb_params)
|
|
109
|
+
self.supports_shap_ = self.n_classes_ < 3
|
|
96
110
|
|
|
97
111
|
def _convert_model_from_catboost(self, booster):
|
|
98
|
-
catboost_params =
|
|
99
|
-
self.daal_model_ =
|
|
112
|
+
catboost_params = get_catboost_params(booster)
|
|
113
|
+
self.daal_model_, self.supports_shap_ = get_gbt_model_from_catboost(booster)
|
|
100
114
|
self._get_params_from_catboost(catboost_params)
|
|
101
115
|
|
|
102
116
|
def _convert_model(self, model):
|
|
@@ -108,85 +122,31 @@ class GBTDAALBaseModel:
|
|
|
108
122
|
|
|
109
123
|
# Build GBTDAALClassifier from LightGBM
|
|
110
124
|
if (submodule_name, class_name) == ("lightgbm.sklearn", "LGBMClassifier"):
|
|
111
|
-
|
|
112
|
-
self._convert_model_from_lightgbm(model.booster_)
|
|
113
|
-
else:
|
|
114
|
-
raise TypeError(
|
|
115
|
-
f"Only GBTDAALClassifier can be created from\
|
|
116
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
117
|
-
)
|
|
125
|
+
self._convert_model_from_lightgbm(model.booster_)
|
|
118
126
|
# Build GBTDAALClassifier from XGBoost
|
|
119
127
|
elif (submodule_name, class_name) == ("xgboost.sklearn", "XGBClassifier"):
|
|
120
|
-
|
|
121
|
-
self._convert_model_from_xgboost(model.get_booster())
|
|
122
|
-
else:
|
|
123
|
-
raise TypeError(
|
|
124
|
-
f"Only GBTDAALClassifier can be created from\
|
|
125
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
126
|
-
)
|
|
128
|
+
self._convert_model_from_xgboost(model.get_booster())
|
|
127
129
|
# Build GBTDAALClassifier from CatBoost
|
|
128
130
|
elif (submodule_name, class_name) == ("catboost.core", "CatBoostClassifier"):
|
|
129
|
-
|
|
130
|
-
self._convert_model_from_catboost(model)
|
|
131
|
-
else:
|
|
132
|
-
raise TypeError(
|
|
133
|
-
f"Only GBTDAALClassifier can be created from\
|
|
134
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
135
|
-
)
|
|
131
|
+
self._convert_model_from_catboost(model)
|
|
136
132
|
# Build GBTDAALRegressor from LightGBM
|
|
137
133
|
elif (submodule_name, class_name) == ("lightgbm.sklearn", "LGBMRegressor"):
|
|
138
|
-
|
|
139
|
-
self._convert_model_from_lightgbm(model.booster_)
|
|
140
|
-
else:
|
|
141
|
-
raise TypeError(
|
|
142
|
-
f"Only GBTDAALRegressor can be created from\
|
|
143
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
144
|
-
)
|
|
134
|
+
self._convert_model_from_lightgbm(model.booster_)
|
|
145
135
|
# Build GBTDAALRegressor from XGBoost
|
|
146
136
|
elif (submodule_name, class_name) == ("xgboost.sklearn", "XGBRegressor"):
|
|
147
|
-
|
|
148
|
-
self._convert_model_from_xgboost(model.get_booster())
|
|
149
|
-
else:
|
|
150
|
-
raise TypeError(
|
|
151
|
-
f"Only GBTDAALRegressor can be created from\
|
|
152
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
153
|
-
)
|
|
137
|
+
self._convert_model_from_xgboost(model.get_booster())
|
|
154
138
|
# Build GBTDAALRegressor from CatBoost
|
|
155
139
|
elif (submodule_name, class_name) == ("catboost.core", "CatBoostRegressor"):
|
|
156
|
-
|
|
157
|
-
self._convert_model_from_catboost(model)
|
|
158
|
-
else:
|
|
159
|
-
raise TypeError(
|
|
160
|
-
f"Only GBTDAALRegressor can be created from\
|
|
161
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
162
|
-
)
|
|
140
|
+
self._convert_model_from_catboost(model)
|
|
163
141
|
# Build GBTDAALModel from LightGBM
|
|
164
142
|
elif (submodule_name, class_name) == ("lightgbm.basic", "Booster"):
|
|
165
|
-
|
|
166
|
-
self._convert_model_from_lightgbm(model)
|
|
167
|
-
else:
|
|
168
|
-
raise TypeError(
|
|
169
|
-
f"Only GBTDAALModel can be created from\
|
|
170
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
171
|
-
)
|
|
143
|
+
self._convert_model_from_lightgbm(model)
|
|
172
144
|
# Build GBTDAALModel from XGBoost
|
|
173
145
|
elif (submodule_name, class_name) == ("xgboost.core", "Booster"):
|
|
174
|
-
|
|
175
|
-
self._convert_model_from_xgboost(model)
|
|
176
|
-
else:
|
|
177
|
-
raise TypeError(
|
|
178
|
-
f"Only GBTDAALModel can be created from\
|
|
179
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
180
|
-
)
|
|
146
|
+
self._convert_model_from_xgboost(model)
|
|
181
147
|
# Build GBTDAALModel from CatBoost
|
|
182
148
|
elif (submodule_name, class_name) == ("catboost.core", "CatBoost"):
|
|
183
|
-
|
|
184
|
-
self._convert_model_from_catboost(model)
|
|
185
|
-
else:
|
|
186
|
-
raise TypeError(
|
|
187
|
-
f"Only GBTDAALModel can be created from\
|
|
188
|
-
{submodule_name}.{class_name} (got {self_class_name})"
|
|
189
|
-
)
|
|
149
|
+
self._convert_model_from_catboost(model)
|
|
190
150
|
else:
|
|
191
151
|
raise TypeError(f"Unknown model format {submodule_name}.{class_name}")
|
|
192
152
|
|
|
@@ -294,21 +254,17 @@ class GBTDAALBaseModel:
|
|
|
294
254
|
X, fptype, pred_contribs, pred_interactions
|
|
295
255
|
)
|
|
296
256
|
except TypeError as e:
|
|
297
|
-
if "unexpected keyword argument 'resultsToCompute'" in str(e)
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
257
|
+
if "unexpected keyword argument 'resultsToCompute'" in str(e) and (
|
|
258
|
+
pred_contribs or pred_interactions
|
|
259
|
+
):
|
|
260
|
+
# SHAP values requested, but not supported by this version
|
|
261
|
+
raise TypeError(
|
|
262
|
+
f"{'pred_contribs' if pred_contribs else 'pred_interactions'} not supported by this version of daalp4y"
|
|
263
|
+
) from e
|
|
303
264
|
else:
|
|
304
265
|
# unknown type error
|
|
305
266
|
raise
|
|
306
267
|
|
|
307
|
-
# fallback to calculation without `resultsToCompute`
|
|
308
|
-
predict_algo = d4p.gbt_regression_prediction(fptype=fptype)
|
|
309
|
-
predict_result = predict_algo.compute(X, self.daal_model_)
|
|
310
|
-
return predict_result.prediction.ravel()
|
|
311
|
-
|
|
312
268
|
def _predict_regression_with_results_to_compute(
|
|
313
269
|
self, X, fptype, pred_contribs=False, pred_interactions=False
|
|
314
270
|
):
|
|
@@ -335,43 +291,110 @@ class GBTDAALBaseModel:
|
|
|
335
291
|
|
|
336
292
|
|
|
337
293
|
class GBTDAALModel(GBTDAALBaseModel):
|
|
338
|
-
|
|
294
|
+
"""
|
|
295
|
+
Gradient Boosted Decision Tree Model
|
|
296
|
+
|
|
297
|
+
Model class offering accelerated predictions for gradient-boosted decision
|
|
298
|
+
tree models from other libraries.
|
|
299
|
+
|
|
300
|
+
Objects of this class are meant to be initialized from GBT model objects
|
|
301
|
+
created through other libraries, returning a different class which can calculate
|
|
302
|
+
predictions faster than the original library that created said model.
|
|
303
|
+
|
|
304
|
+
Can be created from model objects that meet all of the following criteria:
|
|
305
|
+
|
|
306
|
+
- Were produced from one of the following libraries: ``xgboost``, ``lightgbm``, or ``catboost``.
|
|
307
|
+
It can work with either the base booster classes of those libraries or with their
|
|
308
|
+
scikit-learn-compatible classes.
|
|
309
|
+
- Do not use categorical features.
|
|
310
|
+
- Are for regression or classification (e.g. no ranking). In the case of XGBoost objective
|
|
311
|
+
``binary:logitraw``, it will create a classification model out of it, and in the case of
|
|
312
|
+
objective ``reg:logistic``, will create a regression model.
|
|
313
|
+
- Are not multi-output models. Note that multi-class classification **is** supported.
|
|
314
|
+
|
|
315
|
+
Parameters
|
|
316
|
+
----------
|
|
317
|
+
model : booster object from another library
|
|
318
|
+
The fitted GBT model from which this object will be created. See rest of the documentation
|
|
319
|
+
for supported input types.
|
|
320
|
+
|
|
321
|
+
Attributes
|
|
322
|
+
----------
|
|
323
|
+
is_classifier_ : bool
|
|
324
|
+
Whether this is a classification model.
|
|
325
|
+
is_regressor_ : bool
|
|
326
|
+
Whether this is a regression model.
|
|
327
|
+
supports_shap_ : bool
|
|
328
|
+
Whether the model supports SHAP calculations.
|
|
329
|
+
"""
|
|
330
|
+
|
|
331
|
+
def __init__(self, model):
|
|
332
|
+
self._convert_model(model)
|
|
333
|
+
for type_str in ("xgboost", "lightgbm", "catboost"):
|
|
334
|
+
if type_str in str(type(model)):
|
|
335
|
+
self.model_type = type_str
|
|
336
|
+
break
|
|
337
|
+
|
|
338
|
+
def predict(
|
|
339
|
+
self, X, pred_contribs: bool = False, pred_interactions: bool = False
|
|
340
|
+
) -> np.ndarray:
|
|
341
|
+
"""
|
|
342
|
+
Compute model predictions on new data
|
|
343
|
+
|
|
344
|
+
Computes the predicted values of the response variable for new data given the features / covariates
|
|
345
|
+
for each row.
|
|
346
|
+
|
|
347
|
+
In the case of classification models, this will output the most probable class (see
|
|
348
|
+
:meth:`predict_proba` for probability predictions), while in the case of regression
|
|
349
|
+
models, will output values in the link scale (what XGBoost calls 'margin' and LightGBM
|
|
350
|
+
calls 'raw').
|
|
351
|
+
|
|
352
|
+
:param X: The features covariates. Should be an array of shape ``[num_samples, num_features]``.
|
|
353
|
+
:param bool pred_contribs: Whether to predict feature contributions. Result should have shape ``[num_samples, num_features+1]``, with the last column corresponding to the intercept. See :obj:`xgboost.Booster.predict` for more details about this type of computation.
|
|
354
|
+
:param bool pred_interactions: Whether to predict feature interactions. Result should have shape ``[num_samples, num_features+1, num_features+1]``, with the last position across the last two dimensions corresponding to the intercept. See :obj:`xgboost.Booster.predict` for more details about this type of computation.
|
|
355
|
+
|
|
356
|
+
:rtype: np.ndarray
|
|
357
|
+
"""
|
|
358
|
+
if pred_contribs or pred_interactions:
|
|
359
|
+
if not self.supports_shap_:
|
|
360
|
+
raise TypeError("SHAP calculations are not available for this model.")
|
|
361
|
+
if self.model_type == "catboost":
|
|
362
|
+
warnings.warn(
|
|
363
|
+
"SHAP values from models converted from CatBoost do not match "
|
|
364
|
+
"against those of the original library. See "
|
|
365
|
+
"https://github.com/catboost/catboost/issues/2556 for more details."
|
|
366
|
+
)
|
|
339
367
|
fptype = getFPType(X)
|
|
340
368
|
if self._is_regression:
|
|
341
369
|
return self._predict_regression(X, fptype, pred_contribs, pred_interactions)
|
|
342
370
|
else:
|
|
343
|
-
if (pred_contribs or pred_interactions) and self.model_type != "xgboost":
|
|
344
|
-
raise NotImplementedError(
|
|
345
|
-
f"{'pred_contribs' if pred_contribs else 'pred_interactions'} is not implemented for classification models"
|
|
346
|
-
)
|
|
347
371
|
return self._predict_classification(
|
|
348
372
|
X, fptype, "computeClassLabels", pred_contribs, pred_interactions
|
|
349
373
|
)
|
|
350
374
|
|
|
351
|
-
|
|
375
|
+
@property
|
|
376
|
+
def is_classifier_(self) -> bool:
|
|
377
|
+
"""Whether this is a classification model"""
|
|
352
378
|
return not self._is_regression
|
|
353
379
|
|
|
354
|
-
@
|
|
355
|
-
def
|
|
356
|
-
|
|
357
|
-
return self.
|
|
380
|
+
@property
|
|
381
|
+
def is_regressor_(self) -> bool:
|
|
382
|
+
"""Whether this is a regression model"""
|
|
383
|
+
return self._is_regression
|
|
358
384
|
|
|
385
|
+
def _check_proba(self):
|
|
386
|
+
return not self._is_regression
|
|
359
387
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
except TypeError as err:
|
|
365
|
-
if "Only GBTDAALRegressor can be created" in str(err):
|
|
366
|
-
gbm = d4p.sklearn.ensemble.GBTDAALRegressor.convert_model(model)
|
|
367
|
-
elif "Only GBTDAALClassifier can be created" in str(err):
|
|
368
|
-
gbm = d4p.sklearn.ensemble.GBTDAALClassifier.convert_model(model)
|
|
369
|
-
else:
|
|
370
|
-
raise
|
|
388
|
+
@available_if(_check_proba)
|
|
389
|
+
def predict_proba(self, X) -> np.ndarray:
|
|
390
|
+
"""
|
|
391
|
+
Predict class probabilities
|
|
371
392
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
gbm.model_type = type_str
|
|
375
|
-
break
|
|
393
|
+
Computes the predicted probabilities of belonging to each class for each row in the
|
|
394
|
+
input data given the features / covariates. Output shape is ``[num_samples, num_classes]``.
|
|
376
395
|
|
|
377
|
-
|
|
396
|
+
:param X: The features covariates. Should be an array of shape ``[num_samples, num_features]``.
|
|
397
|
+
:rtype: np.ndarray
|
|
398
|
+
"""
|
|
399
|
+
fptype = getFPType(X)
|
|
400
|
+
return self._predict_classification(X, fptype, "computeClassProbabilities")
|
|
Binary file
|
|
@@ -82,7 +82,7 @@ def _run_with_n_jobs(method):
|
|
|
82
82
|
if not isinstance(threading.current_thread(), threading._MainThread):
|
|
83
83
|
warn(
|
|
84
84
|
"'Threading' parallel backend is not supported by "
|
|
85
|
-
"
|
|
85
|
+
"Extension for Scikit-learn*. "
|
|
86
86
|
"Falling back to usage of all available threads."
|
|
87
87
|
)
|
|
88
88
|
result = method(self, *args, **kwargs)
|
|
@@ -214,7 +214,11 @@ def control_n_jobs(decorated_methods: list = []):
|
|
|
214
214
|
and "n_jobs : int" not in original_class.__doc__
|
|
215
215
|
):
|
|
216
216
|
# Python 3.13 removed extra tab in class doc string
|
|
217
|
-
tab =
|
|
217
|
+
tab = (
|
|
218
|
+
" "
|
|
219
|
+
if (sys.version_info.major == 3 and sys.version_info.minor < 13)
|
|
220
|
+
else ""
|
|
221
|
+
)
|
|
218
222
|
parameters_doc_tail = f"\n{tab}Attributes"
|
|
219
223
|
n_jobs_doc = f"""
|
|
220
224
|
{tab}n_jobs : int, default=None
|
|
@@ -231,7 +231,7 @@ class PatchingConditionsChain:
|
|
|
231
231
|
else:
|
|
232
232
|
self.logger.debug(
|
|
233
233
|
f"{self.scope_name}: debugging for the patch is enabled to track"
|
|
234
|
-
" the usage of
|
|
234
|
+
" the usage of oneAPI Data Analytics Library (oneDAL)"
|
|
235
235
|
)
|
|
236
236
|
for message in self.messages:
|
|
237
237
|
self.logger.debug(
|
|
@@ -26,6 +26,7 @@ import daal4py
|
|
|
26
26
|
|
|
27
27
|
from .._n_jobs_support import control_n_jobs
|
|
28
28
|
from .._utils import PatchingConditionsChain, getFPType, make2d, sklearn_check_version
|
|
29
|
+
from ..utils.validation import check_feature_names
|
|
29
30
|
|
|
30
31
|
if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
|
|
31
32
|
from sklearn.utils import check_scalar
|
|
@@ -121,8 +122,7 @@ class DBSCAN(DBSCAN_original):
|
|
|
121
122
|
if self.eps <= 0.0:
|
|
122
123
|
raise ValueError(f"eps == {self.eps}, must be > 0.0.")
|
|
123
124
|
|
|
124
|
-
|
|
125
|
-
self._check_feature_names(X, reset=True)
|
|
125
|
+
check_feature_names(self, X, reset=True)
|
|
126
126
|
|
|
127
127
|
if sample_weight is not None:
|
|
128
128
|
sample_weight = _check_sample_weight(sample_weight, X)
|