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
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
from collections.abc import Callable
|
|
18
|
+
from functools import wraps
|
|
19
|
+
from typing import Any, Union
|
|
20
|
+
|
|
21
|
+
from onedal._device_offload import _copy_to_usm, _transfer_to_host
|
|
22
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
23
|
+
from onedal.utils._array_api import _asarray, _is_numpy_namespace
|
|
24
|
+
from onedal.utils._dpep_helpers import dpnp_available
|
|
25
|
+
|
|
26
|
+
if dpnp_available:
|
|
27
|
+
import dpnp
|
|
28
|
+
from onedal.utils._array_api import _convert_to_dpnp
|
|
29
|
+
|
|
30
|
+
from ._config import config_context, get_config, set_config
|
|
31
|
+
from ._utils import PatchingConditionsChain, get_tags
|
|
32
|
+
from .base import oneDALEstimator
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _get_backend(
|
|
36
|
+
obj: type[oneDALEstimator], method_name: str, *data
|
|
37
|
+
) -> tuple[Union[bool, None], PatchingConditionsChain]:
|
|
38
|
+
"""This function verifies the hardware conditions, data characteristics, and
|
|
39
|
+
estimator parameters necessary for offloading computation to oneDAL. The status
|
|
40
|
+
of this patching is returned as a PatchingConditionsChain object along with a
|
|
41
|
+
boolean flag signaling whether the computation can be offloaded to oneDAL or not.
|
|
42
|
+
It is assumed that the queue (which determined what hardware to possibly use for
|
|
43
|
+
oneDAL) has been previously and extensively collected (i.e. the data has already
|
|
44
|
+
been checked using onedal's SyclQueueManager for queues)."""
|
|
45
|
+
queue = QM.get_global_queue()
|
|
46
|
+
cpu_device = queue is None or getattr(queue.sycl_device, "is_cpu", True)
|
|
47
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
48
|
+
|
|
49
|
+
if cpu_device:
|
|
50
|
+
patching_status = obj._onedal_cpu_supported(method_name, *data)
|
|
51
|
+
return patching_status.get_status(), patching_status
|
|
52
|
+
|
|
53
|
+
if gpu_device:
|
|
54
|
+
patching_status = obj._onedal_gpu_supported(method_name, *data)
|
|
55
|
+
if (
|
|
56
|
+
not patching_status.get_status()
|
|
57
|
+
and (config := get_config())["allow_fallback_to_host"]
|
|
58
|
+
):
|
|
59
|
+
QM.fallback_to_host()
|
|
60
|
+
return None, patching_status
|
|
61
|
+
return patching_status.get_status(), patching_status
|
|
62
|
+
|
|
63
|
+
raise RuntimeError("Device support is not implemented for the supplied data type.")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
if "array_api_dispatch" in get_config():
|
|
67
|
+
_array_api_offload = lambda: get_config()["array_api_dispatch"]
|
|
68
|
+
else:
|
|
69
|
+
_array_api_offload = lambda: False
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def dispatch(
|
|
73
|
+
obj: type[oneDALEstimator],
|
|
74
|
+
method_name: str,
|
|
75
|
+
branches: dict[Callable, Callable],
|
|
76
|
+
*args,
|
|
77
|
+
**kwargs,
|
|
78
|
+
) -> Any:
|
|
79
|
+
"""Dispatch object method call to oneDAL if conditionally possible.
|
|
80
|
+
Depending on support conditions, oneDAL will be called, otherwise it will
|
|
81
|
+
fall back to calling scikit-learn. Dispatching to oneDAL can be influenced
|
|
82
|
+
by the 'use_raw_input' or 'allow_fallback_to_host' config parameters.
|
|
83
|
+
|
|
84
|
+
Parameters
|
|
85
|
+
----------
|
|
86
|
+
obj : object
|
|
87
|
+
sklearnex object which inherits from oneDALEstimator and contains
|
|
88
|
+
``onedal_cpu_supported`` and ``onedal_gpu_supported`` methods which
|
|
89
|
+
evaluate oneDAL support.
|
|
90
|
+
|
|
91
|
+
method_name : string
|
|
92
|
+
name of method to be evaluated for oneDAL support
|
|
93
|
+
|
|
94
|
+
branches : dict
|
|
95
|
+
dictionary containing functions to be called. Only keys 'sklearn' and
|
|
96
|
+
'onedal' are used which should contain the relevant scikit-learn and
|
|
97
|
+
onedal object methods respectively. All functions should accept the
|
|
98
|
+
inputs from *args and **kwargs. Additionally, the onedal object method
|
|
99
|
+
must accept a 'queue' keyword.
|
|
100
|
+
|
|
101
|
+
*args : tuple
|
|
102
|
+
arguments to be supplied to the dispatched method
|
|
103
|
+
|
|
104
|
+
**kwargs : dict
|
|
105
|
+
keyword arguments to be supplied to the dispatched method
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
unknown : object
|
|
110
|
+
Returned object dependent on the supplied branches. Implicitly the returned
|
|
111
|
+
object types should match for the sklearn and onedal object methods.
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
if get_config()["use_raw_input"]:
|
|
115
|
+
return branches["onedal"](obj, *args, **kwargs)
|
|
116
|
+
|
|
117
|
+
# Determine if array_api dispatching is enabled, and if estimator is capable
|
|
118
|
+
onedal_array_api = _array_api_offload() and get_tags(obj).onedal_array_api
|
|
119
|
+
sklearn_array_api = _array_api_offload() and get_tags(obj).array_api_support
|
|
120
|
+
|
|
121
|
+
# backend can only be a boolean or None, None signifies an unverified backend
|
|
122
|
+
backend: "bool | None" = None
|
|
123
|
+
|
|
124
|
+
# config context needs to be saved, as the sycl_queue_manager interacts with
|
|
125
|
+
# target_offload, which can regenerate a GPU queue later on. Therefore if a
|
|
126
|
+
# fallback occurs, then the state of target_offload must be set to default
|
|
127
|
+
# so that later use of get_global_queue only sends to host. We must modify
|
|
128
|
+
# the target offload settings, but we must also set the original value at the
|
|
129
|
+
# end, hence the need of a contextmanager.
|
|
130
|
+
with QM.manage_global_queue(None, *args):
|
|
131
|
+
if onedal_array_api:
|
|
132
|
+
backend, patching_status = _get_backend(obj, method_name, *args)
|
|
133
|
+
if backend:
|
|
134
|
+
queue = QM.get_global_queue()
|
|
135
|
+
patching_status.write_log(queue=queue, transferred_to_host=False)
|
|
136
|
+
return branches["onedal"](obj, *args, **kwargs, queue=queue)
|
|
137
|
+
elif sklearn_array_api and backend is False:
|
|
138
|
+
patching_status.write_log(transferred_to_host=False)
|
|
139
|
+
return branches["sklearn"](obj, *args, **kwargs)
|
|
140
|
+
|
|
141
|
+
# move data to host because of multiple reasons: array_api fallback to host,
|
|
142
|
+
# non array_api supporing oneDAL code, issues with usm support in sklearn.
|
|
143
|
+
has_usm_data_for_args, hostargs = _transfer_to_host(*args)
|
|
144
|
+
has_usm_data_for_kwargs, hostvalues = _transfer_to_host(*kwargs.values())
|
|
145
|
+
|
|
146
|
+
hostkwargs = dict(zip(kwargs.keys(), hostvalues))
|
|
147
|
+
has_usm_data = has_usm_data_for_args or has_usm_data_for_kwargs
|
|
148
|
+
|
|
149
|
+
while backend is None:
|
|
150
|
+
backend, patching_status = _get_backend(obj, method_name, *hostargs)
|
|
151
|
+
|
|
152
|
+
if backend:
|
|
153
|
+
queue = QM.get_global_queue()
|
|
154
|
+
patching_status.write_log(queue=queue, transferred_to_host=False)
|
|
155
|
+
return branches["onedal"](obj, *hostargs, **hostkwargs, queue=queue)
|
|
156
|
+
else:
|
|
157
|
+
if sklearn_array_api and not has_usm_data:
|
|
158
|
+
# dpnp fallback is not handled properly yet.
|
|
159
|
+
patching_status.write_log(transferred_to_host=False)
|
|
160
|
+
return branches["sklearn"](obj, *args, **kwargs)
|
|
161
|
+
else:
|
|
162
|
+
patching_status.write_log()
|
|
163
|
+
return branches["sklearn"](obj, *hostargs, **hostkwargs)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def wrap_output_data(func: Callable) -> Callable:
|
|
167
|
+
"""
|
|
168
|
+
Converts and moves the output arrays of the decorated function
|
|
169
|
+
to match the input array type and device.
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
@wraps(func)
|
|
173
|
+
def wrapper(self, *args, **kwargs) -> Any:
|
|
174
|
+
result = func(self, *args, **kwargs)
|
|
175
|
+
if not (len(args) == 0 and len(kwargs) == 0):
|
|
176
|
+
data = (*args, *kwargs.values())
|
|
177
|
+
|
|
178
|
+
usm_iface = getattr(data[0], "__sycl_usm_array_interface__", None)
|
|
179
|
+
if usm_iface is not None:
|
|
180
|
+
result = _copy_to_usm(usm_iface["syclobj"], result)
|
|
181
|
+
if dpnp_available and isinstance(data[0], dpnp.ndarray):
|
|
182
|
+
result = _convert_to_dpnp(result)
|
|
183
|
+
return result
|
|
184
|
+
|
|
185
|
+
if get_config().get("transform_output") in ("default", None):
|
|
186
|
+
input_array_api = getattr(data[0], "__array_namespace__", lambda: None)()
|
|
187
|
+
if input_array_api and not _is_numpy_namespace(input_array_api):
|
|
188
|
+
input_array_api_device = data[0].device
|
|
189
|
+
result = _asarray(
|
|
190
|
+
result, input_array_api, device=input_array_api_device
|
|
191
|
+
)
|
|
192
|
+
return result
|
|
193
|
+
|
|
194
|
+
return wrapper
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import logging
|
|
18
18
|
import os
|
|
19
19
|
import re
|
|
20
|
+
import sys
|
|
20
21
|
import warnings
|
|
21
22
|
from abc import ABC
|
|
22
23
|
|
|
@@ -27,16 +28,19 @@ from daal4py.sklearn._utils import (
|
|
|
27
28
|
)
|
|
28
29
|
from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
29
30
|
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
#
|
|
34
|
-
|
|
35
|
-
from sklearn.utils._estimator_html_repr import _HTMLDocumentationLinkMixin
|
|
31
|
+
# Not an ideal solution, but this allows for access to the outputs of older
|
|
32
|
+
# sklearnex tag dictionaries in a way similar to the sklearn >=1.6 tag
|
|
33
|
+
# dataclasses via duck-typing. At some point this must be removed for direct
|
|
34
|
+
# use of get_tags in all circumstances, dictated by sklearn support. This is
|
|
35
|
+
# implemented in a way to minimally impact performance.
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
|
|
38
|
+
if sklearn_check_version("1.6"):
|
|
39
|
+
from sklearn.utils import get_tags
|
|
38
40
|
else:
|
|
39
|
-
|
|
41
|
+
from sklearn.base import BaseEstimator
|
|
42
|
+
|
|
43
|
+
get_tags = lambda obj: type("Tags", (), BaseEstimator._get_tags(obj))
|
|
40
44
|
|
|
41
45
|
|
|
42
46
|
class PatchingConditionsChain(daal4py_PatchingConditionsChain):
|
|
@@ -51,7 +55,7 @@ class PatchingConditionsChain(daal4py_PatchingConditionsChain):
|
|
|
51
55
|
else:
|
|
52
56
|
self.logger.debug(
|
|
53
57
|
f"{self.scope_name}: debugging for the patch is enabled to track"
|
|
54
|
-
" the usage of
|
|
58
|
+
" the usage of oneAPI Data Analytics Library (oneDAL)"
|
|
55
59
|
)
|
|
56
60
|
for message in self.messages:
|
|
57
61
|
self.logger.debug(
|
|
@@ -141,37 +145,26 @@ def register_hyperparameters(hyperparameters_map):
|
|
|
141
145
|
return decorator
|
|
142
146
|
|
|
143
147
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
class
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if re.search(r"^\d\.\d\.\d$", sklearn.__version__):
|
|
168
|
-
sklearn_version_parts = sklearn.__version__.split(".")
|
|
169
|
-
doc_version_url = sklearn_version_parts[0] + "." + sklearn_version_parts[1]
|
|
170
|
-
else:
|
|
171
|
-
doc_version_url = "stable"
|
|
172
|
-
module_path, _ = self.__class__.__module__.rsplit(".", 1)
|
|
173
|
-
module_path = re.sub("sklearnex", "sklearn", module_path)
|
|
174
|
-
class_name = self.__class__.__name__
|
|
175
|
-
# for TSNE, which re-uses daal4py
|
|
176
|
-
module_path = re.sub(r"daal4py\.", "", module_path)
|
|
177
|
-
return f"https://scikit-learn.org/{doc_version_url}/modules/generated/{module_path}.{class_name}.html"
|
|
148
|
+
def _add_inc_serialization_note(class_docstrings: str) -> str:
|
|
149
|
+
"""Adds a small note note about serialization for extension estimators that are incremental.
|
|
150
|
+
The class docstrings should leave a placeholder '%incremental_serialization_note%' inside
|
|
151
|
+
their docstrings, which will be replaced by this note.
|
|
152
|
+
"""
|
|
153
|
+
# In python versions >=3.13, leading whitespace in docstrings defined through
|
|
154
|
+
# static strings (but **not through other ways**) is automatically removed
|
|
155
|
+
# from the final docstrings, while in earlier versions is kept.
|
|
156
|
+
inc_serialization_note = """Note
|
|
157
|
+
----
|
|
158
|
+
Serializing instances of this class will trigger a forced finalization of calculations
|
|
159
|
+
when the inputs are in a sycl queue or when using GPUs. Since (internal method)
|
|
160
|
+
finalize_fit can't be dispatched without directly provided queue and the dispatching
|
|
161
|
+
policy can't be serialized, the computation is finalized during serialization call and
|
|
162
|
+
the policy is not saved in serialized data."""
|
|
163
|
+
if sys.version_info.major == 3 and sys.version_info.minor <= 12:
|
|
164
|
+
inc_serialization_note = re.sub(
|
|
165
|
+
r"^", " " * 4, inc_serialization_note, flags=re.MULTILINE
|
|
166
|
+
)
|
|
167
|
+
inc_serialization_note = inc_serialization_note.strip()
|
|
168
|
+
return class_docstrings.replace(
|
|
169
|
+
r"%incremental_serialization_note%", inc_serialization_note
|
|
170
|
+
)
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright contributors to the oneDAL project
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ===============================================================================
|
|
16
|
+
|
|
17
|
+
from sklearn.base import BaseEstimator
|
|
18
|
+
|
|
19
|
+
from daal4py.sklearn._utils import sklearn_check_version
|
|
20
|
+
|
|
21
|
+
if sklearn_check_version("1.6"):
|
|
22
|
+
from dataclasses import dataclass, fields
|
|
23
|
+
|
|
24
|
+
from sklearn.utils import Tags as _sklearn_Tags
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class Tags(_sklearn_Tags):
|
|
28
|
+
onedal_array_api: bool = False
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class oneDALEstimator:
|
|
32
|
+
"""Inherited class for all oneDAL-based estimators.
|
|
33
|
+
|
|
34
|
+
This class must be inherited before any scikit-learn estimator
|
|
35
|
+
classes (i.e. those which inherit from scikit-learn's BaseEstimator).
|
|
36
|
+
|
|
37
|
+
It enables:
|
|
38
|
+
|
|
39
|
+
- dispatching to oneDAL
|
|
40
|
+
- html documentation
|
|
41
|
+
|
|
42
|
+
Notes
|
|
43
|
+
-----
|
|
44
|
+
Sklearnex-only estimators must inherit this class directly before
|
|
45
|
+
BaseEstimator in order to properly render documentation. Other
|
|
46
|
+
sklearn classes like Mixins can be before this class in the MRO
|
|
47
|
+
without any impact on functionality.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
if sklearn_check_version("1.6"):
|
|
51
|
+
# Starting in sklearn 1.6, _more_tags is deprecated. An oneDALEstimator
|
|
52
|
+
# is defined to handle the various versioning issues with the tags and
|
|
53
|
+
# with the ongoing rollout of sklearn's array_api support. This will make
|
|
54
|
+
# maintenance easier, and centralize tag changes to a single location.
|
|
55
|
+
|
|
56
|
+
def __sklearn_tags__(self) -> Tags:
|
|
57
|
+
# This convention is unnecessarily restrictive with more performant
|
|
58
|
+
# alternatives but it best follows sklearn. Subclasses will now only need
|
|
59
|
+
# to set `onedal_array_api` to True to signify gpu zero-copy support
|
|
60
|
+
# and maintenance is smaller because of underlying sklearn infrastructure
|
|
61
|
+
sktags = super().__sklearn_tags__()
|
|
62
|
+
tag_dict = {
|
|
63
|
+
field.name: getattr(sktags, field.name) for field in fields(sktags)
|
|
64
|
+
}
|
|
65
|
+
return Tags(**tag_dict)
|
|
66
|
+
|
|
67
|
+
elif sklearn_check_version("1.3"):
|
|
68
|
+
|
|
69
|
+
def _more_tags(self) -> dict[bool]:
|
|
70
|
+
return {"onedal_array_api": False}
|
|
71
|
+
|
|
72
|
+
else:
|
|
73
|
+
# array_api_support tag was added in sklearn 1.3 via scikit-learn/scikit-learn#26372
|
|
74
|
+
def _more_tags(self) -> dict[bool, bool]:
|
|
75
|
+
return {"array_api_support": False, "onedal_array_api": False}
|
|
76
|
+
|
|
77
|
+
if sklearn_check_version("1.4"):
|
|
78
|
+
|
|
79
|
+
@property
|
|
80
|
+
def _doc_link_module(self) -> str:
|
|
81
|
+
return "sklearnex"
|
|
82
|
+
|
|
83
|
+
def _doc_link_url_param_generator(self, *_) -> dict[str, str]:
|
|
84
|
+
return {
|
|
85
|
+
"estimator_module": "sklearn."
|
|
86
|
+
+ self.__class__.__module__.rsplit(".", 2)[-2],
|
|
87
|
+
"estimator_name": self.__class__.__name__,
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
def _get_doc_link(self) -> str:
|
|
91
|
+
# This method is meant to generate a clickable doc link for classses
|
|
92
|
+
# in sklearnex including those that are not part of base scikit-learn.
|
|
93
|
+
# It should be inherited before inheriting from a scikit-learn estimator.
|
|
94
|
+
|
|
95
|
+
mro = self.__class__.__mro__
|
|
96
|
+
# The next object in the Estimators MRO after oneDALEstimator should be
|
|
97
|
+
# the equivalent sklearn estimator, if it is BaseEstimator, it is a
|
|
98
|
+
# sklearnex-only estimator.
|
|
99
|
+
url = BaseEstimator._get_doc_link(self)
|
|
100
|
+
if (
|
|
101
|
+
url
|
|
102
|
+
and oneDALEstimator in mro
|
|
103
|
+
and mro[mro.index(oneDALEstimator) + 1] is BaseEstimator
|
|
104
|
+
):
|
|
105
|
+
module_path, _ = self.__class__.__module__.rsplit(".", 1)
|
|
106
|
+
class_name = self.__class__.__name__
|
|
107
|
+
url = f"https://uxlfoundation.github.io/scikit-learn-intelex/latest/non-scikit-algorithms.html#{module_path}.{class_name}"
|
|
108
|
+
|
|
109
|
+
return url
|
|
@@ -25,22 +25,19 @@ from sklearn.utils.validation import _check_sample_weight
|
|
|
25
25
|
from daal4py.sklearn._n_jobs_support import control_n_jobs
|
|
26
26
|
from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
27
27
|
from onedal.basic_statistics import BasicStatistics as onedal_BasicStatistics
|
|
28
|
-
from onedal.utils import _is_csr
|
|
28
|
+
from onedal.utils.validation import _is_csr
|
|
29
29
|
|
|
30
30
|
from .._device_offload import dispatch
|
|
31
|
-
from .._utils import
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
from sklearn.utils.validation import validate_data
|
|
35
|
-
else:
|
|
36
|
-
validate_data = BaseEstimator._validate_data
|
|
31
|
+
from .._utils import PatchingConditionsChain
|
|
32
|
+
from ..base import oneDALEstimator
|
|
33
|
+
from ..utils.validation import validate_data
|
|
37
34
|
|
|
38
35
|
if sklearn_check_version("1.2"):
|
|
39
36
|
from sklearn.utils._param_validation import StrOptions
|
|
40
37
|
|
|
41
38
|
|
|
42
39
|
@control_n_jobs(decorated_methods=["fit"])
|
|
43
|
-
class BasicStatistics(
|
|
40
|
+
class BasicStatistics(oneDALEstimator, BaseEstimator):
|
|
44
41
|
"""
|
|
45
42
|
Estimator for basic statistics.
|
|
46
43
|
Allows to compute basic statistics for provided data.
|
|
@@ -204,16 +201,13 @@ class BasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
204
201
|
if sklearn_check_version("1.2"):
|
|
205
202
|
self._validate_params()
|
|
206
203
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
)
|
|
215
|
-
else:
|
|
216
|
-
X = check_array(X, dtype=[np.float64, np.float32])
|
|
204
|
+
X = validate_data(
|
|
205
|
+
self,
|
|
206
|
+
X,
|
|
207
|
+
dtype=[np.float64, np.float32],
|
|
208
|
+
ensure_2d=False,
|
|
209
|
+
accept_sparse="csr",
|
|
210
|
+
)
|
|
217
211
|
|
|
218
212
|
if sample_weight is not None:
|
|
219
213
|
sample_weight = _check_sample_weight(sample_weight, X)
|
|
@@ -224,11 +218,11 @@ class BasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
224
218
|
|
|
225
219
|
if not hasattr(self, "_onedal_estimator"):
|
|
226
220
|
self._onedal_estimator = self._onedal_basic_statistics(**onedal_params)
|
|
227
|
-
self._onedal_estimator.fit(X, sample_weight, queue)
|
|
221
|
+
self._onedal_estimator.fit(X, sample_weight, queue=queue)
|
|
228
222
|
self._save_attributes()
|
|
229
223
|
self.n_features_in_ = X.shape[1] if len(X.shape) > 1 else 1
|
|
230
224
|
|
|
231
|
-
def fit(self, X, y=None,
|
|
225
|
+
def fit(self, X, y=None, sample_weight=None):
|
|
232
226
|
"""Calculate statistics of X.
|
|
233
227
|
|
|
234
228
|
Parameters
|
|
@@ -25,8 +25,11 @@ from onedal.basic_statistics import (
|
|
|
25
25
|
IncrementalBasicStatistics as onedal_IncrementalBasicStatistics,
|
|
26
26
|
)
|
|
27
27
|
|
|
28
|
+
from .._config import get_config
|
|
28
29
|
from .._device_offload import dispatch
|
|
29
|
-
from .._utils import
|
|
30
|
+
from .._utils import PatchingConditionsChain, _add_inc_serialization_note
|
|
31
|
+
from ..base import oneDALEstimator
|
|
32
|
+
from ..utils.validation import validate_data
|
|
30
33
|
|
|
31
34
|
if sklearn_check_version("1.2"):
|
|
32
35
|
from sklearn.utils._param_validation import Interval, StrOptions
|
|
@@ -34,14 +37,9 @@ if sklearn_check_version("1.2"):
|
|
|
34
37
|
import numbers
|
|
35
38
|
import warnings
|
|
36
39
|
|
|
37
|
-
if sklearn_check_version("1.6"):
|
|
38
|
-
from sklearn.utils.validation import validate_data
|
|
39
|
-
else:
|
|
40
|
-
validate_data = BaseEstimator._validate_data
|
|
41
|
-
|
|
42
40
|
|
|
43
41
|
@control_n_jobs(decorated_methods=["partial_fit", "_onedal_finalize_fit"])
|
|
44
|
-
class IncrementalBasicStatistics(
|
|
42
|
+
class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
45
43
|
"""
|
|
46
44
|
Calculates basic statistics on the given data, allows for computation when the data are split into
|
|
47
45
|
batches. The user can use ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
|
|
@@ -103,18 +101,13 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
103
101
|
----
|
|
104
102
|
Attribute exists only if corresponding result option has been provided.
|
|
105
103
|
|
|
106
|
-
Note
|
|
107
|
-
----
|
|
108
|
-
Serializing instances of this class will trigger a forced finalization of calculations.
|
|
109
|
-
Since finalize_fit can't be dispatched without directly provided queue
|
|
110
|
-
and the dispatching policy can't be serialized, the computation is finalized
|
|
111
|
-
during serialization call and the policy is not saved in serialized data.
|
|
112
|
-
|
|
113
104
|
Note
|
|
114
105
|
----
|
|
115
106
|
Names of attributes without the trailing underscore are
|
|
116
107
|
supported currently but deprecated in 2025.1 and will be removed in 2026.0
|
|
117
108
|
|
|
109
|
+
%incremental_serialization_note%
|
|
110
|
+
|
|
118
111
|
Examples
|
|
119
112
|
--------
|
|
120
113
|
>>> import numpy as np
|
|
@@ -134,6 +127,8 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
134
127
|
np.array([3., 4.])
|
|
135
128
|
"""
|
|
136
129
|
|
|
130
|
+
__doc__ = _add_inc_serialization_note(__doc__)
|
|
131
|
+
|
|
137
132
|
_onedal_incremental_basic_statistics = staticmethod(onedal_IncrementalBasicStatistics)
|
|
138
133
|
|
|
139
134
|
if sklearn_check_version("1.2"):
|
|
@@ -186,29 +181,26 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
186
181
|
assert isinstance(onedal_options, str)
|
|
187
182
|
return options
|
|
188
183
|
|
|
189
|
-
def _onedal_finalize_fit(self
|
|
184
|
+
def _onedal_finalize_fit(self):
|
|
190
185
|
assert hasattr(self, "_onedal_estimator")
|
|
191
|
-
self._onedal_estimator.finalize_fit(
|
|
186
|
+
self._onedal_estimator.finalize_fit()
|
|
192
187
|
self._need_to_finalize = False
|
|
193
188
|
|
|
194
189
|
def _onedal_partial_fit(self, X, sample_weight=None, queue=None, check_input=True):
|
|
195
190
|
first_pass = not hasattr(self, "n_samples_seen_") or self.n_samples_seen_ == 0
|
|
196
191
|
|
|
192
|
+
use_raw_input = get_config().get("use_raw_input", False) is True
|
|
193
|
+
# never check input when using raw input
|
|
194
|
+
check_input &= use_raw_input is False
|
|
197
195
|
if check_input:
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
)
|
|
205
|
-
else:
|
|
206
|
-
X = check_array(
|
|
207
|
-
X,
|
|
208
|
-
dtype=[np.float64, np.float32],
|
|
209
|
-
)
|
|
196
|
+
X = validate_data(
|
|
197
|
+
self,
|
|
198
|
+
X,
|
|
199
|
+
dtype=[np.float64, np.float32],
|
|
200
|
+
reset=first_pass,
|
|
201
|
+
)
|
|
210
202
|
|
|
211
|
-
if sample_weight is not None:
|
|
203
|
+
if not use_raw_input and sample_weight is not None:
|
|
212
204
|
sample_weight = _check_sample_weight(sample_weight, X)
|
|
213
205
|
|
|
214
206
|
if first_pass:
|
|
@@ -228,16 +220,15 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
228
220
|
self._need_to_finalize = True
|
|
229
221
|
|
|
230
222
|
def _onedal_fit(self, X, sample_weight=None, queue=None):
|
|
231
|
-
|
|
232
|
-
|
|
223
|
+
use_raw_input = get_config().get("use_raw_input", False) is True
|
|
224
|
+
if not use_raw_input:
|
|
225
|
+
if sklearn_check_version("1.2"):
|
|
226
|
+
self._validate_params()
|
|
233
227
|
|
|
234
|
-
if sklearn_check_version("1.0"):
|
|
235
228
|
X = validate_data(self, X, dtype=[np.float64, np.float32])
|
|
236
|
-
else:
|
|
237
|
-
X = check_array(X, dtype=[np.float64, np.float32])
|
|
238
229
|
|
|
239
|
-
|
|
240
|
-
|
|
230
|
+
if sample_weight is not None:
|
|
231
|
+
sample_weight = _check_sample_weight(sample_weight, X)
|
|
241
232
|
|
|
242
233
|
n_samples, n_features = X.shape
|
|
243
234
|
if self.batch_size is None:
|
|
@@ -258,7 +249,7 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
258
249
|
|
|
259
250
|
self.n_features_in_ = X.shape[1]
|
|
260
251
|
|
|
261
|
-
self._onedal_finalize_fit(
|
|
252
|
+
self._onedal_finalize_fit()
|
|
262
253
|
|
|
263
254
|
return self
|
|
264
255
|
|
|
@@ -303,7 +294,7 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
303
294
|
|
|
304
295
|
Returns
|
|
305
296
|
-------
|
|
306
|
-
self :
|
|
297
|
+
self : IncrementalBasicStatistics
|
|
307
298
|
Returns the instance itself.
|
|
308
299
|
"""
|
|
309
300
|
dispatch(
|
|
@@ -320,7 +311,7 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
320
311
|
return self
|
|
321
312
|
|
|
322
313
|
def fit(self, X, y=None, sample_weight=None):
|
|
323
|
-
"""Calculate statistics of X using minibatches of size batch_size
|
|
314
|
+
"""Calculate statistics of X using minibatches of size ``batch_size``.
|
|
324
315
|
|
|
325
316
|
Parameters
|
|
326
317
|
----------
|
|
@@ -336,7 +327,7 @@ class IncrementalBasicStatistics(IntelEstimator, BaseEstimator):
|
|
|
336
327
|
|
|
337
328
|
Returns
|
|
338
329
|
-------
|
|
339
|
-
self :
|
|
330
|
+
self : IncrementalBasicStatistics
|
|
340
331
|
Returns the instance itself.
|
|
341
332
|
"""
|
|
342
333
|
dispatch(
|