scikit-learn-intelex 2025.7.0__py39-none-win_amd64.whl → 2025.9.0__py39-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.9.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +19 -8
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +17 -23
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +4 -4
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +545 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +5 -2
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +2 -2
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_device_offload.py +41 -40
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +52 -76
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +26 -41
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +6 -7
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +11 -11
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +7 -25
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +1 -1
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +31 -11
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +5 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +7 -16
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +13 -18
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +3 -3
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +6 -3
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +9 -24
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +85 -18
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -40
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +11 -5
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +5 -5
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +48 -160
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +75 -188
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +25 -11
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +10 -17
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +5 -4
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +14 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +3 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +51 -25
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_third_party.py +52 -2
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__init__.py +2 -1
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -5
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +13 -12
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_utils.py +31 -4
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +26 -37
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +33 -42
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +30 -27
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +1 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +139 -98
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +30 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -6
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +8 -2
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +22 -7
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +2 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +76 -68
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +69 -53
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +53 -41
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +122 -38
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +42 -31
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +27 -61
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +8 -6
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +260 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +55 -1
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +7 -4
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +6 -3
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +12 -8
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +7 -4
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +18 -8
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +7 -2
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +2 -2
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +19 -6
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +21 -4
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +16 -8
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -4
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +136 -13
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +71 -8
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +31 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -1
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +55 -6
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +1 -1
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +18 -14
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +3 -21
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +19 -1
- {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/METADATA +83 -92
- scikit_learn_intelex-2025.9.0.dist-info/RECORD +259 -0
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -1039
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -110
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +0 -200
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -423
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -115
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -134
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -129
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -119
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -227
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -43
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -82
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
- scikit_learn_intelex-2025.7.0.dist-info/RECORD +0 -258
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/base.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/top_level.txt +0 -0
|
@@ -14,10 +14,8 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
import numpy as np
|
|
18
17
|
from sklearn.base import BaseEstimator
|
|
19
|
-
from sklearn.utils import
|
|
20
|
-
from sklearn.utils.validation import _check_sample_weight
|
|
18
|
+
from sklearn.utils import gen_batches
|
|
21
19
|
|
|
22
20
|
from daal4py.sklearn._n_jobs_support import control_n_jobs
|
|
23
21
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
@@ -29,7 +27,8 @@ from .._config import get_config
|
|
|
29
27
|
from .._device_offload import dispatch
|
|
30
28
|
from .._utils import PatchingConditionsChain, _add_inc_serialization_note
|
|
31
29
|
from ..base import oneDALEstimator
|
|
32
|
-
from ..utils.
|
|
30
|
+
from ..utils._array_api import enable_array_api, get_namespace
|
|
31
|
+
from ..utils.validation import _check_sample_weight, validate_data
|
|
33
32
|
|
|
34
33
|
if sklearn_check_version("1.2"):
|
|
35
34
|
from sklearn.utils._param_validation import Interval, StrOptions
|
|
@@ -38,6 +37,7 @@ import numbers
|
|
|
38
37
|
import warnings
|
|
39
38
|
|
|
40
39
|
|
|
40
|
+
@enable_array_api
|
|
41
41
|
@control_n_jobs(decorated_methods=["partial_fit", "_onedal_finalize_fit"])
|
|
42
42
|
class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
43
43
|
"""
|
|
@@ -159,12 +159,7 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
def __init__(self, result_options="all", batch_size=None):
|
|
162
|
-
|
|
163
|
-
self.result_options = (
|
|
164
|
-
self._onedal_incremental_basic_statistics.get_all_result_options()
|
|
165
|
-
)
|
|
166
|
-
else:
|
|
167
|
-
self.result_options = result_options
|
|
162
|
+
self.result_options = result_options
|
|
168
163
|
self._need_to_finalize = False
|
|
169
164
|
self.batch_size = batch_size
|
|
170
165
|
|
|
@@ -177,15 +172,7 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
177
172
|
_onedal_cpu_supported = _onedal_supported
|
|
178
173
|
_onedal_gpu_supported = _onedal_supported
|
|
179
174
|
|
|
180
|
-
def
|
|
181
|
-
if isinstance(options, list):
|
|
182
|
-
onedal_options = "|".join(self.result_options)
|
|
183
|
-
else:
|
|
184
|
-
onedal_options = options
|
|
185
|
-
assert isinstance(onedal_options, str)
|
|
186
|
-
return options
|
|
187
|
-
|
|
188
|
-
def _onedal_finalize_fit(self):
|
|
175
|
+
def _onedal_finalize_fit(self, queue=None):
|
|
189
176
|
assert hasattr(self, "_onedal_estimator")
|
|
190
177
|
self._onedal_estimator.finalize_fit()
|
|
191
178
|
self._need_to_finalize = False
|
|
@@ -193,19 +180,20 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
193
180
|
def _onedal_partial_fit(self, X, sample_weight=None, queue=None, check_input=True):
|
|
194
181
|
first_pass = not hasattr(self, "n_samples_seen_") or self.n_samples_seen_ == 0
|
|
195
182
|
|
|
196
|
-
use_raw_input = get_config().get("use_raw_input", False) is True
|
|
197
183
|
# never check input when using raw input
|
|
198
|
-
check_input
|
|
199
|
-
|
|
184
|
+
if check_input and not get_config()["use_raw_input"]:
|
|
185
|
+
xp, _ = get_namespace(X)
|
|
200
186
|
X = validate_data(
|
|
201
187
|
self,
|
|
202
188
|
X,
|
|
203
|
-
dtype=[
|
|
189
|
+
dtype=[xp.float64, xp.float32],
|
|
204
190
|
reset=first_pass,
|
|
205
191
|
)
|
|
206
192
|
|
|
207
|
-
|
|
208
|
-
|
|
193
|
+
if sample_weight is not None:
|
|
194
|
+
sample_weight = _check_sample_weight(
|
|
195
|
+
sample_weight, X, dtype=[xp.float64, xp.float32]
|
|
196
|
+
)
|
|
209
197
|
|
|
210
198
|
if first_pass:
|
|
211
199
|
self.n_samples_seen_ = X.shape[0]
|
|
@@ -213,28 +201,25 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
213
201
|
else:
|
|
214
202
|
self.n_samples_seen_ += X.shape[0]
|
|
215
203
|
|
|
216
|
-
onedal_params = {
|
|
217
|
-
"result_options": self._get_onedal_result_options(self.result_options)
|
|
218
|
-
}
|
|
219
204
|
if not hasattr(self, "_onedal_estimator"):
|
|
220
205
|
self._onedal_estimator = self._onedal_incremental_basic_statistics(
|
|
221
|
-
|
|
206
|
+
result_options=self.result_options
|
|
222
207
|
)
|
|
223
|
-
|
|
208
|
+
|
|
209
|
+
self._onedal_estimator.partial_fit(X, sample_weight=sample_weight, queue=queue)
|
|
224
210
|
self._need_to_finalize = True
|
|
225
211
|
|
|
226
212
|
def _onedal_fit(self, X, sample_weight=None, queue=None):
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
self._validate_params()
|
|
231
|
-
|
|
232
|
-
X = validate_data(self, X, dtype=[np.float64, np.float32])
|
|
213
|
+
if not get_config()["use_raw_input"]:
|
|
214
|
+
xp, _ = get_namespace(X, sample_weight)
|
|
215
|
+
X = validate_data(self, X, dtype=[xp.float64, xp.float32])
|
|
233
216
|
|
|
234
217
|
if sample_weight is not None:
|
|
235
|
-
sample_weight = _check_sample_weight(
|
|
218
|
+
sample_weight = _check_sample_weight(
|
|
219
|
+
sample_weight, X, dtype=[xp.float64, xp.float32]
|
|
220
|
+
)
|
|
236
221
|
|
|
237
|
-
|
|
222
|
+
_, n_features = X.shape
|
|
238
223
|
if self.batch_size is None:
|
|
239
224
|
self.batch_size_ = 5 * n_features
|
|
240
225
|
else:
|
|
@@ -258,11 +243,12 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
258
243
|
return self
|
|
259
244
|
|
|
260
245
|
def __getattr__(self, attr):
|
|
261
|
-
result_options = self.__dict__["result_options"]
|
|
262
246
|
sattr = attr.removesuffix("_")
|
|
263
247
|
is_statistic_attr = (
|
|
264
|
-
|
|
265
|
-
|
|
248
|
+
sattr in self._onedal_estimator.options
|
|
249
|
+
if "_onedal_estimator" in self.__dict__
|
|
250
|
+
else False
|
|
251
|
+
)
|
|
266
252
|
if is_statistic_attr:
|
|
267
253
|
if self._need_to_finalize:
|
|
268
254
|
self._onedal_finalize_fit()
|
|
@@ -270,7 +256,8 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
270
256
|
warnings.warn(
|
|
271
257
|
"Result attributes without a trailing underscore were deprecated in version 2025.1 and will be removed in 2026.0"
|
|
272
258
|
)
|
|
273
|
-
|
|
259
|
+
attr += "_"
|
|
260
|
+
return getattr(self._onedal_estimator, attr)
|
|
274
261
|
if attr in self.__dict__:
|
|
275
262
|
return self.__dict__[attr]
|
|
276
263
|
|
|
@@ -301,6 +288,8 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
301
288
|
self : IncrementalBasicStatistics
|
|
302
289
|
Returns the instance itself.
|
|
303
290
|
"""
|
|
291
|
+
if sklearn_check_version("1.2") and check_input:
|
|
292
|
+
self._validate_params()
|
|
304
293
|
dispatch(
|
|
305
294
|
self,
|
|
306
295
|
"partial_fit",
|
|
@@ -334,6 +323,8 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
|
334
323
|
self : IncrementalBasicStatistics
|
|
335
324
|
Returns the instance itself.
|
|
336
325
|
"""
|
|
326
|
+
if sklearn_check_version("1.2"):
|
|
327
|
+
self._validate_params()
|
|
337
328
|
dispatch(
|
|
338
329
|
self,
|
|
339
330
|
"fit",
|
|
@@ -14,42 +14,30 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ===============================================================================
|
|
16
16
|
|
|
17
|
-
import numbers
|
|
18
|
-
from abc import ABC
|
|
19
|
-
|
|
20
17
|
from scipy import sparse as sp
|
|
21
18
|
from sklearn.cluster import DBSCAN as _sklearn_DBSCAN
|
|
22
|
-
from sklearn.utils.validation import _check_sample_weight
|
|
23
19
|
|
|
24
20
|
from daal4py.sklearn._n_jobs_support import control_n_jobs
|
|
25
21
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
26
22
|
from onedal.cluster import DBSCAN as onedal_DBSCAN
|
|
23
|
+
from onedal.utils._array_api import _is_numpy_namespace
|
|
27
24
|
|
|
28
25
|
from .._config import get_config
|
|
29
26
|
from .._device_offload import dispatch
|
|
30
27
|
from .._utils import PatchingConditionsChain
|
|
31
28
|
from ..base import oneDALEstimator
|
|
32
|
-
from ..utils.
|
|
29
|
+
from ..utils._array_api import enable_array_api, get_namespace
|
|
30
|
+
from ..utils.validation import _check_sample_weight, validate_data
|
|
33
31
|
|
|
34
32
|
if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
class BaseDBSCAN(oneDALEstimator):
|
|
39
|
-
def _onedal_dbscan(self, **onedal_params):
|
|
40
|
-
return onedal_DBSCAN(**onedal_params)
|
|
33
|
+
import numbers
|
|
41
34
|
|
|
42
|
-
|
|
43
|
-
assert hasattr(self, "_onedal_estimator")
|
|
44
|
-
|
|
45
|
-
self.labels_ = self._onedal_estimator.labels_
|
|
46
|
-
self.core_sample_indices_ = self._onedal_estimator.core_sample_indices_
|
|
47
|
-
self.components_ = self._onedal_estimator.components_
|
|
48
|
-
self.n_features_in_ = self._onedal_estimator.n_features_in_
|
|
35
|
+
from sklearn.utils import check_scalar
|
|
49
36
|
|
|
50
37
|
|
|
38
|
+
@enable_array_api
|
|
51
39
|
@control_n_jobs(decorated_methods=["fit"])
|
|
52
|
-
class DBSCAN(
|
|
40
|
+
class DBSCAN(oneDALEstimator, _sklearn_DBSCAN):
|
|
53
41
|
__doc__ = _sklearn_DBSCAN.__doc__
|
|
54
42
|
|
|
55
43
|
if sklearn_check_version("1.2"):
|
|
@@ -86,9 +74,18 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
|
|
|
86
74
|
self.p = p
|
|
87
75
|
self.n_jobs = n_jobs
|
|
88
76
|
|
|
77
|
+
_onedal_dbscan = staticmethod(onedal_DBSCAN)
|
|
78
|
+
|
|
89
79
|
def _onedal_fit(self, X, y, sample_weight=None, queue=None):
|
|
90
|
-
|
|
91
|
-
|
|
80
|
+
xp, _ = get_namespace(X, y, sample_weight)
|
|
81
|
+
if not get_config()["use_raw_input"]:
|
|
82
|
+
X = validate_data(
|
|
83
|
+
self, X, accept_sparse="csr", dtype=[xp.float64, xp.float32]
|
|
84
|
+
)
|
|
85
|
+
if sample_weight is not None:
|
|
86
|
+
sample_weight = _check_sample_weight(
|
|
87
|
+
sample_weight, X, dtype=[xp.float64, xp.float32]
|
|
88
|
+
)
|
|
92
89
|
|
|
93
90
|
onedal_params = {
|
|
94
91
|
"eps": self.eps,
|
|
@@ -103,7 +100,17 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
|
|
|
103
100
|
self._onedal_estimator = self._onedal_dbscan(**onedal_params)
|
|
104
101
|
|
|
105
102
|
self._onedal_estimator.fit(X, y=y, sample_weight=sample_weight, queue=queue)
|
|
106
|
-
self.
|
|
103
|
+
if self._onedal_estimator.core_sample_indices_ is None:
|
|
104
|
+
kwargs = {"dtype": xp.int32} # always the same
|
|
105
|
+
if not _is_numpy_namespace(xp):
|
|
106
|
+
kwargs["device"] = X.device
|
|
107
|
+
self.core_sample_indices_ = xp.empty((0,), **kwargs)
|
|
108
|
+
else:
|
|
109
|
+
self.core_sample_indices_ = self._onedal_estimator.core_sample_indices_
|
|
110
|
+
|
|
111
|
+
self.components_ = xp.take(X, self.core_sample_indices_, axis=0)
|
|
112
|
+
self.labels_ = self._onedal_estimator.labels_
|
|
113
|
+
self.n_features_in_ = X.shape[1]
|
|
107
114
|
|
|
108
115
|
def _onedal_supported(self, method_name, *data):
|
|
109
116
|
class_name = self.__class__.__name__
|
|
@@ -111,7 +118,7 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
|
|
|
111
118
|
f"sklearn.cluster.{class_name}.{method_name}"
|
|
112
119
|
)
|
|
113
120
|
if method_name == "fit":
|
|
114
|
-
X
|
|
121
|
+
X = data[0]
|
|
115
122
|
patching_status.and_conditions(
|
|
116
123
|
[
|
|
117
124
|
(
|
|
@@ -175,10 +182,6 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
|
|
|
175
182
|
else:
|
|
176
183
|
if self.eps <= 0.0:
|
|
177
184
|
raise ValueError(f"eps == {self.eps}, must be > 0.0.")
|
|
178
|
-
|
|
179
|
-
use_raw_input = get_config().get("use_raw_input", False) is True
|
|
180
|
-
if not use_raw_input and sample_weight is not None:
|
|
181
|
-
sample_weight = _check_sample_weight(sample_weight, X)
|
|
182
185
|
dispatch(
|
|
183
186
|
self,
|
|
184
187
|
"fit",
|
|
@@ -334,6 +334,7 @@ if daal_check_version((2023, "P", 200)):
|
|
|
334
334
|
return X
|
|
335
335
|
|
|
336
336
|
_transform = support_input_format(_sklearn_KMeans._transform)
|
|
337
|
+
transform = support_input_format(_sklearn_KMeans.transform)
|
|
337
338
|
|
|
338
339
|
@wrap_output_data
|
|
339
340
|
def score(self, X, y=None, sample_weight=None):
|
|
@@ -16,39 +16,40 @@
|
|
|
16
16
|
|
|
17
17
|
import numbers
|
|
18
18
|
import warnings
|
|
19
|
+
from functools import partial
|
|
19
20
|
|
|
20
21
|
import numpy as np
|
|
21
22
|
from scipy import linalg
|
|
22
23
|
from sklearn.base import BaseEstimator, clone
|
|
23
24
|
from sklearn.covariance import EmpiricalCovariance as _sklearn_EmpiricalCovariance
|
|
24
|
-
from sklearn.
|
|
25
|
-
from sklearn.utils import check_array, gen_batches
|
|
25
|
+
from sklearn.utils import gen_batches
|
|
26
26
|
from sklearn.utils.validation import _num_features, check_is_fitted
|
|
27
27
|
|
|
28
28
|
from daal4py.sklearn._n_jobs_support import control_n_jobs
|
|
29
29
|
from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
30
|
+
from daal4py.sklearn.metrics import pairwise_distances
|
|
31
|
+
from onedal._device_offload import support_input_format, support_sycl_format
|
|
30
32
|
from onedal.covariance import (
|
|
31
33
|
IncrementalEmpiricalCovariance as onedal_IncrementalEmpiricalCovariance,
|
|
32
34
|
)
|
|
33
35
|
from onedal.utils._array_api import _is_numpy_namespace
|
|
34
|
-
from sklearnex import config_context
|
|
35
36
|
|
|
36
|
-
from .._config import get_config
|
|
37
|
+
from .._config import config_context, get_config
|
|
37
38
|
from .._device_offload import dispatch, wrap_output_data
|
|
38
|
-
from .._utils import
|
|
39
|
-
PatchingConditionsChain,
|
|
40
|
-
_add_inc_serialization_note,
|
|
41
|
-
register_hyperparameters,
|
|
42
|
-
)
|
|
39
|
+
from .._utils import PatchingConditionsChain, _add_inc_serialization_note
|
|
43
40
|
from ..base import oneDALEstimator
|
|
44
|
-
from ..
|
|
45
|
-
from ..utils.
|
|
46
|
-
from ..utils.validation import check_feature_names, validate_data
|
|
41
|
+
from ..utils._array_api import _pinvh, enable_array_api, get_namespace, log_likelihood
|
|
42
|
+
from ..utils.validation import validate_data
|
|
47
43
|
|
|
48
44
|
if sklearn_check_version("1.2"):
|
|
49
45
|
from sklearn.utils._param_validation import Interval
|
|
50
46
|
|
|
47
|
+
# This is a temporary workaround for issues with sklearnex._device_offload._get_host_inputs
|
|
48
|
+
# passing kwargs with sycl queues with other host data will cause failures
|
|
49
|
+
_mahalanobis = support_input_format(partial(pairwise_distances, metric="mahalanobis"))
|
|
50
|
+
|
|
51
51
|
|
|
52
|
+
@enable_array_api
|
|
52
53
|
@control_n_jobs(decorated_methods=["partial_fit", "fit", "_onedal_finalize_fit"])
|
|
53
54
|
class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
54
55
|
"""
|
|
@@ -135,9 +136,6 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
135
136
|
"copy": ["boolean"],
|
|
136
137
|
}
|
|
137
138
|
|
|
138
|
-
get_precision = _sklearn_EmpiricalCovariance.get_precision
|
|
139
|
-
error_norm = wrap_output_data(_sklearn_EmpiricalCovariance.error_norm)
|
|
140
|
-
|
|
141
139
|
def __init__(
|
|
142
140
|
self, *, store_precision=False, assume_centered=False, batch_size=None, copy=True
|
|
143
141
|
):
|
|
@@ -158,11 +156,12 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
158
156
|
self._need_to_finalize = False
|
|
159
157
|
|
|
160
158
|
if not daal_check_version((2024, "P", 400)) and self.assume_centered:
|
|
159
|
+
xp, _ = get_namespace(self._onedal_estimator.location_)
|
|
161
160
|
location = self._onedal_estimator.location_[None, :]
|
|
162
|
-
self._onedal_estimator.covariance_ +=
|
|
163
|
-
self._onedal_estimator.location_ =
|
|
161
|
+
self._onedal_estimator.covariance_ += xp.dot(location.T, location)
|
|
162
|
+
self._onedal_estimator.location_ = xp.zeros_like(xp.squeeze(location))
|
|
164
163
|
if self.store_precision:
|
|
165
|
-
self.precision_ =
|
|
164
|
+
self.precision_ = _pinvh(
|
|
166
165
|
self._onedal_estimator.covariance_, check_finite=False
|
|
167
166
|
)
|
|
168
167
|
else:
|
|
@@ -193,21 +192,14 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
193
192
|
def _onedal_partial_fit(self, X, queue=None, check_input=True):
|
|
194
193
|
first_pass = not hasattr(self, "n_samples_seen_") or self.n_samples_seen_ == 0
|
|
195
194
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
check_input &= use_raw_input is False
|
|
199
|
-
# finite check occurs on onedal side
|
|
200
|
-
if check_input:
|
|
201
|
-
if sklearn_check_version("1.2"):
|
|
202
|
-
self._validate_params()
|
|
203
|
-
|
|
195
|
+
if check_input and not get_config()["use_raw_input"]:
|
|
196
|
+
xp, _ = get_namespace(X)
|
|
204
197
|
X = validate_data(
|
|
205
198
|
self,
|
|
206
199
|
X,
|
|
207
|
-
dtype=[
|
|
200
|
+
dtype=[xp.float64, xp.float32],
|
|
208
201
|
reset=first_pass,
|
|
209
202
|
copy=self.copy,
|
|
210
|
-
ensure_all_finite=False,
|
|
211
203
|
)
|
|
212
204
|
|
|
213
205
|
onedal_params = {
|
|
@@ -230,38 +222,12 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
230
222
|
|
|
231
223
|
return self
|
|
232
224
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
X = validate_data(
|
|
240
|
-
self,
|
|
241
|
-
X_test,
|
|
242
|
-
dtype=[xp.float64, xp.float32],
|
|
243
|
-
reset=False,
|
|
244
|
-
)
|
|
245
|
-
|
|
246
|
-
if not _is_numpy_namespace(xp):
|
|
247
|
-
location = xp.asarray(location, device=X_test.device)
|
|
248
|
-
# depending on the sklearn version, check_array
|
|
249
|
-
# and validate_data will return only numpy arrays
|
|
250
|
-
# which will break dpnp/dpctl support. If the
|
|
251
|
-
# array namespace isn't from numpy and the data
|
|
252
|
-
# is now a numpy array, it has been validated and
|
|
253
|
-
# the original can be used.
|
|
254
|
-
if isinstance(X, np.ndarray):
|
|
255
|
-
X = X_test
|
|
256
|
-
|
|
257
|
-
est = clone(self)
|
|
258
|
-
est.set_params(**{"assume_centered": True})
|
|
259
|
-
|
|
260
|
-
# test_cov is a numpy array, but calculated on device
|
|
261
|
-
test_cov = est.fit(X - location).covariance_
|
|
262
|
-
res = log_likelihood(test_cov, self.get_precision())
|
|
263
|
-
|
|
264
|
-
return res
|
|
225
|
+
def get_precision(self):
|
|
226
|
+
if self.store_precision:
|
|
227
|
+
precision = self.precision_
|
|
228
|
+
else:
|
|
229
|
+
precision = _pinvh(self.covariance_, check_finite=False)
|
|
230
|
+
return precision
|
|
265
231
|
|
|
266
232
|
def partial_fit(self, X, y=None, check_input=True):
|
|
267
233
|
"""
|
|
@@ -284,6 +250,8 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
284
250
|
self : IncrementalEmpiricalCovariance
|
|
285
251
|
Returns the instance itself.
|
|
286
252
|
"""
|
|
253
|
+
if sklearn_check_version("1.2") and check_input:
|
|
254
|
+
self._validate_params()
|
|
287
255
|
return dispatch(
|
|
288
256
|
self,
|
|
289
257
|
"partial_fit",
|
|
@@ -313,7 +281,8 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
313
281
|
self : IncrementalEmpiricalCovariance
|
|
314
282
|
Returns the instance itself.
|
|
315
283
|
"""
|
|
316
|
-
|
|
284
|
+
if sklearn_check_version("1.2"):
|
|
285
|
+
self._validate_params()
|
|
317
286
|
return dispatch(
|
|
318
287
|
self,
|
|
319
288
|
"fit",
|
|
@@ -329,19 +298,9 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
329
298
|
if hasattr(self, "_onedal_estimator"):
|
|
330
299
|
self._onedal_estimator._reset()
|
|
331
300
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
self._validate_params()
|
|
336
|
-
|
|
337
|
-
# finite check occurs on onedal side
|
|
338
|
-
X = validate_data(
|
|
339
|
-
self,
|
|
340
|
-
X,
|
|
341
|
-
dtype=[np.float64, np.float32],
|
|
342
|
-
copy=self.copy,
|
|
343
|
-
ensure_all_finite=False,
|
|
344
|
-
)
|
|
301
|
+
if not get_config()["use_raw_input"]:
|
|
302
|
+
xp, _ = get_namespace(X)
|
|
303
|
+
X = validate_data(self, X, dtype=[xp.float64, xp.float32], copy=self.copy)
|
|
345
304
|
|
|
346
305
|
self.batch_size_ = self.batch_size if self.batch_size else 5 * self.n_features_in_
|
|
347
306
|
|
|
@@ -351,40 +310,121 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
351
310
|
)
|
|
352
311
|
|
|
353
312
|
for batch in gen_batches(X.shape[0], self.batch_size_):
|
|
354
|
-
X_batch = X[batch]
|
|
313
|
+
X_batch = X[batch, ...]
|
|
355
314
|
self._onedal_partial_fit(X_batch, queue=queue, check_input=False)
|
|
356
315
|
|
|
357
316
|
self._onedal_finalize_fit()
|
|
358
317
|
|
|
359
318
|
return self
|
|
360
319
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
320
|
+
@wrap_output_data
|
|
321
|
+
@support_sycl_format
|
|
322
|
+
def score(self, X_test, y=None):
|
|
364
323
|
|
|
365
|
-
|
|
324
|
+
check_is_fitted(self)
|
|
325
|
+
# Only covariance evaluated for get_namespace due to dpnp/dpctl
|
|
326
|
+
# support without array_api_dispatch
|
|
327
|
+
xp, _ = get_namespace(X_test, self.covariance_)
|
|
328
|
+
|
|
329
|
+
X = validate_data(
|
|
330
|
+
self,
|
|
331
|
+
X_test,
|
|
332
|
+
dtype=[xp.float64, xp.float32],
|
|
333
|
+
reset=False,
|
|
334
|
+
)
|
|
335
|
+
|
|
336
|
+
location = self.location_
|
|
366
337
|
precision = self.get_precision()
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
338
|
+
|
|
339
|
+
est = clone(self)
|
|
340
|
+
est.set_params(assume_centered=True)
|
|
341
|
+
|
|
342
|
+
# test_cov is a numpy array, but calculated on device
|
|
343
|
+
test_cov = est.fit(X - self.location_).covariance_
|
|
372
344
|
if not _is_numpy_namespace(xp):
|
|
373
|
-
|
|
374
|
-
|
|
345
|
+
test_cov = xp.asarray(test_cov, device=X_test.device)
|
|
346
|
+
res = log_likelihood(test_cov, self.get_precision())
|
|
375
347
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
348
|
+
return res
|
|
349
|
+
|
|
350
|
+
@wrap_output_data
|
|
351
|
+
@support_sycl_format
|
|
352
|
+
def error_norm(self, comp_cov, norm="frobenius", scaling=True, squared=True):
|
|
353
|
+
# equivalent to the sklearn implementation but written for array API
|
|
354
|
+
# in the case of numpy-like inputs it will use sklearn's version instead.
|
|
355
|
+
# This can be deprecated if/when sklearn makes the equivalent array API enabled.
|
|
356
|
+
# This includes a validate_data call and an unusual call to get_namespace in
|
|
357
|
+
# order to also support dpnp/dpctl without array_api_dispatch.
|
|
358
|
+
check_is_fitted(self)
|
|
359
|
+
# Only covariance evaluated for get_namespace due to dpnp/dpctl
|
|
360
|
+
# support without array_api_dispatch
|
|
361
|
+
xp, _ = get_namespace(self.covariance_)
|
|
362
|
+
c_cov = validate_data(
|
|
363
|
+
self,
|
|
364
|
+
comp_cov,
|
|
365
|
+
dtype=[xp.float64, xp.float32],
|
|
366
|
+
reset=False,
|
|
367
|
+
)
|
|
368
|
+
|
|
369
|
+
if _is_numpy_namespace(xp):
|
|
370
|
+
# must be done this way is it does not inherit from sklearn
|
|
371
|
+
return _sklearn_EmpiricalCovariance.error_norm(
|
|
372
|
+
self, c_cov, norm=norm, scaling=scaling, squared=squared
|
|
373
|
+
)
|
|
374
|
+
|
|
375
|
+
# compute the error
|
|
376
|
+
error = c_cov - self.covariance_
|
|
377
|
+
# compute the error norm
|
|
378
|
+
if norm == "frobenius":
|
|
379
|
+
# variance from sklearn version to leverage BLAS GEMM
|
|
380
|
+
# squared_norm = xp.sum(error**2)
|
|
381
|
+
squared_norm = xp.matmul(xp.reshape(error, (-1)), xp.reshape(error, (-1)))
|
|
382
|
+
elif norm == "spectral":
|
|
383
|
+
squared_norm = xp.max(xp.linalg.svdvals(xp.matmul(error.T, error)))
|
|
384
|
+
else:
|
|
385
|
+
raise NotImplementedError("Only spectral and frobenius norms are implemented")
|
|
386
|
+
# optionally scale the error norm
|
|
387
|
+
if scaling:
|
|
388
|
+
squared_norm = squared_norm / error.shape[0]
|
|
389
|
+
# finally get either the squared norm or the norm
|
|
390
|
+
if squared:
|
|
391
|
+
result = squared_norm
|
|
392
|
+
else:
|
|
393
|
+
result = xp.sqrt(squared_norm)
|
|
394
|
+
|
|
395
|
+
return result
|
|
396
|
+
|
|
397
|
+
# expose sklearnex pairwise_distances if mahalanobis distance eventually supported
|
|
398
|
+
@support_sycl_format
|
|
399
|
+
def mahalanobis(self, X):
|
|
400
|
+
# This must be done as ```support_input_format``` is insufficient for array API
|
|
401
|
+
# support when attributes are non-numpy.
|
|
402
|
+
check_is_fitted(self)
|
|
403
|
+
precision = self.get_precision()
|
|
404
|
+
loc = self.location_[None, :]
|
|
405
|
+
xp, _ = get_namespace(X, precision, loc)
|
|
406
|
+
# do not check dtype, done in pairwise_distances
|
|
407
|
+
X_in = validate_data(self, X, reset=False)
|
|
408
|
+
|
|
409
|
+
if not _is_numpy_namespace(xp) and isinstance(X_in, np.ndarray):
|
|
410
|
+
# corrects issues with respect to dpnp/dpctl support without array_api_dispatch
|
|
411
|
+
X_in = X
|
|
412
|
+
loc = xp.asarray(loc, device=X.device)
|
|
413
|
+
precision = xp.asarray(precision, device=X.device)
|
|
414
|
+
|
|
415
|
+
with config_context(assume_finite=True):
|
|
416
|
+
try:
|
|
417
|
+
dist = _mahalanobis(X_in, loc, VI=precision)
|
|
418
|
+
|
|
419
|
+
except ValueError as e:
|
|
420
|
+
# Throw the expected sklearn error in an n_feature length violation
|
|
421
|
+
if "Incompatible dimension for X and Y matrices: X.shape[1] ==" in str(e):
|
|
422
|
+
raise ValueError(
|
|
423
|
+
f"X has {_num_features(X)} features, but {self.__class__.__name__} "
|
|
424
|
+
f"is expecting {self.n_features_in_} features as input."
|
|
425
|
+
) from None
|
|
426
|
+
else:
|
|
427
|
+
raise e
|
|
388
428
|
|
|
389
429
|
if not _is_numpy_namespace(xp):
|
|
390
430
|
dist = xp.asarray(dist, device=X.device)
|
|
@@ -397,3 +437,4 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
|
397
437
|
mahalanobis.__doc__ = _sklearn_EmpiricalCovariance.mahalanobis.__doc__
|
|
398
438
|
error_norm.__doc__ = _sklearn_EmpiricalCovariance.error_norm.__doc__
|
|
399
439
|
score.__doc__ = _sklearn_EmpiricalCovariance.score.__doc__
|
|
440
|
+
get_precision.__doc__ = _sklearn_EmpiricalCovariance.get_precision.__doc__
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ===============================================================================
|
|
16
16
|
|
|
17
|
+
from contextlib import nullcontext
|
|
17
18
|
from os import environ
|
|
18
19
|
|
|
19
20
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
@@ -285,3 +286,32 @@ def test_IncrementalEmpiricalCovariance_against_sklearn(monkeypatch, sklearn_tes
|
|
|
285
286
|
class_name = ".".join([sklearn_test.__module__, "EmpiricalCovariance"])
|
|
286
287
|
monkeypatch.setattr(class_name, IncrementalEmpiricalCovariance)
|
|
287
288
|
sklearn_test()
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
@pytest.mark.skipif(
|
|
292
|
+
not sklearn_check_version("1.4"), reason="requires array_api_support sklearn config"
|
|
293
|
+
)
|
|
294
|
+
@pytest.mark.parametrize("dispatch", [True, False])
|
|
295
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues("dpnp"))
|
|
296
|
+
def test_score_verify_namespace(dispatch, dataframe, queue):
|
|
297
|
+
from sklearnex import config_context
|
|
298
|
+
from sklearnex.covariance import IncrementalEmpiricalCovariance
|
|
299
|
+
|
|
300
|
+
est = IncrementalEmpiricalCovariance()
|
|
301
|
+
|
|
302
|
+
rng = np.random.seed(42)
|
|
303
|
+
X = np.random.rand(5, 10)
|
|
304
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
305
|
+
|
|
306
|
+
if dispatch:
|
|
307
|
+
cfg_context = config_context(array_api_dispatch=True)
|
|
308
|
+
err = pytest.raises(TypeError)
|
|
309
|
+
else:
|
|
310
|
+
# support_sycl_format will cause it to function
|
|
311
|
+
cfg_context = nullcontext()
|
|
312
|
+
err = nullcontext()
|
|
313
|
+
|
|
314
|
+
# calculate and store data on SYCL device (CPU or GPU)
|
|
315
|
+
with cfg_context, err:
|
|
316
|
+
est.fit(X_df)
|
|
317
|
+
est.score(X + 3)
|