scikit-learn-intelex 2025.4.0__py313-none-win_amd64.whl → 2025.6.0__py313-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.cp313-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.cp313-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.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-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.cp313-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.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-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
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
from abc import ABCMeta
|
|
17
|
+
from abc import ABCMeta, abstractmethod
|
|
18
18
|
from numbers import Integral
|
|
19
19
|
|
|
20
20
|
import numpy as np
|
|
@@ -27,12 +27,16 @@ from daal4py import (
|
|
|
27
27
|
kdtree_knn_classification_prediction,
|
|
28
28
|
kdtree_knn_classification_training,
|
|
29
29
|
)
|
|
30
|
+
from onedal._device_offload import supports_queue
|
|
31
|
+
from onedal.common._backend import bind_default_backend
|
|
32
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
30
33
|
|
|
31
|
-
from ..
|
|
34
|
+
from .._config import _get_config
|
|
32
35
|
from ..common._estimator_checks import _check_is_fitted, _is_classifier, _is_regressor
|
|
33
36
|
from ..common._mixin import ClassifierMixin, RegressorMixin
|
|
34
37
|
from ..datatypes import from_table, to_table
|
|
35
|
-
from ..utils import
|
|
38
|
+
from ..utils._array_api import _get_sycl_namespace
|
|
39
|
+
from ..utils.validation import (
|
|
36
40
|
_check_array,
|
|
37
41
|
_check_classification_targets,
|
|
38
42
|
_check_n_features,
|
|
@@ -42,7 +46,18 @@ from ..utils import (
|
|
|
42
46
|
)
|
|
43
47
|
|
|
44
48
|
|
|
45
|
-
class NeighborsCommonBase(
|
|
49
|
+
class NeighborsCommonBase(metaclass=ABCMeta):
|
|
50
|
+
def __init__(self):
|
|
51
|
+
self.requires_y = False
|
|
52
|
+
self.n_neighbors = None
|
|
53
|
+
self.metric = None
|
|
54
|
+
self.classes_ = None
|
|
55
|
+
self.effective_metric_ = None
|
|
56
|
+
self._fit_method = None
|
|
57
|
+
self.radius = None
|
|
58
|
+
self.effective_metric_params_ = None
|
|
59
|
+
self._onedal_model = None
|
|
60
|
+
|
|
46
61
|
def _parse_auto_method(self, method, n_samples, n_features):
|
|
47
62
|
result_method = method
|
|
48
63
|
|
|
@@ -60,8 +75,17 @@ class NeighborsCommonBase(BaseEstimator, metaclass=ABCMeta):
|
|
|
60
75
|
|
|
61
76
|
return result_method
|
|
62
77
|
|
|
78
|
+
@abstractmethod
|
|
79
|
+
def train(self, *args, **kwargs): ...
|
|
80
|
+
|
|
81
|
+
@abstractmethod
|
|
82
|
+
def infer(self, *args, **kwargs): ...
|
|
83
|
+
|
|
84
|
+
@abstractmethod
|
|
85
|
+
def _onedal_fit(self, X, y): ...
|
|
86
|
+
|
|
63
87
|
def _validate_data(
|
|
64
|
-
self, X, y=None, reset=True, validate_separately=
|
|
88
|
+
self, X, y=None, reset=True, validate_separately=None, **check_params
|
|
65
89
|
):
|
|
66
90
|
if y is None:
|
|
67
91
|
if self.requires_y:
|
|
@@ -188,13 +212,13 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
|
|
|
188
212
|
return arr
|
|
189
213
|
|
|
190
214
|
def _validate_n_classes(self):
|
|
191
|
-
if len(self.classes_)
|
|
215
|
+
length = 0 if self.classes_ is None else len(self.classes_)
|
|
216
|
+
if length < 2:
|
|
192
217
|
raise ValueError(
|
|
193
|
-
"The number of classes has to be greater than one; got
|
|
194
|
-
" class" % len(self.classes_)
|
|
218
|
+
f"The number of classes has to be greater than one; got {length}"
|
|
195
219
|
)
|
|
196
220
|
|
|
197
|
-
def _fit(self, X, y
|
|
221
|
+
def _fit(self, X, y):
|
|
198
222
|
self._onedal_model = None
|
|
199
223
|
self._tree = None
|
|
200
224
|
self._shape = None
|
|
@@ -204,11 +228,14 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
|
|
|
204
228
|
self, "effective_metric_params_", self.metric_params
|
|
205
229
|
)
|
|
206
230
|
|
|
231
|
+
_, xp, _ = _get_sycl_namespace(X)
|
|
232
|
+
use_raw_input = _get_config().get("use_raw_input", False) is True
|
|
207
233
|
if y is not None or self.requires_y:
|
|
208
234
|
shape = getattr(y, "shape", None)
|
|
209
|
-
|
|
210
|
-
X, y
|
|
211
|
-
|
|
235
|
+
if not use_raw_input:
|
|
236
|
+
X, y = super()._validate_data(
|
|
237
|
+
X, y, dtype=[np.float64, np.float32], accept_sparse="csr"
|
|
238
|
+
)
|
|
212
239
|
self._shape = shape if shape is not None else y.shape
|
|
213
240
|
|
|
214
241
|
if _is_classifier(self):
|
|
@@ -232,7 +259,7 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
|
|
|
232
259
|
self._validate_n_classes()
|
|
233
260
|
else:
|
|
234
261
|
self._y = y
|
|
235
|
-
|
|
262
|
+
elif not use_raw_input:
|
|
236
263
|
X, _ = super()._validate_data(X, dtype=[np.float64, np.float32])
|
|
237
264
|
|
|
238
265
|
self.n_samples_fit_ = X.shape[0]
|
|
@@ -253,21 +280,22 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
|
|
|
253
280
|
)
|
|
254
281
|
|
|
255
282
|
_fit_y = None
|
|
283
|
+
queue = QM.get_global_queue()
|
|
256
284
|
gpu_device = queue is not None and queue.sycl_device.is_gpu
|
|
257
285
|
|
|
258
286
|
if _is_classifier(self) or (_is_regressor(self) and gpu_device):
|
|
259
287
|
_fit_y = self._validate_targets(self._y, X.dtype).reshape((-1, 1))
|
|
260
|
-
result = self._onedal_fit(X, _fit_y
|
|
288
|
+
result = self._onedal_fit(X, _fit_y)
|
|
261
289
|
|
|
262
290
|
if y is not None and _is_regressor(self):
|
|
263
|
-
self._y = y if self._shape is None else
|
|
291
|
+
self._y = y if self._shape is None else xp.reshape(y, self._shape)
|
|
264
292
|
|
|
265
293
|
self._onedal_model = result
|
|
266
294
|
result = self
|
|
267
295
|
|
|
268
296
|
return result
|
|
269
297
|
|
|
270
|
-
def _kneighbors(self, X=None, n_neighbors=None, return_distance=True
|
|
298
|
+
def _kneighbors(self, X=None, n_neighbors=None, return_distance=True):
|
|
271
299
|
n_features = getattr(self, "n_features_in_", None)
|
|
272
300
|
shape = getattr(X, "shape", None)
|
|
273
301
|
if n_features and shape and len(shape) > 1 and shape[1] != n_features:
|
|
@@ -316,25 +344,21 @@ class NeighborsBase(NeighborsCommonBase, metaclass=ABCMeta):
|
|
|
316
344
|
)
|
|
317
345
|
|
|
318
346
|
chunked_results = None
|
|
319
|
-
method =
|
|
347
|
+
method = self._parse_auto_method(
|
|
320
348
|
self._fit_method, self.n_samples_fit_, n_features
|
|
321
349
|
)
|
|
322
350
|
|
|
323
|
-
if (
|
|
324
|
-
|
|
325
|
-
|
|
351
|
+
if type(self._onedal_model) in (
|
|
352
|
+
kdtree_knn_classification_model,
|
|
353
|
+
bf_knn_classification_model,
|
|
326
354
|
):
|
|
327
355
|
params = super()._get_daal_params(X, n_neighbors=n_neighbors)
|
|
328
|
-
prediction_results = self._onedal_predict(
|
|
329
|
-
self._onedal_model, X, params, queue=queue
|
|
330
|
-
)
|
|
356
|
+
prediction_results = self._onedal_predict(self._onedal_model, X, params)
|
|
331
357
|
distances = prediction_results.distances
|
|
332
358
|
indices = prediction_results.indices
|
|
333
359
|
else:
|
|
334
360
|
params = super()._get_onedal_params(X, n_neighbors=n_neighbors)
|
|
335
|
-
prediction_results = self._onedal_predict(
|
|
336
|
-
self._onedal_model, X, params, queue=queue
|
|
337
|
-
)
|
|
361
|
+
prediction_results = self._onedal_predict(self._onedal_model, X, params)
|
|
338
362
|
distances = from_table(prediction_results.distances)
|
|
339
363
|
indices = from_table(prediction_results.indices)
|
|
340
364
|
|
|
@@ -408,14 +432,27 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
|
|
|
408
432
|
)
|
|
409
433
|
self.weights = weights
|
|
410
434
|
|
|
435
|
+
# direct access to the backend model constructor
|
|
436
|
+
@bind_default_backend("neighbors.classification")
|
|
437
|
+
def model(self): ...
|
|
438
|
+
|
|
439
|
+
# direct access to the backend model constructor
|
|
440
|
+
@bind_default_backend("neighbors.classification")
|
|
441
|
+
def train(self, *args, **kwargs): ...
|
|
442
|
+
|
|
443
|
+
@bind_default_backend("neighbors.classification")
|
|
444
|
+
def infer(self, *args, **kwargs): ...
|
|
445
|
+
|
|
411
446
|
def _get_daal_params(self, data):
|
|
412
447
|
params = super()._get_daal_params(data)
|
|
413
448
|
params["resultsToEvaluate"] = "computeClassLabels"
|
|
414
449
|
params["resultsToCompute"] = ""
|
|
415
450
|
return params
|
|
416
451
|
|
|
417
|
-
def _onedal_fit(self, X, y
|
|
418
|
-
|
|
452
|
+
def _onedal_fit(self, X, y):
|
|
453
|
+
# global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
|
|
454
|
+
queue = QM.get_global_queue()
|
|
455
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
419
456
|
if self.effective_metric_ == "euclidean" and not gpu_device:
|
|
420
457
|
params = self._get_daal_params(X)
|
|
421
458
|
if self._fit_method == "brute":
|
|
@@ -425,44 +462,34 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
|
|
|
425
462
|
train_alg = kdtree_knn_classification_training
|
|
426
463
|
|
|
427
464
|
return train_alg(**params).compute(X, y).model
|
|
465
|
+
else:
|
|
466
|
+
params = self._get_onedal_params(X, y)
|
|
467
|
+
X_table, y_table = to_table(X, y, queue=queue)
|
|
468
|
+
return self.train(params, X_table, y_table).model
|
|
428
469
|
|
|
429
|
-
|
|
430
|
-
X_table, y_table = to_table(X, y, queue=queue)
|
|
431
|
-
params = self._get_onedal_params(X_table, y)
|
|
432
|
-
train_alg = self._get_backend(
|
|
433
|
-
"neighbors", "classification", "train", policy, params, X_table, y_table
|
|
434
|
-
)
|
|
435
|
-
|
|
436
|
-
return train_alg.model
|
|
437
|
-
|
|
438
|
-
def _onedal_predict(self, model, X, params, queue):
|
|
470
|
+
def _onedal_predict(self, model, X, params):
|
|
439
471
|
if type(self._onedal_model) is kdtree_knn_classification_model:
|
|
440
472
|
return kdtree_knn_classification_prediction(**params).compute(X, model)
|
|
441
473
|
elif type(self._onedal_model) is bf_knn_classification_model:
|
|
442
474
|
return bf_knn_classification_prediction(**params).compute(X, model)
|
|
443
|
-
|
|
444
|
-
policy = self._get_policy(queue, X)
|
|
445
|
-
X = to_table(X, queue=queue)
|
|
446
|
-
if hasattr(self, "_onedal_model"):
|
|
447
|
-
model = self._onedal_model
|
|
448
475
|
else:
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
params
|
|
454
|
-
params["fptype"] = X.dtype
|
|
455
|
-
result = self._get_backend(
|
|
456
|
-
"neighbors", "classification", "infer", policy, params, model, X
|
|
457
|
-
)
|
|
476
|
+
X = to_table(X, queue=QM.get_global_queue())
|
|
477
|
+
if "responses" not in params["result_option"]:
|
|
478
|
+
params["result_option"] += "|responses"
|
|
479
|
+
params["fptype"] = X.dtype
|
|
480
|
+
result = self.infer(params, model, X)
|
|
458
481
|
|
|
459
|
-
|
|
482
|
+
return result
|
|
460
483
|
|
|
484
|
+
@supports_queue
|
|
461
485
|
def fit(self, X, y, queue=None):
|
|
462
|
-
return
|
|
486
|
+
return self._fit(X, y)
|
|
463
487
|
|
|
488
|
+
@supports_queue
|
|
464
489
|
def predict(self, X, queue=None):
|
|
465
|
-
|
|
490
|
+
use_raw_input = _get_config().get("use_raw_input", False) is True
|
|
491
|
+
if not use_raw_input:
|
|
492
|
+
X = _check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
|
|
466
493
|
onedal_model = getattr(self, "_onedal_model", None)
|
|
467
494
|
n_features = getattr(self, "n_features_in_", None)
|
|
468
495
|
n_samples_fit_ = getattr(self, "n_samples_fit_", None)
|
|
@@ -478,7 +505,7 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
|
|
|
478
505
|
|
|
479
506
|
_check_is_fitted(self)
|
|
480
507
|
|
|
481
|
-
self._fit_method =
|
|
508
|
+
self._fit_method = self._parse_auto_method(
|
|
482
509
|
self.algorithm, n_samples_fit_, n_features
|
|
483
510
|
)
|
|
484
511
|
|
|
@@ -489,16 +516,17 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
|
|
|
489
516
|
or type(onedal_model) is bf_knn_classification_model
|
|
490
517
|
):
|
|
491
518
|
params = self._get_daal_params(X)
|
|
492
|
-
prediction_result = self._onedal_predict(onedal_model, X, params
|
|
519
|
+
prediction_result = self._onedal_predict(onedal_model, X, params)
|
|
493
520
|
responses = prediction_result.prediction
|
|
494
521
|
else:
|
|
495
522
|
params = self._get_onedal_params(X)
|
|
496
|
-
prediction_result = self._onedal_predict(onedal_model, X, params
|
|
523
|
+
prediction_result = self._onedal_predict(onedal_model, X, params)
|
|
497
524
|
responses = from_table(prediction_result.responses)
|
|
498
525
|
|
|
499
526
|
result = self.classes_.take(np.asarray(responses.ravel(), dtype=np.intp))
|
|
500
527
|
return result
|
|
501
528
|
|
|
529
|
+
@supports_queue
|
|
502
530
|
def predict_proba(self, X, queue=None):
|
|
503
531
|
neigh_dist, neigh_ind = self.kneighbors(X, queue=queue)
|
|
504
532
|
|
|
@@ -536,8 +564,9 @@ class KNeighborsClassifier(NeighborsBase, ClassifierMixin):
|
|
|
536
564
|
|
|
537
565
|
return probabilities
|
|
538
566
|
|
|
567
|
+
@supports_queue
|
|
539
568
|
def kneighbors(self, X=None, n_neighbors=None, return_distance=True, queue=None):
|
|
540
|
-
return
|
|
569
|
+
return self._kneighbors(X, n_neighbors, return_distance)
|
|
541
570
|
|
|
542
571
|
|
|
543
572
|
class KNeighborsRegressor(NeighborsBase, RegressorMixin):
|
|
@@ -562,68 +591,79 @@ class KNeighborsRegressor(NeighborsBase, RegressorMixin):
|
|
|
562
591
|
)
|
|
563
592
|
self.weights = weights
|
|
564
593
|
|
|
594
|
+
@bind_default_backend("neighbors.search", lookup_name="train")
|
|
595
|
+
def train_search(self, *args, **kwargs): ...
|
|
596
|
+
|
|
597
|
+
@bind_default_backend("neighbors.search", lookup_name="infer")
|
|
598
|
+
def infer_search(self, *args, **kwargs): ...
|
|
599
|
+
|
|
600
|
+
@bind_default_backend("neighbors.regression")
|
|
601
|
+
def train(self, *args, **kwargs): ...
|
|
602
|
+
|
|
603
|
+
@bind_default_backend("neighbors.regression")
|
|
604
|
+
def infer(self, *args, **kwargs): ...
|
|
605
|
+
|
|
565
606
|
def _get_daal_params(self, data):
|
|
566
607
|
params = super()._get_daal_params(data)
|
|
567
608
|
params["resultsToCompute"] = "computeIndicesOfNeighbors|computeDistances"
|
|
568
609
|
params["resultsToEvaluate"] = "none"
|
|
569
610
|
return params
|
|
570
611
|
|
|
571
|
-
def _onedal_fit(self, X, y
|
|
572
|
-
|
|
612
|
+
def _onedal_fit(self, X, y):
|
|
613
|
+
# global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
|
|
614
|
+
queue = QM.get_global_queue()
|
|
615
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
573
616
|
if self.effective_metric_ == "euclidean" and not gpu_device:
|
|
574
617
|
params = self._get_daal_params(X)
|
|
575
618
|
if self._fit_method == "brute":
|
|
576
619
|
train_alg = bf_knn_classification_training
|
|
577
|
-
|
|
578
620
|
else:
|
|
579
621
|
train_alg = kdtree_knn_classification_training
|
|
580
622
|
|
|
581
623
|
return train_alg(**params).compute(X, y).model
|
|
582
624
|
|
|
583
|
-
policy = self._get_policy(queue, X, y)
|
|
584
625
|
X_table, y_table = to_table(X, y, queue=queue)
|
|
585
626
|
params = self._get_onedal_params(X_table, y)
|
|
586
|
-
train_alg_regr = self._get_backend("neighbors", "regression", None)
|
|
587
|
-
train_alg_srch = self._get_backend("neighbors", "search", None)
|
|
588
627
|
|
|
589
628
|
if gpu_device:
|
|
590
|
-
return
|
|
591
|
-
|
|
629
|
+
return self.train(params, X_table, y_table).model
|
|
630
|
+
else:
|
|
631
|
+
return self.train_search(params, X_table).model
|
|
632
|
+
|
|
633
|
+
def _onedal_predict(self, model, X, params):
|
|
634
|
+
assert self._onedal_model is not None, "Model is not trained"
|
|
592
635
|
|
|
593
|
-
def _onedal_predict(self, model, X, params, queue):
|
|
594
636
|
if type(model) is kdtree_knn_classification_model:
|
|
595
637
|
return kdtree_knn_classification_prediction(**params).compute(X, model)
|
|
596
638
|
elif type(model) is bf_knn_classification_model:
|
|
597
639
|
return bf_knn_classification_prediction(**params).compute(X, model)
|
|
598
640
|
|
|
599
|
-
|
|
600
|
-
|
|
641
|
+
# global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
|
|
642
|
+
queue = QM.get_global_queue()
|
|
643
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
601
644
|
X = to_table(X, queue=queue)
|
|
602
|
-
backend = (
|
|
603
|
-
self._get_backend("neighbors", "regression", None)
|
|
604
|
-
if gpu_device
|
|
605
|
-
else self._get_backend("neighbors", "search", None)
|
|
606
|
-
)
|
|
607
645
|
|
|
608
|
-
if hasattr(self, "_onedal_model"):
|
|
609
|
-
model = self._onedal_model
|
|
610
|
-
else:
|
|
611
|
-
model = self._create_model(backend)
|
|
612
646
|
if "responses" not in params["result_option"] and gpu_device:
|
|
613
647
|
params["result_option"] += "|responses"
|
|
614
648
|
params["fptype"] = X.dtype
|
|
615
|
-
result = backend.infer(policy, params, model, X)
|
|
616
649
|
|
|
617
|
-
|
|
650
|
+
if gpu_device:
|
|
651
|
+
return self.infer(params, self._onedal_model, X)
|
|
652
|
+
else:
|
|
653
|
+
return self.infer_search(params, self._onedal_model, X)
|
|
618
654
|
|
|
655
|
+
@supports_queue
|
|
619
656
|
def fit(self, X, y, queue=None):
|
|
620
|
-
return
|
|
657
|
+
return self._fit(X, y)
|
|
621
658
|
|
|
659
|
+
@supports_queue
|
|
622
660
|
def kneighbors(self, X=None, n_neighbors=None, return_distance=True, queue=None):
|
|
623
|
-
return
|
|
661
|
+
return self._kneighbors(X, n_neighbors, return_distance)
|
|
624
662
|
|
|
625
|
-
def _predict_gpu(self, X
|
|
626
|
-
|
|
663
|
+
def _predict_gpu(self, X):
|
|
664
|
+
use_raw_input = _get_config().get("use_raw_input", False) is True
|
|
665
|
+
if not use_raw_input:
|
|
666
|
+
X = _check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
|
|
627
667
|
onedal_model = getattr(self, "_onedal_model", None)
|
|
628
668
|
n_features = getattr(self, "n_features_in_", None)
|
|
629
669
|
n_samples_fit_ = getattr(self, "n_samples_fit_", None)
|
|
@@ -639,20 +679,20 @@ class KNeighborsRegressor(NeighborsBase, RegressorMixin):
|
|
|
639
679
|
|
|
640
680
|
_check_is_fitted(self)
|
|
641
681
|
|
|
642
|
-
self._fit_method =
|
|
682
|
+
self._fit_method = self._parse_auto_method(
|
|
643
683
|
self.algorithm, n_samples_fit_, n_features
|
|
644
684
|
)
|
|
645
685
|
|
|
646
686
|
params = self._get_onedal_params(X)
|
|
647
687
|
|
|
648
|
-
prediction_result = self._onedal_predict(onedal_model, X, params
|
|
688
|
+
prediction_result = self._onedal_predict(onedal_model, X, params)
|
|
649
689
|
responses = from_table(prediction_result.responses)
|
|
650
690
|
result = responses.ravel()
|
|
651
691
|
|
|
652
692
|
return result
|
|
653
693
|
|
|
654
|
-
def _predict_skl(self, X
|
|
655
|
-
neigh_dist, neigh_ind = self.kneighbors(X
|
|
694
|
+
def _predict_skl(self, X):
|
|
695
|
+
neigh_dist, neigh_ind = self.kneighbors(X)
|
|
656
696
|
|
|
657
697
|
weights = self._get_weights(neigh_dist, self.weights)
|
|
658
698
|
|
|
@@ -675,14 +715,14 @@ class KNeighborsRegressor(NeighborsBase, RegressorMixin):
|
|
|
675
715
|
|
|
676
716
|
return y_pred
|
|
677
717
|
|
|
718
|
+
@supports_queue
|
|
678
719
|
def predict(self, X, queue=None):
|
|
679
|
-
gpu_device = queue is not None and queue.sycl_device
|
|
720
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
680
721
|
is_uniform_weights = getattr(self, "weights", "uniform") == "uniform"
|
|
681
|
-
|
|
682
|
-
self._predict_gpu(X
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
)
|
|
722
|
+
if gpu_device and is_uniform_weights:
|
|
723
|
+
return self._predict_gpu(X)
|
|
724
|
+
else:
|
|
725
|
+
return self._predict_skl(X)
|
|
686
726
|
|
|
687
727
|
|
|
688
728
|
class NearestNeighbors(NeighborsBase):
|
|
@@ -707,6 +747,12 @@ class NearestNeighbors(NeighborsBase):
|
|
|
707
747
|
)
|
|
708
748
|
self.weights = weights
|
|
709
749
|
|
|
750
|
+
@bind_default_backend("neighbors.search")
|
|
751
|
+
def train(self, *args, **kwargs): ...
|
|
752
|
+
|
|
753
|
+
@bind_default_backend("neighbors.search")
|
|
754
|
+
def infer(self, *arg, **kwargs): ...
|
|
755
|
+
|
|
710
756
|
def _get_daal_params(self, data):
|
|
711
757
|
params = super()._get_daal_params(data)
|
|
712
758
|
params["resultsToCompute"] = "computeIndicesOfNeighbors|computeDistances"
|
|
@@ -715,8 +761,10 @@ class NearestNeighbors(NeighborsBase):
|
|
|
715
761
|
)
|
|
716
762
|
return params
|
|
717
763
|
|
|
718
|
-
def _onedal_fit(self, X, y
|
|
719
|
-
|
|
764
|
+
def _onedal_fit(self, X, y):
|
|
765
|
+
# global queue is set as per user configuration (`target_offload`) or from data prior to calling this internal function
|
|
766
|
+
queue = QM.get_global_queue()
|
|
767
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
720
768
|
if self.effective_metric_ == "euclidean" and not gpu_device:
|
|
721
769
|
params = self._get_daal_params(X)
|
|
722
770
|
if self._fit_method == "brute":
|
|
@@ -727,37 +775,26 @@ class NearestNeighbors(NeighborsBase):
|
|
|
727
775
|
|
|
728
776
|
return train_alg(**params).compute(X, y).model
|
|
729
777
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
"neighbors", "search", "train", policy, params, X_table
|
|
735
|
-
)
|
|
736
|
-
|
|
737
|
-
return train_alg.model
|
|
778
|
+
else:
|
|
779
|
+
params = self._get_onedal_params(X, y)
|
|
780
|
+
X, y = to_table(X, y, queue=queue)
|
|
781
|
+
return self.train(params, X).model
|
|
738
782
|
|
|
739
|
-
def _onedal_predict(self, model, X, params
|
|
783
|
+
def _onedal_predict(self, model, X, params):
|
|
740
784
|
if type(self._onedal_model) is kdtree_knn_classification_model:
|
|
741
785
|
return kdtree_knn_classification_prediction(**params).compute(X, model)
|
|
742
786
|
elif type(self._onedal_model) is bf_knn_classification_model:
|
|
743
787
|
return bf_knn_classification_prediction(**params).compute(X, model)
|
|
744
788
|
|
|
745
|
-
|
|
746
|
-
X = to_table(X, queue=queue)
|
|
747
|
-
if hasattr(self, "_onedal_model"):
|
|
748
|
-
model = self._onedal_model
|
|
749
|
-
else:
|
|
750
|
-
model = self._create_model(self._get_backend("neighbors", "search", None))
|
|
789
|
+
X = to_table(X, queue=QM.get_global_queue())
|
|
751
790
|
|
|
752
791
|
params["fptype"] = X.dtype
|
|
753
|
-
|
|
754
|
-
"neighbors", "search", "infer", policy, params, model, X
|
|
755
|
-
)
|
|
756
|
-
|
|
757
|
-
return result
|
|
792
|
+
return self.infer(params, model, X)
|
|
758
793
|
|
|
794
|
+
@supports_queue
|
|
759
795
|
def fit(self, X, y, queue=None):
|
|
760
|
-
return
|
|
796
|
+
return self._fit(X, y)
|
|
761
797
|
|
|
798
|
+
@supports_queue
|
|
762
799
|
def kneighbors(self, X=None, n_neighbors=None, return_distance=True, queue=None):
|
|
763
|
-
return
|
|
800
|
+
return self._kneighbors(X, n_neighbors, return_distance)
|
|
@@ -14,12 +14,14 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
from onedal import
|
|
17
|
+
from onedal import _default_backend, _dpc_backend
|
|
18
|
+
|
|
19
|
+
backend = _dpc_backend or _default_backend
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
def get_tree_state_cls(model, iTree, n_classes):
|
|
21
|
-
return
|
|
23
|
+
return backend.get_tree.classification.get_tree_state(model, iTree, n_classes)
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
def get_tree_state_reg(model, iTree, n_classes):
|
|
25
|
-
return
|
|
27
|
+
return backend.get_tree.regression.get_tree_state(model, iTree, n_classes)
|
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
|
|
17
17
|
import numpy as np
|
|
18
18
|
|
|
19
|
-
from onedal import
|
|
19
|
+
from onedal import _default_backend as backend
|
|
20
|
+
from onedal._device_offload import supports_queue
|
|
21
|
+
from onedal.common._backend import BackendFunction
|
|
22
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
20
23
|
|
|
21
|
-
from ..common._policy import _get_policy
|
|
22
24
|
from ..datatypes import from_table, to_table
|
|
23
|
-
from ..utils import _check_array
|
|
25
|
+
from ..utils.validation import _check_array
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
def _check_inputs(X, Y):
|
|
@@ -32,14 +34,20 @@ def _check_inputs(X, Y):
|
|
|
32
34
|
return X, Y
|
|
33
35
|
|
|
34
36
|
|
|
35
|
-
def _compute_kernel(params, submodule, X, Y
|
|
36
|
-
policy
|
|
37
|
+
def _compute_kernel(params, submodule, X, Y):
|
|
38
|
+
# get policy for direct backend calls
|
|
39
|
+
|
|
40
|
+
queue = QM.get_global_queue()
|
|
37
41
|
X, Y = to_table(X, Y, queue=queue)
|
|
38
42
|
params["fptype"] = X.dtype
|
|
39
|
-
|
|
43
|
+
compute_method = BackendFunction(
|
|
44
|
+
submodule.compute, backend, "compute", no_policy=False
|
|
45
|
+
)
|
|
46
|
+
result = compute_method(params, X, Y)
|
|
40
47
|
return from_table(result.values)
|
|
41
48
|
|
|
42
49
|
|
|
50
|
+
@supports_queue
|
|
43
51
|
def linear_kernel(X, Y=None, scale=1.0, shift=0.0, queue=None):
|
|
44
52
|
"""
|
|
45
53
|
Compute the linear kernel between X and Y:
|
|
@@ -60,13 +68,13 @@ def linear_kernel(X, Y=None, scale=1.0, shift=0.0, queue=None):
|
|
|
60
68
|
X, Y = _check_inputs(X, Y)
|
|
61
69
|
return _compute_kernel(
|
|
62
70
|
{"method": "dense", "scale": scale, "shift": shift},
|
|
63
|
-
|
|
71
|
+
backend.linear_kernel,
|
|
64
72
|
X,
|
|
65
73
|
Y,
|
|
66
|
-
queue,
|
|
67
74
|
)
|
|
68
75
|
|
|
69
76
|
|
|
77
|
+
@supports_queue
|
|
70
78
|
def rbf_kernel(X, Y=None, gamma=None, queue=None):
|
|
71
79
|
"""
|
|
72
80
|
Compute the rbf (gaussian) kernel between X and Y:
|
|
@@ -90,11 +98,10 @@ def rbf_kernel(X, Y=None, gamma=None, queue=None):
|
|
|
90
98
|
gamma = 1.0 / X.shape[1] if gamma is None else gamma
|
|
91
99
|
sigma = np.sqrt(0.5 / gamma)
|
|
92
100
|
|
|
93
|
-
return _compute_kernel(
|
|
94
|
-
{"method": "dense", "sigma": sigma}, _backend.rbf_kernel, X, Y, queue
|
|
95
|
-
)
|
|
101
|
+
return _compute_kernel({"method": "dense", "sigma": sigma}, backend.rbf_kernel, X, Y)
|
|
96
102
|
|
|
97
103
|
|
|
104
|
+
@supports_queue
|
|
98
105
|
def poly_kernel(X, Y=None, gamma=1.0, coef0=0.0, degree=3, queue=None):
|
|
99
106
|
"""
|
|
100
107
|
Compute the poly kernel between X and Y:
|
|
@@ -117,13 +124,13 @@ def poly_kernel(X, Y=None, gamma=1.0, coef0=0.0, degree=3, queue=None):
|
|
|
117
124
|
X, Y = _check_inputs(X, Y)
|
|
118
125
|
return _compute_kernel(
|
|
119
126
|
{"method": "dense", "scale": gamma, "shift": coef0, "degree": degree},
|
|
120
|
-
|
|
127
|
+
backend.polynomial_kernel,
|
|
121
128
|
X,
|
|
122
129
|
Y,
|
|
123
|
-
queue,
|
|
124
130
|
)
|
|
125
131
|
|
|
126
132
|
|
|
133
|
+
@supports_queue
|
|
127
134
|
def sigmoid_kernel(X, Y=None, gamma=1.0, coef0=0.0, queue=None):
|
|
128
135
|
"""
|
|
129
136
|
Compute the sigmoid kernel between X and Y:
|
|
@@ -144,9 +151,5 @@ def sigmoid_kernel(X, Y=None, gamma=1.0, coef0=0.0, queue=None):
|
|
|
144
151
|
|
|
145
152
|
X, Y = _check_inputs(X, Y)
|
|
146
153
|
return _compute_kernel(
|
|
147
|
-
{"method": "dense", "scale": gamma, "shift": coef0},
|
|
148
|
-
_backend.sigmoid_kernel,
|
|
149
|
-
X,
|
|
150
|
-
Y,
|
|
151
|
-
queue,
|
|
154
|
+
{"method": "dense", "scale": gamma, "shift": coef0}, backend.sigmoid_kernel, X, Y
|
|
152
155
|
)
|
|
@@ -91,7 +91,7 @@ def test_dense_small_rbf_kernel(queue, gamma, dtype):
|
|
|
91
91
|
_test_dense_small_rbf_kernel(queue, gamma, dtype)
|
|
92
92
|
|
|
93
93
|
|
|
94
|
-
@pass_if_not_implemented_for_gpu(reason="
|
|
94
|
+
@pass_if_not_implemented_for_gpu(reason="Polynomial kernel is not implemented for GPU")
|
|
95
95
|
@pytest.mark.parametrize("queue", get_queues())
|
|
96
96
|
def test_dense_self_poly_kernel(queue):
|
|
97
97
|
rng = np.random.RandomState(0)
|
|
@@ -116,7 +116,7 @@ def _test_dense_small_poly_kernel(queue, gamma, coef0, degree, dtype):
|
|
|
116
116
|
assert_allclose(result, expected, rtol=tol)
|
|
117
117
|
|
|
118
118
|
|
|
119
|
-
@pass_if_not_implemented_for_gpu(reason="
|
|
119
|
+
@pass_if_not_implemented_for_gpu(reason="Polynomial kernel is not implemented for GPU")
|
|
120
120
|
@pytest.mark.parametrize("queue", get_queues())
|
|
121
121
|
@pytest.mark.parametrize("gamma", [0.1, 1.0])
|
|
122
122
|
@pytest.mark.parametrize("coef0", [0.0, 1.0])
|
|
@@ -126,7 +126,7 @@ def test_dense_small_poly_kernel(queue, gamma, coef0, degree, dtype):
|
|
|
126
126
|
_test_dense_small_poly_kernel(queue, gamma, coef0, degree, dtype)
|
|
127
127
|
|
|
128
128
|
|
|
129
|
-
@pass_if_not_implemented_for_gpu(reason="
|
|
129
|
+
@pass_if_not_implemented_for_gpu(reason="Sigmoid kernel is not implemented for GPU")
|
|
130
130
|
@pytest.mark.parametrize("queue", get_queues())
|
|
131
131
|
def test_dense_self_sigmoid_kernel(queue):
|
|
132
132
|
rng = np.random.RandomState(0)
|
|
@@ -150,7 +150,7 @@ def _test_dense_small_sigmoid_kernel(queue, gamma, coef0, dtype):
|
|
|
150
150
|
assert_allclose(result, expected, rtol=tol)
|
|
151
151
|
|
|
152
152
|
|
|
153
|
-
@pass_if_not_implemented_for_gpu(reason="
|
|
153
|
+
@pass_if_not_implemented_for_gpu(reason="Sigmoid kernel is not implemented for GPU")
|
|
154
154
|
@pytest.mark.parametrize("queue", get_queues())
|
|
155
155
|
@pytest.mark.parametrize("gamma", [0.1, 1.0, 2.4])
|
|
156
156
|
@pytest.mark.parametrize("coef0", [0.0, 1.0, 5.5])
|