scikit-learn-intelex 2025.4.0__py312-none-win_amd64.whl → 2025.6.0__py312-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- {scikit_learn_intelex-2025.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.cp312-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.cp312-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.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-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.cp312-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.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# ==============================================================================
|
|
2
1
|
# Copyright 2024 Intel Corporation
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17,9 +16,14 @@
|
|
|
17
16
|
import numpy as np
|
|
18
17
|
|
|
19
18
|
from daal4py.sklearn._utils import get_dtype
|
|
19
|
+
from onedal._device_offload import supports_queue
|
|
20
|
+
from onedal.common._backend import bind_default_backend
|
|
21
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
20
22
|
|
|
23
|
+
from .._config import _get_config
|
|
21
24
|
from ..datatypes import from_table, to_table
|
|
22
|
-
from ..utils import
|
|
25
|
+
from ..utils._array_api import _get_sycl_namespace
|
|
26
|
+
from ..utils.validation import _check_array
|
|
23
27
|
from .basic_statistics import BaseBasicStatistics
|
|
24
28
|
|
|
25
29
|
|
|
@@ -68,12 +72,22 @@ class IncrementalBasicStatistics(BaseBasicStatistics):
|
|
|
68
72
|
def __init__(self, result_options="all"):
|
|
69
73
|
super().__init__(result_options, algorithm="by_default")
|
|
70
74
|
self._reset()
|
|
75
|
+
self._queue = None
|
|
76
|
+
|
|
77
|
+
@bind_default_backend("basic_statistics")
|
|
78
|
+
def partial_compute_result(self): ...
|
|
79
|
+
|
|
80
|
+
@bind_default_backend("basic_statistics")
|
|
81
|
+
def partial_compute(self, *args, **kwargs): ...
|
|
82
|
+
|
|
83
|
+
@bind_default_backend("basic_statistics")
|
|
84
|
+
def finalize_compute(self, *args, **kwargs): ...
|
|
71
85
|
|
|
72
86
|
def _reset(self):
|
|
73
87
|
self._need_to_finalize = False
|
|
74
|
-
self.
|
|
75
|
-
|
|
76
|
-
)
|
|
88
|
+
self._queue = None
|
|
89
|
+
# get the _partial_result pointer from backend
|
|
90
|
+
self._partial_result = self.partial_compute_result()
|
|
77
91
|
|
|
78
92
|
def __getstate__(self):
|
|
79
93
|
# Since finalize_fit can't be dispatched without directly provided queue
|
|
@@ -85,6 +99,7 @@ class IncrementalBasicStatistics(BaseBasicStatistics):
|
|
|
85
99
|
|
|
86
100
|
return data
|
|
87
101
|
|
|
102
|
+
@supports_queue
|
|
88
103
|
def partial_fit(self, X, weights=None, queue=None):
|
|
89
104
|
"""
|
|
90
105
|
Computes partial data for basic statistics
|
|
@@ -104,40 +119,40 @@ class IncrementalBasicStatistics(BaseBasicStatistics):
|
|
|
104
119
|
self : object
|
|
105
120
|
Returns the instance itself.
|
|
106
121
|
"""
|
|
122
|
+
use_raw_input = _get_config().get("use_raw_input", False) is True
|
|
123
|
+
sua_iface, _, _ = _get_sycl_namespace(X)
|
|
124
|
+
|
|
125
|
+
# All data should use the same sycl queue
|
|
126
|
+
if use_raw_input and sua_iface:
|
|
127
|
+
queue = X.sycl_queue
|
|
128
|
+
|
|
107
129
|
self._queue = queue
|
|
108
|
-
policy = self._get_policy(queue, X)
|
|
109
130
|
|
|
110
|
-
|
|
111
|
-
X
|
|
112
|
-
|
|
113
|
-
if weights is not None:
|
|
114
|
-
weights = _check_array(
|
|
115
|
-
weights,
|
|
116
|
-
dtype=[np.float64, np.float32],
|
|
117
|
-
ensure_2d=False,
|
|
118
|
-
force_all_finite=False,
|
|
131
|
+
if not use_raw_input:
|
|
132
|
+
X = _check_array(
|
|
133
|
+
X, dtype=[np.float64, np.float32], ensure_2d=False, force_all_finite=False
|
|
119
134
|
)
|
|
135
|
+
if weights is not None:
|
|
136
|
+
weights = _check_array(
|
|
137
|
+
weights,
|
|
138
|
+
dtype=[np.float64, np.float32],
|
|
139
|
+
ensure_2d=False,
|
|
140
|
+
force_all_finite=False,
|
|
141
|
+
)
|
|
120
142
|
|
|
121
143
|
if not hasattr(self, "_onedal_params"):
|
|
122
144
|
dtype = get_dtype(X)
|
|
123
145
|
self._onedal_params = self._get_onedal_params(False, dtype=dtype)
|
|
124
146
|
|
|
125
147
|
X_table, weights_table = to_table(X, weights, queue=queue)
|
|
126
|
-
self._partial_result = self.
|
|
127
|
-
|
|
128
|
-
None,
|
|
129
|
-
"partial_compute",
|
|
130
|
-
policy,
|
|
131
|
-
self._onedal_params,
|
|
132
|
-
self._partial_result,
|
|
133
|
-
X_table,
|
|
134
|
-
weights_table,
|
|
148
|
+
self._partial_result = self.partial_compute(
|
|
149
|
+
self._onedal_params, self._partial_result, X_table, weights_table
|
|
135
150
|
)
|
|
136
151
|
|
|
137
152
|
self._need_to_finalize = True
|
|
138
|
-
|
|
153
|
+
self._queue = queue
|
|
139
154
|
|
|
140
|
-
def finalize_fit(self
|
|
155
|
+
def finalize_fit(self):
|
|
141
156
|
"""
|
|
142
157
|
Finalizes basic statistics computation and obtains result
|
|
143
158
|
attributes from the current `_partial_result`.
|
|
@@ -153,19 +168,9 @@ class IncrementalBasicStatistics(BaseBasicStatistics):
|
|
|
153
168
|
Returns the instance itself.
|
|
154
169
|
"""
|
|
155
170
|
if self._need_to_finalize:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
policy = self._get_policy(self._queue)
|
|
160
|
-
|
|
161
|
-
result = self._get_backend(
|
|
162
|
-
"basic_statistics",
|
|
163
|
-
None,
|
|
164
|
-
"finalize_compute",
|
|
165
|
-
policy,
|
|
166
|
-
self._onedal_params,
|
|
167
|
-
self._partial_result,
|
|
168
|
-
)
|
|
171
|
+
with QM.manage_global_queue(self._queue):
|
|
172
|
+
result = self.finalize_compute(self._onedal_params, self._partial_result)
|
|
173
|
+
|
|
169
174
|
options = self._get_result_options(self.options).split("|")
|
|
170
175
|
for opt in options:
|
|
171
176
|
setattr(self, opt, from_table(getattr(result, opt)).ravel())
|
|
@@ -16,15 +16,18 @@
|
|
|
16
16
|
|
|
17
17
|
import numpy as np
|
|
18
18
|
|
|
19
|
-
from daal4py.sklearn._utils import
|
|
19
|
+
from daal4py.sklearn._utils import make2d
|
|
20
|
+
from onedal._device_offload import supports_queue
|
|
20
21
|
|
|
21
|
-
from ..
|
|
22
|
+
from .._config import _get_config
|
|
23
|
+
from ..common._backend import bind_default_backend
|
|
22
24
|
from ..common._mixin import ClusterMixin
|
|
23
25
|
from ..datatypes import from_table, to_table
|
|
24
|
-
from ..utils import
|
|
26
|
+
from ..utils._array_api import _get_sycl_namespace
|
|
27
|
+
from ..utils.validation import _check_array
|
|
25
28
|
|
|
26
29
|
|
|
27
|
-
class
|
|
30
|
+
class DBSCAN(ClusterMixin):
|
|
28
31
|
def __init__(
|
|
29
32
|
self,
|
|
30
33
|
eps=0.5,
|
|
@@ -46,6 +49,9 @@ class BaseDBSCAN(BaseEstimator, ClusterMixin):
|
|
|
46
49
|
self.p = p
|
|
47
50
|
self.n_jobs = n_jobs
|
|
48
51
|
|
|
52
|
+
@bind_default_backend("dbscan.clustering")
|
|
53
|
+
def compute(self, params, data_table, weights_table): ...
|
|
54
|
+
|
|
49
55
|
def _get_onedal_params(self, dtype=np.float32):
|
|
50
56
|
return {
|
|
51
57
|
"fptype": dtype,
|
|
@@ -56,50 +62,37 @@ class BaseDBSCAN(BaseEstimator, ClusterMixin):
|
|
|
56
62
|
"result_options": "core_observation_indices|responses",
|
|
57
63
|
}
|
|
58
64
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
@supports_queue
|
|
66
|
+
def fit(self, X, y=None, sample_weight=None, queue=None):
|
|
67
|
+
use_raw_input = _get_config().get("use_raw_input", False) is True
|
|
68
|
+
sua_iface, xp, _ = _get_sycl_namespace(X)
|
|
69
|
+
|
|
70
|
+
if not use_raw_input:
|
|
71
|
+
X = _check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
|
|
72
|
+
X = make2d(X)
|
|
73
|
+
elif sua_iface is not None:
|
|
74
|
+
queue = X.sycl_queue
|
|
75
|
+
|
|
63
76
|
X_table, sample_weight_table = to_table(X, sample_weight, queue=queue)
|
|
64
77
|
|
|
65
78
|
params = self._get_onedal_params(X_table.dtype)
|
|
66
|
-
result =
|
|
79
|
+
result = self.compute(params, X_table, sample_weight_table)
|
|
67
80
|
|
|
68
|
-
self.labels_ = from_table(result.responses).ravel()
|
|
69
|
-
if
|
|
81
|
+
self.labels_ = from_table(result.responses, sycl_queue=queue).ravel()
|
|
82
|
+
if (
|
|
83
|
+
result.core_observation_indices is not None
|
|
84
|
+
and not result.core_observation_indices.kind == "empty"
|
|
85
|
+
):
|
|
70
86
|
self.core_sample_indices_ = from_table(
|
|
71
|
-
result.core_observation_indices
|
|
87
|
+
result.core_observation_indices,
|
|
88
|
+
sycl_queue=queue,
|
|
72
89
|
).ravel()
|
|
73
90
|
else:
|
|
74
|
-
|
|
75
|
-
|
|
91
|
+
# construct keyword arguments for different namespaces (dptcl takes sycl_queue)
|
|
92
|
+
kwargs = {"dtype": xp.int32} # always the same
|
|
93
|
+
if xp is not np:
|
|
94
|
+
kwargs["sycl_queue"] = queue
|
|
95
|
+
self.core_sample_indices_ = xp.empty((0,), **kwargs)
|
|
96
|
+
self.components_ = xp.take(X, self.core_sample_indices_, axis=0)
|
|
76
97
|
self.n_features_in_ = X.shape[1]
|
|
77
98
|
return self
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
class DBSCAN(BaseDBSCAN):
|
|
81
|
-
def __init__(
|
|
82
|
-
self,
|
|
83
|
-
eps=0.5,
|
|
84
|
-
*,
|
|
85
|
-
min_samples=5,
|
|
86
|
-
metric="euclidean",
|
|
87
|
-
metric_params=None,
|
|
88
|
-
algorithm="auto",
|
|
89
|
-
leaf_size=30,
|
|
90
|
-
p=None,
|
|
91
|
-
n_jobs=None,
|
|
92
|
-
):
|
|
93
|
-
self.eps = eps
|
|
94
|
-
self.min_samples = min_samples
|
|
95
|
-
self.metric = metric
|
|
96
|
-
self.metric_params = metric_params
|
|
97
|
-
self.algorithm = algorithm
|
|
98
|
-
self.leaf_size = leaf_size
|
|
99
|
-
self.p = p
|
|
100
|
-
self.n_jobs = n_jobs
|
|
101
|
-
|
|
102
|
-
def fit(self, X, y=None, sample_weight=None, queue=None):
|
|
103
|
-
return super()._fit(
|
|
104
|
-
X, y, sample_weight, self._get_backend("dbscan", "clustering", None), queue
|
|
105
|
-
)
|
|
@@ -20,9 +20,11 @@ from abc import ABC
|
|
|
20
20
|
|
|
21
21
|
import numpy as np
|
|
22
22
|
|
|
23
|
-
from daal4py.sklearn._utils import daal_check_version
|
|
24
|
-
from onedal import
|
|
23
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
24
|
+
from onedal._device_offload import supports_queue
|
|
25
25
|
from onedal.basic_statistics import BasicStatistics
|
|
26
|
+
from onedal.common._backend import bind_default_backend
|
|
27
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
26
28
|
|
|
27
29
|
if daal_check_version((2023, "P", 200)):
|
|
28
30
|
from .kmeans_init import KMeansInit
|
|
@@ -32,13 +34,13 @@ from sklearn.exceptions import ConvergenceWarning
|
|
|
32
34
|
from sklearn.metrics.pairwise import euclidean_distances
|
|
33
35
|
from sklearn.utils import check_random_state
|
|
34
36
|
|
|
35
|
-
from ..
|
|
37
|
+
from .._config import _get_config
|
|
36
38
|
from ..common._mixin import ClusterMixin, TransformerMixin
|
|
37
39
|
from ..datatypes import from_table, to_table
|
|
38
|
-
from ..utils import _check_array, _is_arraylike_not_scalar, _is_csr
|
|
40
|
+
from ..utils.validation import _check_array, _is_arraylike_not_scalar, _is_csr
|
|
39
41
|
|
|
40
42
|
|
|
41
|
-
class _BaseKMeans(
|
|
43
|
+
class _BaseKMeans(TransformerMixin, ClusterMixin, ABC):
|
|
42
44
|
def __init__(
|
|
43
45
|
self,
|
|
44
46
|
n_clusters,
|
|
@@ -60,6 +62,15 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
60
62
|
self.random_state = random_state
|
|
61
63
|
self.n_local_trials = n_local_trials
|
|
62
64
|
|
|
65
|
+
@bind_default_backend("kmeans_common", no_policy=True)
|
|
66
|
+
def _is_same_clustering(self, labels, best_labels, n_clusters): ...
|
|
67
|
+
|
|
68
|
+
@bind_default_backend("kmeans.clustering")
|
|
69
|
+
def train(self, params, X_table, centroids_table): ...
|
|
70
|
+
|
|
71
|
+
@bind_default_backend("kmeans.clustering")
|
|
72
|
+
def infer(self, params, model, centroids_table): ...
|
|
73
|
+
|
|
63
74
|
def _validate_center_shape(self, X, centers):
|
|
64
75
|
"""Check if centers is compatible with X and n_clusters."""
|
|
65
76
|
if centers.shape[0] != self.n_clusters:
|
|
@@ -73,14 +84,19 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
73
84
|
f"match the number of features of the data {X.shape[1]}."
|
|
74
85
|
)
|
|
75
86
|
|
|
76
|
-
def _get_kmeans_init(self, cluster_count, seed, algorithm):
|
|
77
|
-
return KMeansInit(
|
|
87
|
+
def _get_kmeans_init(self, cluster_count, seed, algorithm, is_csr):
|
|
88
|
+
return KMeansInit(
|
|
89
|
+
cluster_count=cluster_count,
|
|
90
|
+
seed=seed,
|
|
91
|
+
algorithm=algorithm,
|
|
92
|
+
is_csr=is_csr,
|
|
93
|
+
)
|
|
78
94
|
|
|
79
95
|
# Get appropriate backend (required for SPMD)
|
|
80
96
|
def _get_basic_statistics_backend(self, result_options):
|
|
81
97
|
return BasicStatistics(result_options)
|
|
82
98
|
|
|
83
|
-
def _tolerance(self, X_table, rtol, is_csr,
|
|
99
|
+
def _tolerance(self, X_table, rtol, is_csr, dtype):
|
|
84
100
|
"""Compute absolute tolerance from the relative tolerance"""
|
|
85
101
|
if rtol == 0.0:
|
|
86
102
|
return rtol
|
|
@@ -88,13 +104,13 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
88
104
|
|
|
89
105
|
bs = self._get_basic_statistics_backend("variance")
|
|
90
106
|
|
|
91
|
-
res = bs._compute_raw(X_table, dummy,
|
|
107
|
+
res = bs._compute_raw(X_table, dummy, dtype, is_csr)
|
|
92
108
|
mean_var = from_table(res["variance"]).mean()
|
|
93
109
|
|
|
94
110
|
return mean_var * rtol
|
|
95
111
|
|
|
96
112
|
def _check_params_vs_input(
|
|
97
|
-
self, X_table, is_csr,
|
|
113
|
+
self, X_table, is_csr, default_n_init=10, dtype=np.float32
|
|
98
114
|
):
|
|
99
115
|
# n_clusters
|
|
100
116
|
if X_table.shape[0] < self.n_clusters:
|
|
@@ -103,7 +119,7 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
103
119
|
)
|
|
104
120
|
|
|
105
121
|
# tol
|
|
106
|
-
self._tol = self._tolerance(X_table, self.tol, is_csr,
|
|
122
|
+
self._tol = self._tolerance(X_table, self.tol, is_csr, dtype)
|
|
107
123
|
|
|
108
124
|
# n-init
|
|
109
125
|
# TODO(1.4): Remove
|
|
@@ -159,42 +175,34 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
159
175
|
X_table,
|
|
160
176
|
init,
|
|
161
177
|
random_seed,
|
|
162
|
-
policy,
|
|
163
178
|
is_csr,
|
|
164
179
|
dtype=np.float32,
|
|
165
180
|
n_centroids=None,
|
|
166
181
|
):
|
|
167
182
|
n_clusters = self.n_clusters if n_centroids is None else n_centroids
|
|
168
|
-
# Use host policy for KMeans init, only for csr data
|
|
169
|
-
# as oneDAL KMeansInit for CSR data is not implemented on GPU
|
|
170
|
-
if is_csr:
|
|
171
|
-
init_policy = self._get_policy(None, None)
|
|
172
|
-
logging.getLogger("sklearnex").info("Running Sparse KMeansInit on CPU")
|
|
173
|
-
else:
|
|
174
|
-
init_policy = policy
|
|
175
183
|
|
|
176
184
|
if isinstance(init, str) and init == "k-means++":
|
|
177
|
-
if not is_csr
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
centers_table = alg.compute_raw(X_table, init_policy, dtype)
|
|
185
|
+
algorithm = "plus_plus_dense" if not is_csr else "plus_plus_csr"
|
|
186
|
+
alg = self._get_kmeans_init(
|
|
187
|
+
cluster_count=n_clusters,
|
|
188
|
+
seed=random_seed,
|
|
189
|
+
algorithm=algorithm,
|
|
190
|
+
is_csr=is_csr,
|
|
191
|
+
)
|
|
192
|
+
# We pass down the queue that was set through the KMeans.fit()
|
|
193
|
+
queue = QM.get_global_queue()
|
|
194
|
+
centers_table = alg.compute_raw(X_table, dtype, queue=queue)
|
|
188
195
|
elif isinstance(init, str) and init == "random":
|
|
189
|
-
if not is_csr
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
algorithm = "random_dense" if not is_csr else "random_csr"
|
|
197
|
+
alg = self._get_kmeans_init(
|
|
198
|
+
cluster_count=n_clusters,
|
|
199
|
+
seed=random_seed,
|
|
200
|
+
algorithm=algorithm,
|
|
201
|
+
is_csr=is_csr,
|
|
202
|
+
)
|
|
203
|
+
# We pass down the queue that was set through the KMeans.fit()
|
|
204
|
+
queue = QM.get_global_queue()
|
|
205
|
+
centers_table = alg.compute_raw(X_table, dtype, queue=queue)
|
|
198
206
|
elif _is_arraylike_not_scalar(init):
|
|
199
207
|
if _is_csr(init):
|
|
200
208
|
# oneDAL KMeans only supports Dense Centroids
|
|
@@ -205,13 +213,13 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
205
213
|
assert centers.shape[1] == X_table.column_count
|
|
206
214
|
# KMeans is implemented on both CPU and GPU for Dense and CSR data
|
|
207
215
|
# The original policy can be used here
|
|
208
|
-
centers_table = to_table(centers, queue=
|
|
216
|
+
centers_table = to_table(centers, queue=QM.get_global_queue())
|
|
209
217
|
else:
|
|
210
218
|
raise TypeError("Unsupported type of the `init` value")
|
|
211
219
|
|
|
212
220
|
return centers_table
|
|
213
221
|
|
|
214
|
-
def _init_centroids_sklearn(self, X, init, random_state,
|
|
222
|
+
def _init_centroids_sklearn(self, X, init, random_state, dtype=np.float32):
|
|
215
223
|
# For oneDAL versions < 2023.2 or callable init,
|
|
216
224
|
# using the scikit-learn implementation
|
|
217
225
|
logging.getLogger("sklearnex").info("Computing KMeansInit with Stock sklearn")
|
|
@@ -239,16 +247,14 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
239
247
|
f"callable, got '{ init }' instead."
|
|
240
248
|
)
|
|
241
249
|
|
|
242
|
-
return to_table(centers, queue=getattr(
|
|
250
|
+
return to_table(centers, queue=getattr(QM.get_global_queue(), "_queue", None))
|
|
243
251
|
|
|
244
|
-
def _fit_backend(
|
|
245
|
-
self, X_table, centroids_table, module, policy, dtype=np.float32, is_csr=False
|
|
246
|
-
):
|
|
252
|
+
def _fit_backend(self, X_table, centroids_table, dtype=np.float32, is_csr=False):
|
|
247
253
|
params = self._get_onedal_params(is_csr, dtype)
|
|
248
254
|
|
|
249
255
|
assert X_table.dtype == dtype
|
|
250
256
|
|
|
251
|
-
result =
|
|
257
|
+
result = self.train(params, X_table, centroids_table)
|
|
252
258
|
|
|
253
259
|
return (
|
|
254
260
|
result.responses,
|
|
@@ -257,16 +263,20 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
257
263
|
result.iteration_count,
|
|
258
264
|
)
|
|
259
265
|
|
|
260
|
-
def _fit(self, X
|
|
261
|
-
policy = self._get_policy(queue, X)
|
|
266
|
+
def _fit(self, X):
|
|
262
267
|
is_csr = _is_csr(X)
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
268
|
+
|
|
269
|
+
if _get_config()["use_raw_input"] is False:
|
|
270
|
+
X = _check_array(
|
|
271
|
+
X,
|
|
272
|
+
dtype=[np.float64, np.float32],
|
|
273
|
+
accept_sparse="csr",
|
|
274
|
+
force_all_finite=False,
|
|
275
|
+
)
|
|
276
|
+
X_table = to_table(X, queue=QM.get_global_queue())
|
|
267
277
|
dtype = X_table.dtype
|
|
268
278
|
|
|
269
|
-
self._check_params_vs_input(X_table, is_csr,
|
|
279
|
+
self._check_params_vs_input(X_table, is_csr, dtype=dtype)
|
|
270
280
|
|
|
271
281
|
self.n_features_in_ = X_table.column_count
|
|
272
282
|
|
|
@@ -277,12 +287,10 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
277
287
|
if best_inertia is None:
|
|
278
288
|
return True
|
|
279
289
|
else:
|
|
280
|
-
mod = self._get_backend("kmeans_common", None, None)
|
|
281
290
|
better_inertia = inertia < best_inertia
|
|
282
|
-
|
|
291
|
+
return better_inertia and not self._is_same_clustering(
|
|
283
292
|
labels, best_labels, self.n_clusters
|
|
284
293
|
)
|
|
285
|
-
return better_inertia and not same_clusters
|
|
286
294
|
|
|
287
295
|
random_state = check_random_state(self.random_state)
|
|
288
296
|
|
|
@@ -300,18 +308,18 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
300
308
|
if use_onedal_init:
|
|
301
309
|
random_seed = random_state.randint(np.iinfo("i").max)
|
|
302
310
|
centroids_table = self._init_centroids_onedal(
|
|
303
|
-
X_table, init, random_seed,
|
|
311
|
+
X_table, init, random_seed, is_csr, dtype=dtype
|
|
304
312
|
)
|
|
305
313
|
else:
|
|
306
314
|
centroids_table = self._init_centroids_sklearn(
|
|
307
|
-
X, init, random_state,
|
|
315
|
+
X, init, random_state, dtype=dtype
|
|
308
316
|
)
|
|
309
317
|
|
|
310
318
|
if self.verbose:
|
|
311
319
|
print("Initialization complete")
|
|
312
320
|
|
|
313
321
|
labels, inertia, model, n_iter = self._fit_backend(
|
|
314
|
-
X_table, centroids_table,
|
|
322
|
+
X_table, centroids_table, dtype, is_csr
|
|
315
323
|
)
|
|
316
324
|
|
|
317
325
|
if self.verbose:
|
|
@@ -350,7 +358,7 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
350
358
|
centroids = self.model_.centroids
|
|
351
359
|
self._cluster_centers_ = from_table(centroids)
|
|
352
360
|
else:
|
|
353
|
-
raise NameError("This model
|
|
361
|
+
raise NameError("This model has not been trained")
|
|
354
362
|
return self._cluster_centers_
|
|
355
363
|
|
|
356
364
|
@cluster_centers_.setter
|
|
@@ -360,7 +368,6 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
360
368
|
self.n_iter_ = 0
|
|
361
369
|
self.inertia_ = 0
|
|
362
370
|
|
|
363
|
-
self.model_ = self._get_backend("kmeans", "clustering", "model")
|
|
364
371
|
self.model_.centroids = to_table(self._cluster_centers_)
|
|
365
372
|
self.n_features_in_ = self.model_.centroids.column_count
|
|
366
373
|
self.labels_ = np.arange(self.model_.centroids.row_count)
|
|
@@ -371,27 +378,26 @@ class _BaseKMeans(onedal_BaseEstimator, TransformerMixin, ClusterMixin, ABC):
|
|
|
371
378
|
def cluster_centers_(self):
|
|
372
379
|
del self._cluster_centers_
|
|
373
380
|
|
|
374
|
-
def _predict(self, X,
|
|
381
|
+
def _predict(self, X, result_options=None):
|
|
375
382
|
is_csr = _is_csr(X)
|
|
376
383
|
|
|
377
|
-
|
|
378
|
-
X_table = to_table(X, queue=queue)
|
|
384
|
+
X_table = to_table(X, queue=QM.get_global_queue())
|
|
379
385
|
params = self._get_onedal_params(is_csr, X_table.dtype, result_options)
|
|
380
386
|
|
|
381
|
-
result =
|
|
387
|
+
result = self.infer(params, self.model_, X_table)
|
|
382
388
|
|
|
383
|
-
if
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
return result.objective_function_value * (-1)
|
|
389
|
+
if result_options == "compute_exact_objective_function":
|
|
390
|
+
# This is only set for score function
|
|
391
|
+
return -1 * result.objective_function_value
|
|
387
392
|
else:
|
|
388
393
|
return from_table(result.responses).ravel()
|
|
389
394
|
|
|
390
|
-
def _score(self, X
|
|
395
|
+
def _score(self, X):
|
|
391
396
|
result_options = "compute_exact_objective_function"
|
|
392
397
|
|
|
393
398
|
return self._predict(
|
|
394
|
-
X,
|
|
399
|
+
X,
|
|
400
|
+
result_options,
|
|
395
401
|
)
|
|
396
402
|
|
|
397
403
|
def _transform(self, X):
|
|
@@ -426,9 +432,11 @@ class KMeans(_BaseKMeans):
|
|
|
426
432
|
self.algorithm = algorithm
|
|
427
433
|
assert self.algorithm == "lloyd"
|
|
428
434
|
|
|
435
|
+
@supports_queue
|
|
429
436
|
def fit(self, X, y=None, queue=None):
|
|
430
|
-
return
|
|
437
|
+
return self._fit(X)
|
|
431
438
|
|
|
439
|
+
@supports_queue
|
|
432
440
|
def predict(self, X, queue=None):
|
|
433
441
|
"""Predict the closest cluster each sample in X belongs to.
|
|
434
442
|
|
|
@@ -446,7 +454,7 @@ class KMeans(_BaseKMeans):
|
|
|
446
454
|
labels : ndarray of shape (n_samples,)
|
|
447
455
|
Index of the cluster each sample belongs to.
|
|
448
456
|
"""
|
|
449
|
-
return
|
|
457
|
+
return self._predict(X)
|
|
450
458
|
|
|
451
459
|
def fit_predict(self, X, y=None, queue=None):
|
|
452
460
|
"""Compute cluster centers and predict cluster index for each sample.
|
|
@@ -509,6 +517,7 @@ class KMeans(_BaseKMeans):
|
|
|
509
517
|
|
|
510
518
|
return self._transform(X)
|
|
511
519
|
|
|
520
|
+
@supports_queue
|
|
512
521
|
def score(self, X, queue=None):
|
|
513
522
|
"""Opposite of the value of X on the K-means objective.
|
|
514
523
|
|
|
@@ -522,7 +531,7 @@ class KMeans(_BaseKMeans):
|
|
|
522
531
|
score: float
|
|
523
532
|
Opposite of the value of X on the K-means objective.
|
|
524
533
|
"""
|
|
525
|
-
return
|
|
534
|
+
return self._score(X)
|
|
526
535
|
|
|
527
536
|
|
|
528
537
|
def k_means(
|