scikit-learn-intelex 2025.7.0__py310-none-win_amd64.whl → 2025.9.0__py310-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-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.cp310-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.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-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.cp310-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.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-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
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2024 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
|
+
import numpy as np
|
|
18
|
+
import scipy.sparse as sp
|
|
19
|
+
from sklearn.decomposition import IncrementalPCA as _sklearn_IncrementalPCA
|
|
20
|
+
from sklearn.utils import check_array, gen_batches
|
|
21
|
+
from sklearn.utils.validation import check_is_fitted
|
|
22
|
+
|
|
23
|
+
from daal4py.sklearn._n_jobs_support import control_n_jobs
|
|
24
|
+
from daal4py.sklearn._utils import sklearn_check_version
|
|
25
|
+
from onedal.decomposition import IncrementalPCA as onedal_IncrementalPCA
|
|
26
|
+
|
|
27
|
+
from ..._config import get_config
|
|
28
|
+
from ..._device_offload import dispatch, wrap_output_data
|
|
29
|
+
from ..._utils import PatchingConditionsChain, _add_inc_serialization_note
|
|
30
|
+
from ...base import oneDALEstimator
|
|
31
|
+
from ...utils._array_api import enable_array_api, get_namespace
|
|
32
|
+
from ...utils.validation import validate_data
|
|
33
|
+
|
|
34
|
+
if sklearn_check_version("1.2"):
|
|
35
|
+
from sklearn.utils._param_validation import StrOptions
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@enable_array_api
|
|
39
|
+
@control_n_jobs(
|
|
40
|
+
decorated_methods=["fit", "partial_fit", "transform", "_onedal_finalize_fit"]
|
|
41
|
+
)
|
|
42
|
+
class IncrementalPCA(oneDALEstimator, _sklearn_IncrementalPCA):
|
|
43
|
+
__doc__ = _sklearn_IncrementalPCA.__doc__
|
|
44
|
+
|
|
45
|
+
if sklearn_check_version("1.2"):
|
|
46
|
+
_parameter_constraints: dict = {
|
|
47
|
+
**_sklearn_IncrementalPCA._parameter_constraints,
|
|
48
|
+
"svd_solver": [StrOptions({"auto", "covariance_eigh", "onedal_svd"})],
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
def __init__(
|
|
52
|
+
self,
|
|
53
|
+
n_components=None,
|
|
54
|
+
*,
|
|
55
|
+
whiten=False,
|
|
56
|
+
copy=True,
|
|
57
|
+
batch_size=None,
|
|
58
|
+
svd_solver="auto",
|
|
59
|
+
):
|
|
60
|
+
super().__init__(
|
|
61
|
+
n_components=n_components, whiten=whiten, copy=copy, batch_size=batch_size
|
|
62
|
+
)
|
|
63
|
+
self.svd_solver = svd_solver
|
|
64
|
+
self._need_to_finalize = False
|
|
65
|
+
# Note: use of the onedal_svd solver will cause partial result to grow proportionally
|
|
66
|
+
# to the input data and for that reason is not the default, which is contrary
|
|
67
|
+
# to the scikit-learn implementation.
|
|
68
|
+
|
|
69
|
+
_onedal_incremental_pca = staticmethod(onedal_IncrementalPCA)
|
|
70
|
+
|
|
71
|
+
def _set_n_components(self, n_components, n_samples, n_features, first_pass):
|
|
72
|
+
# extracted from sklearn's ``IncrementalPCA.partial_fit``. This is a
|
|
73
|
+
# maintenance burden that cannot be easily separated from sklearn.
|
|
74
|
+
if n_components is None:
|
|
75
|
+
if self._components_ is None:
|
|
76
|
+
self._n_components_ = min(n_samples, n_features)
|
|
77
|
+
else:
|
|
78
|
+
self._n_components_ = self.components_.shape[0]
|
|
79
|
+
elif not 1 <= n_components <= n_features:
|
|
80
|
+
raise ValueError(
|
|
81
|
+
"n_components=%r invalid for n_features=%d, need "
|
|
82
|
+
"more rows than columns for IncrementalPCA "
|
|
83
|
+
"processing" % (self.n_components, n_features)
|
|
84
|
+
)
|
|
85
|
+
elif n_components > n_samples and (
|
|
86
|
+
not sklearn_check_version("1.6") or first_pass
|
|
87
|
+
):
|
|
88
|
+
raise ValueError(
|
|
89
|
+
"n_components=%r must be less or equal to "
|
|
90
|
+
"the batch number of samples "
|
|
91
|
+
"%d" % (self.n_components, n_samples)
|
|
92
|
+
+ (
|
|
93
|
+
" for the first partial_fit call."
|
|
94
|
+
if sklearn_check_version("1.6")
|
|
95
|
+
else ""
|
|
96
|
+
)
|
|
97
|
+
)
|
|
98
|
+
else:
|
|
99
|
+
self._n_components_ = n_components
|
|
100
|
+
|
|
101
|
+
# the private variables are used to not trigger _onedal_finalize_fit
|
|
102
|
+
if (self._components_ is not None) and (
|
|
103
|
+
self._components_.shape[0] != self._n_components_
|
|
104
|
+
):
|
|
105
|
+
raise ValueError(
|
|
106
|
+
"Number of input features has changed from %i "
|
|
107
|
+
"to %i between calls to partial_fit! Try "
|
|
108
|
+
"setting n_components to a fixed value."
|
|
109
|
+
% (self.components_.shape[0], self.n_components_)
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
def _compute_noise_variance(self, n_sf_min, xp):
|
|
113
|
+
# generally replicates capability seen in sklearn.PCA._fit_full
|
|
114
|
+
explained_variance = self._onedal_estimator.explained_variance_
|
|
115
|
+
if self._n_components_ < n_sf_min:
|
|
116
|
+
if explained_variance.shape[0] == n_sf_min:
|
|
117
|
+
return xp.mean(explained_variance[self._n_components_ :])
|
|
118
|
+
elif explained_variance.shape[0] < n_sf_min:
|
|
119
|
+
# replicates capability seen in sklearn.PCA._fit_truncated
|
|
120
|
+
# this is necessary as oneDAL will fit only to self.n_components
|
|
121
|
+
# which leads to self.explained_variance_ not containing the
|
|
122
|
+
# full information (and therefore can't replicate
|
|
123
|
+
# sklearn.PCA._fit_full)
|
|
124
|
+
resid_var = xp.sum(self._onedal_estimator.var_) - xp.sum(
|
|
125
|
+
explained_variance
|
|
126
|
+
)
|
|
127
|
+
return resid_var / (n_sf_min - self._n_components_)
|
|
128
|
+
else:
|
|
129
|
+
return 0.0
|
|
130
|
+
|
|
131
|
+
def _onedal_transform(self, X, queue=None):
|
|
132
|
+
# does not batch out data like sklearn's ``IncrementalPCA.transform``
|
|
133
|
+
if self._need_to_finalize:
|
|
134
|
+
self._onedal_finalize_fit()
|
|
135
|
+
if not get_config()["use_raw_input"]:
|
|
136
|
+
xp, _ = get_namespace(X)
|
|
137
|
+
X = validate_data(self, X, dtype=[xp.float64, xp.float32], reset=False)
|
|
138
|
+
return self._onedal_estimator.predict(X, queue=queue)
|
|
139
|
+
|
|
140
|
+
def _onedal_fit_transform(self, X, queue=None):
|
|
141
|
+
X = self._onedal_fit(X, queue=queue)
|
|
142
|
+
return self._onedal_estimator.predict(X, queue=queue)
|
|
143
|
+
|
|
144
|
+
def _onedal_partial_fit(self, X, check_input=True, queue=None):
|
|
145
|
+
first_pass = not hasattr(self, "components_")
|
|
146
|
+
if first_pass:
|
|
147
|
+
self._components_ = None
|
|
148
|
+
|
|
149
|
+
if check_input:
|
|
150
|
+
if not get_config()["use_raw_input"]:
|
|
151
|
+
xp, _ = get_namespace(X)
|
|
152
|
+
X = validate_data(
|
|
153
|
+
self, X, dtype=[xp.float64, xp.float32], reset=first_pass
|
|
154
|
+
)
|
|
155
|
+
else:
|
|
156
|
+
self.n_features_in_ = X.shape[1]
|
|
157
|
+
|
|
158
|
+
n_samples, n_features = X.shape
|
|
159
|
+
|
|
160
|
+
self._set_n_components(self.n_components, n_samples, n_features, first_pass)
|
|
161
|
+
|
|
162
|
+
if not hasattr(self, "n_samples_seen_"):
|
|
163
|
+
self.n_samples_seen_ = n_samples
|
|
164
|
+
else:
|
|
165
|
+
self.n_samples_seen_ += n_samples
|
|
166
|
+
|
|
167
|
+
onedal_params = {
|
|
168
|
+
"n_components": self._n_components_,
|
|
169
|
+
"whiten": self.whiten,
|
|
170
|
+
"method": "svd" if self.svd_solver == "onedal_svd" else "cov",
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if not hasattr(self, "_onedal_estimator"):
|
|
174
|
+
self._onedal_estimator = self._onedal_incremental_pca(**onedal_params)
|
|
175
|
+
self._onedal_estimator.partial_fit(X, queue=queue)
|
|
176
|
+
self._need_to_finalize = True
|
|
177
|
+
|
|
178
|
+
def _onedal_finalize_fit(self):
|
|
179
|
+
assert hasattr(self, "_onedal_estimator")
|
|
180
|
+
self._onedal_estimator.finalize_fit()
|
|
181
|
+
xp, _ = get_namespace(
|
|
182
|
+
self._onedal_estimator.explained_variance_,
|
|
183
|
+
self._onedal_estimator.singular_values_,
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
# set attributes needed for transform
|
|
187
|
+
self._mean_ = self._onedal_estimator.mean_
|
|
188
|
+
self._components_ = self._onedal_estimator.components_
|
|
189
|
+
# oneDAL PCA eigenvalues are not guaranteed to be >=0 and must be clipped.
|
|
190
|
+
# This is likely due to accumulated numerical error in the oneDAL calculation.
|
|
191
|
+
self._explained_variance_ = xp.clip(
|
|
192
|
+
self._onedal_estimator.explained_variance_, 0.0, None
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
# set other attributes
|
|
196
|
+
self.singular_values_ = self._onedal_estimator.singular_values_
|
|
197
|
+
# NOTE: This covers up a numerical accuracy issue in oneDAL online PCA which
|
|
198
|
+
# can yield NaN values for singular values. Replace in place using array API
|
|
199
|
+
self.singular_values_[...] = xp.where(
|
|
200
|
+
xp.isnan(self.singular_values_), 0, self.singular_values_
|
|
201
|
+
)
|
|
202
|
+
self.explained_variance_ratio_ = self._onedal_estimator.explained_variance_ratio_
|
|
203
|
+
self.var_ = self._onedal_estimator.var_
|
|
204
|
+
|
|
205
|
+
# calculate the noise variance
|
|
206
|
+
self.noise_variance_ = self._compute_noise_variance(
|
|
207
|
+
min(self.n_samples_seen_, self.n_features_in_), xp
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
self._need_to_finalize = False
|
|
211
|
+
|
|
212
|
+
def _onedal_fit(self, X, queue=None):
|
|
213
|
+
# Taken from sklearn for conformance purposes
|
|
214
|
+
self.components_ = None
|
|
215
|
+
|
|
216
|
+
if not get_config()["use_raw_input"]:
|
|
217
|
+
if sklearn_check_version("1.2"):
|
|
218
|
+
self._validate_params()
|
|
219
|
+
xp, _ = get_namespace(X)
|
|
220
|
+
X = validate_data(self, X, dtype=[xp.float64, xp.float32], copy=self.copy)
|
|
221
|
+
else:
|
|
222
|
+
self.n_features_in_ = X.shape[1]
|
|
223
|
+
|
|
224
|
+
n_samples, n_features = X.shape
|
|
225
|
+
|
|
226
|
+
if self.batch_size is None:
|
|
227
|
+
self.batch_size_ = 5 * n_features
|
|
228
|
+
else:
|
|
229
|
+
self.batch_size_ = self.batch_size
|
|
230
|
+
|
|
231
|
+
self.n_samples_seen_ = 0
|
|
232
|
+
if hasattr(self, "_onedal_estimator"):
|
|
233
|
+
self._onedal_estimator._reset()
|
|
234
|
+
|
|
235
|
+
for batch in gen_batches(
|
|
236
|
+
n_samples, self.batch_size_, min_batch_size=self.n_components or 0
|
|
237
|
+
):
|
|
238
|
+
X_batch = X[batch, ...]
|
|
239
|
+
self._onedal_partial_fit(X_batch, queue=queue)
|
|
240
|
+
|
|
241
|
+
self._onedal_finalize_fit()
|
|
242
|
+
|
|
243
|
+
return X
|
|
244
|
+
|
|
245
|
+
def _onedal_cpu_supported(self, method_name, *data):
|
|
246
|
+
patching_status = PatchingConditionsChain(
|
|
247
|
+
f"sklearn.decomposition.{self.__class__.__name__}.{method_name}"
|
|
248
|
+
)
|
|
249
|
+
X = data[0]
|
|
250
|
+
if "fit" in method_name:
|
|
251
|
+
patching_status.and_conditions(
|
|
252
|
+
[(not sp.issparse(X), "Sparse input is not supported")]
|
|
253
|
+
)
|
|
254
|
+
else:
|
|
255
|
+
patching_status.and_conditions(
|
|
256
|
+
[
|
|
257
|
+
(not sp.issparse(X), "Sparse input is not supported"),
|
|
258
|
+
(hasattr(self, "_onedal_estimator"), "oneDAL model was not trained"),
|
|
259
|
+
]
|
|
260
|
+
)
|
|
261
|
+
return patching_status
|
|
262
|
+
|
|
263
|
+
def _onedal_gpu_supported(self, method_name, *data):
|
|
264
|
+
patching_status = PatchingConditionsChain(
|
|
265
|
+
f"sklearn.decomposition.{self.__class__.__name__}.{method_name}"
|
|
266
|
+
)
|
|
267
|
+
# onedal_svd doesn't exist for GPU
|
|
268
|
+
X = data[0]
|
|
269
|
+
if "fit" in method_name:
|
|
270
|
+
patching_status.and_conditions(
|
|
271
|
+
[
|
|
272
|
+
(not sp.issparse(X), "Sparse input is not supported"),
|
|
273
|
+
(self.svd_solver != "onedal_svd", "onedal_svd not supported on GPU"),
|
|
274
|
+
]
|
|
275
|
+
)
|
|
276
|
+
else:
|
|
277
|
+
patching_status.and_conditions(
|
|
278
|
+
[
|
|
279
|
+
(not sp.issparse(X), "Sparse input is not supported"),
|
|
280
|
+
(hasattr(self, "_onedal_estimator"), "oneDAL model was not trained"),
|
|
281
|
+
]
|
|
282
|
+
)
|
|
283
|
+
return patching_status
|
|
284
|
+
|
|
285
|
+
def partial_fit(self, X, y=None, check_input=True):
|
|
286
|
+
if sklearn_check_version("1.2") and check_input:
|
|
287
|
+
self._validate_params()
|
|
288
|
+
|
|
289
|
+
dispatch(
|
|
290
|
+
self,
|
|
291
|
+
"partial_fit",
|
|
292
|
+
{
|
|
293
|
+
"onedal": self.__class__._onedal_partial_fit,
|
|
294
|
+
"sklearn": _sklearn_IncrementalPCA.partial_fit,
|
|
295
|
+
},
|
|
296
|
+
X,
|
|
297
|
+
check_input=check_input,
|
|
298
|
+
)
|
|
299
|
+
return self
|
|
300
|
+
|
|
301
|
+
def fit(self, X, y=None):
|
|
302
|
+
if sklearn_check_version("1.2"):
|
|
303
|
+
self._validate_params()
|
|
304
|
+
|
|
305
|
+
dispatch(
|
|
306
|
+
self,
|
|
307
|
+
"fit",
|
|
308
|
+
{
|
|
309
|
+
"onedal": self.__class__._onedal_fit,
|
|
310
|
+
"sklearn": _sklearn_IncrementalPCA.fit,
|
|
311
|
+
},
|
|
312
|
+
X,
|
|
313
|
+
)
|
|
314
|
+
return self
|
|
315
|
+
|
|
316
|
+
@wrap_output_data
|
|
317
|
+
def transform(self, X):
|
|
318
|
+
check_is_fitted(self)
|
|
319
|
+
return dispatch(
|
|
320
|
+
self,
|
|
321
|
+
"transform",
|
|
322
|
+
{
|
|
323
|
+
"onedal": self.__class__._onedal_transform,
|
|
324
|
+
"sklearn": _sklearn_IncrementalPCA.transform,
|
|
325
|
+
},
|
|
326
|
+
X,
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
@wrap_output_data
|
|
330
|
+
def fit_transform(self, X, y=None, **fit_params):
|
|
331
|
+
if sklearn_check_version("1.2"):
|
|
332
|
+
self._validate_params()
|
|
333
|
+
return dispatch(
|
|
334
|
+
self,
|
|
335
|
+
"fit_transform",
|
|
336
|
+
{
|
|
337
|
+
"onedal": self.__class__._onedal_fit_transform,
|
|
338
|
+
"sklearn": _sklearn_IncrementalPCA.fit_transform,
|
|
339
|
+
},
|
|
340
|
+
X,
|
|
341
|
+
)
|
|
342
|
+
|
|
343
|
+
# set properties for deleting the onedal_estimator model if:
|
|
344
|
+
# n_components_, components_, mean_ or explained_variance_ are
|
|
345
|
+
# changed. This assists in speeding up multiple uses of onedal
|
|
346
|
+
# transform as a model must now only be generated once.
|
|
347
|
+
|
|
348
|
+
@property
|
|
349
|
+
def n_components_(self):
|
|
350
|
+
if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
|
|
351
|
+
self._onedal_finalize_fit()
|
|
352
|
+
return self._n_components_
|
|
353
|
+
|
|
354
|
+
@n_components_.setter
|
|
355
|
+
def n_components_(self, value):
|
|
356
|
+
if hasattr(self, "_onedal_estimator"):
|
|
357
|
+
self._onedal_estimator.n_components_ = value
|
|
358
|
+
self._onedal_estimator._onedal_model = None
|
|
359
|
+
self._n_components_ = value
|
|
360
|
+
|
|
361
|
+
@property
|
|
362
|
+
def components_(self):
|
|
363
|
+
if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
|
|
364
|
+
self._onedal_finalize_fit()
|
|
365
|
+
return self._components_
|
|
366
|
+
|
|
367
|
+
@components_.setter
|
|
368
|
+
def components_(self, value):
|
|
369
|
+
if hasattr(self, "_onedal_estimator"):
|
|
370
|
+
self._onedal_estimator.components_ = value
|
|
371
|
+
self._onedal_estimator._onedal_model = None
|
|
372
|
+
self._components_ = value
|
|
373
|
+
|
|
374
|
+
@property
|
|
375
|
+
def mean_(self):
|
|
376
|
+
if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
|
|
377
|
+
self._onedal_finalize_fit()
|
|
378
|
+
return self._mean_
|
|
379
|
+
|
|
380
|
+
@mean_.setter
|
|
381
|
+
def mean_(self, value):
|
|
382
|
+
if hasattr(self, "_onedal_estimator"):
|
|
383
|
+
self._onedal_estimator.mean_ = value
|
|
384
|
+
self._onedal_estimator._onedal_model = None
|
|
385
|
+
self._mean_ = value
|
|
386
|
+
|
|
387
|
+
@property
|
|
388
|
+
def explained_variance_(self):
|
|
389
|
+
if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
|
|
390
|
+
self._onedal_finalize_fit()
|
|
391
|
+
return self._explained_variance_
|
|
392
|
+
|
|
393
|
+
@explained_variance_.setter
|
|
394
|
+
def explained_variance_(self, value):
|
|
395
|
+
if hasattr(self, "_onedal_estimator"):
|
|
396
|
+
self._onedal_estimator.explained_variance_ = value
|
|
397
|
+
self._onedal_estimator._onedal_model = None
|
|
398
|
+
self._explained_variance_ = value
|
|
399
|
+
|
|
400
|
+
__doc__ = _add_inc_serialization_note(
|
|
401
|
+
_sklearn_IncrementalPCA.__doc__ + "\n" + r"%incremental_serialization_note%"
|
|
402
|
+
)
|
|
403
|
+
fit.__doc__ = _sklearn_IncrementalPCA.fit.__doc__
|
|
404
|
+
fit_transform.__doc__ = _sklearn_IncrementalPCA.fit_transform.__doc__
|
|
405
|
+
transform.__doc__ = _sklearn_IncrementalPCA.transform.__doc__
|
|
406
|
+
partial_fit.__doc__ = _sklearn_IncrementalPCA.partial_fit.__doc__
|
|
@@ -16,9 +16,12 @@
|
|
|
16
16
|
|
|
17
17
|
import numpy as np
|
|
18
18
|
import pytest
|
|
19
|
+
import scipy.sparse as sp
|
|
19
20
|
from numpy.testing import assert_allclose
|
|
21
|
+
from sklearn.base import clone
|
|
22
|
+
from sklearn.datasets import load_iris
|
|
20
23
|
|
|
21
|
-
from daal4py.sklearn._utils import daal_check_version
|
|
24
|
+
from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
22
25
|
from onedal.tests.utils._dataframes_support import (
|
|
23
26
|
_as_numpy,
|
|
24
27
|
_convert_to_dataframe,
|
|
@@ -334,3 +337,54 @@ def test_sklearnex_incremental_estimatior_pickle(dataframe, queue, dtype):
|
|
|
334
337
|
incpca_loaded.explained_variance_ratio_,
|
|
335
338
|
atol=1e-6,
|
|
336
339
|
)
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues("numpy,dpctl"))
|
|
343
|
+
def test_changed_estimated_attributes(with_array_api, dataframe, queue):
|
|
344
|
+
# check that attributes necessary for the PCA onedal estimator match
|
|
345
|
+
# changes occurring in the sklearnex estimator
|
|
346
|
+
X, y = load_iris(return_X_y=True)
|
|
347
|
+
|
|
348
|
+
X_0 = _convert_to_dataframe(X[y == 0], sycl_queue=queue, target_df=dataframe)
|
|
349
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
350
|
+
|
|
351
|
+
est0 = IncrementalPCA(n_components=4).fit(X_0)
|
|
352
|
+
est = clone(est0)
|
|
353
|
+
assert not hasattr(est, "_onedal_estimator")
|
|
354
|
+
est.fit(X)
|
|
355
|
+
assert not np.array_equal(_as_numpy(est.transform(X)), _as_numpy(est0.transform(X)))
|
|
356
|
+
|
|
357
|
+
# copy over parameters necessary for transform
|
|
358
|
+
est.mean_ = est0.mean_
|
|
359
|
+
est.components_ = est0.components_
|
|
360
|
+
est.explained_variance_ = est0.explained_variance_
|
|
361
|
+
est.n_components_ = est0.n_components_ # is trivial but exercises the logic
|
|
362
|
+
|
|
363
|
+
assert np.array_equal(_as_numpy(est.transform(X)), _as_numpy(est0.transform(X)))
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
@pytest.mark.skipif(
|
|
367
|
+
not sklearn_check_version("1.5"),
|
|
368
|
+
reason='svd_solver="auto" does not support sparse inputs',
|
|
369
|
+
)
|
|
370
|
+
@pytest.mark.allow_sklearn_fallback
|
|
371
|
+
def test_create_model_behavior():
|
|
372
|
+
# verify that fit fallbacks does not break ``transform`` as the oneDAL
|
|
373
|
+
# model is generated JIT
|
|
374
|
+
|
|
375
|
+
X, _ = load_iris(return_X_y=True)
|
|
376
|
+
# generate a onedal estimator
|
|
377
|
+
est = IncrementalPCA(n_components=3)
|
|
378
|
+
X_trans = est.fit_transform(X)
|
|
379
|
+
|
|
380
|
+
# force data to sparse for a fallback to sklearn
|
|
381
|
+
X_sp = sp.csr_matrix(X)
|
|
382
|
+
est.fit(X_sp)
|
|
383
|
+
# In the case of a fallback, the model should be set to none by clobbered
|
|
384
|
+
# fitted attributes
|
|
385
|
+
assert est._onedal_estimator._onedal_model is None
|
|
386
|
+
|
|
387
|
+
X_trans_sparse = est.transform(X)
|
|
388
|
+
# use allclose as data was fit with sklearn and onedal on the same data
|
|
389
|
+
# but using different backends
|
|
390
|
+
assert_allclose(X_trans, X_trans_sparse)
|
|
@@ -14,8 +14,11 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
from onedal.spmd.basic_statistics import BasicStatistics
|
|
17
|
+
from onedal.spmd.basic_statistics import BasicStatistics as onedal_BasicStatistics
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
from ...basic_statistics import BasicStatistics as BasicStatistics_Batch
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class BasicStatistics(BasicStatistics_Batch):
|
|
23
|
+
__doc__ = BasicStatistics_Batch.__doc__
|
|
24
|
+
_onedal_basic_statistics = staticmethod(onedal_BasicStatistics)
|
|
@@ -20,6 +20,7 @@ from numpy.testing import assert_allclose
|
|
|
20
20
|
|
|
21
21
|
from onedal.basic_statistics.tests.utils import options_and_tests
|
|
22
22
|
from onedal.tests.utils._dataframes_support import (
|
|
23
|
+
_as_numpy,
|
|
23
24
|
_convert_to_dataframe,
|
|
24
25
|
get_dataframes_and_queues,
|
|
25
26
|
)
|
|
@@ -68,7 +69,8 @@ def test_basic_stats_spmd_gold(dataframe, queue):
|
|
|
68
69
|
batch_result = BasicStatistics_Batch().fit(data)
|
|
69
70
|
|
|
70
71
|
for option in options_and_tests:
|
|
71
|
-
|
|
72
|
+
attr = option + "_"
|
|
73
|
+
assert_allclose(getattr(spmd_result, attr), getattr(batch_result, attr))
|
|
72
74
|
|
|
73
75
|
|
|
74
76
|
@pytest.mark.skipif(
|
|
@@ -106,9 +108,10 @@ def test_basic_stats_spmd_synthetic(
|
|
|
106
108
|
|
|
107
109
|
tol = 1e-5 if dtype == np.float32 else 1e-7
|
|
108
110
|
for option in options_and_tests:
|
|
111
|
+
attr = option + "_"
|
|
109
112
|
assert_allclose(
|
|
110
|
-
getattr(spmd_result,
|
|
111
|
-
getattr(batch_result,
|
|
113
|
+
_as_numpy(getattr(spmd_result, attr)),
|
|
114
|
+
_as_numpy(getattr(batch_result, attr)),
|
|
112
115
|
atol=tol,
|
|
113
116
|
rtol=tol,
|
|
114
117
|
)
|
|
@@ -20,6 +20,7 @@ from numpy.testing import assert_allclose
|
|
|
20
20
|
|
|
21
21
|
from onedal.basic_statistics.tests.utils import options_and_tests
|
|
22
22
|
from onedal.tests.utils._dataframes_support import (
|
|
23
|
+
_as_numpy,
|
|
23
24
|
_convert_to_dataframe,
|
|
24
25
|
get_dataframes_and_queues,
|
|
25
26
|
)
|
|
@@ -89,9 +90,10 @@ def test_incremental_basic_statistics_fit_spmd_gold(dataframe, queue, weighted,
|
|
|
89
90
|
)
|
|
90
91
|
|
|
91
92
|
for option in options_and_tests:
|
|
93
|
+
attr = option + "_"
|
|
92
94
|
assert_allclose(
|
|
93
|
-
getattr(incbs_spmd,
|
|
94
|
-
getattr(incbs,
|
|
95
|
+
getattr(incbs_spmd, attr),
|
|
96
|
+
getattr(incbs, attr),
|
|
95
97
|
err_msg=f"Result for {option} is incorrect",
|
|
96
98
|
)
|
|
97
99
|
|
|
@@ -162,9 +164,10 @@ def test_incremental_basic_statistics_partial_fit_spmd_gold(
|
|
|
162
164
|
incbs.fit(dpt_data, sample_weight=dpt_weights if weighted else None)
|
|
163
165
|
|
|
164
166
|
for option in options_and_tests:
|
|
167
|
+
attr = option + "_"
|
|
165
168
|
assert_allclose(
|
|
166
|
-
getattr(incbs_spmd,
|
|
167
|
-
getattr(incbs,
|
|
169
|
+
getattr(incbs_spmd, attr),
|
|
170
|
+
getattr(incbs, attr),
|
|
168
171
|
err_msg=f"Result for {option} is incorrect",
|
|
169
172
|
)
|
|
170
173
|
|
|
@@ -234,8 +237,8 @@ def test_incremental_basic_statistics_single_option_partial_fit_spmd_gold(
|
|
|
234
237
|
)
|
|
235
238
|
|
|
236
239
|
incbs.fit(dpt_data, sample_weight=dpt_weights if weighted else None)
|
|
237
|
-
|
|
238
|
-
assert_allclose(getattr(incbs_spmd,
|
|
240
|
+
attr = option + "_"
|
|
241
|
+
assert_allclose(getattr(incbs_spmd, attr), getattr(incbs, attr))
|
|
239
242
|
|
|
240
243
|
|
|
241
244
|
@pytest.mark.skipif(
|
|
@@ -302,9 +305,10 @@ def test_incremental_basic_statistics_partial_fit_spmd_synthetic(
|
|
|
302
305
|
incbs.partial_fit(dpt_data, sample_weight=dpt_weights if weighted else None)
|
|
303
306
|
|
|
304
307
|
for option in options_and_tests:
|
|
308
|
+
attr = option + "_"
|
|
305
309
|
assert_allclose(
|
|
306
|
-
getattr(incbs_spmd,
|
|
307
|
-
getattr(incbs,
|
|
310
|
+
_as_numpy(getattr(incbs_spmd, attr)),
|
|
311
|
+
_as_numpy(getattr(incbs, attr)),
|
|
308
312
|
atol=tol,
|
|
309
313
|
err_msg=f"Result for {option} is incorrect",
|
|
310
314
|
)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2023 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 abc import ABC
|
|
18
|
+
|
|
19
|
+
from onedal.spmd.cluster import DBSCAN as onedal_DBSCAN
|
|
20
|
+
|
|
21
|
+
from ...cluster import DBSCAN as DBSCAN_Batch
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class DBSCAN(DBSCAN_Batch):
|
|
25
|
+
__doc__ = DBSCAN_Batch.__doc__
|
|
26
|
+
_onedal_dbscan = staticmethod(onedal_DBSCAN)
|
|
@@ -14,8 +14,11 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
from onedal.spmd.covariance import EmpiricalCovariance
|
|
17
|
+
from onedal.spmd.covariance import EmpiricalCovariance as onedal_EmpiricalCovariance
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
from ...preview.covariance import EmpiricalCovariance as EmpiricalCovariance_Batch
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class EmpiricalCovariance(EmpiricalCovariance_Batch):
|
|
23
|
+
__doc__ = EmpiricalCovariance_Batch.__doc__
|
|
24
|
+
_onedal_covariance = staticmethod(onedal_EmpiricalCovariance)
|
|
@@ -19,6 +19,7 @@ import pytest
|
|
|
19
19
|
from numpy.testing import assert_allclose
|
|
20
20
|
|
|
21
21
|
from onedal.tests.utils._dataframes_support import (
|
|
22
|
+
_as_numpy,
|
|
22
23
|
_convert_to_dataframe,
|
|
23
24
|
get_dataframes_and_queues,
|
|
24
25
|
)
|
|
@@ -41,7 +42,9 @@ from sklearnex.tests.utils.spmd import (
|
|
|
41
42
|
@pytest.mark.mpi
|
|
42
43
|
def test_covariance_spmd_gold(dataframe, queue):
|
|
43
44
|
# Import spmd and batch algo
|
|
44
|
-
from
|
|
45
|
+
from sklearnex.preview.covariance import (
|
|
46
|
+
EmpiricalCovariance as EmpiricalCovariance_Batch,
|
|
47
|
+
)
|
|
45
48
|
from sklearnex.spmd.covariance import EmpiricalCovariance as EmpiricalCovariance_SPMD
|
|
46
49
|
|
|
47
50
|
# Create gold data and convert to dataframe
|
|
@@ -65,8 +68,10 @@ def test_covariance_spmd_gold(dataframe, queue):
|
|
|
65
68
|
spmd_result = EmpiricalCovariance_SPMD().fit(local_dpt_data)
|
|
66
69
|
batch_result = EmpiricalCovariance_Batch().fit(data)
|
|
67
70
|
|
|
68
|
-
assert_allclose(
|
|
69
|
-
|
|
71
|
+
assert_allclose(
|
|
72
|
+
_as_numpy(spmd_result.covariance_), _as_numpy(batch_result.covariance_)
|
|
73
|
+
)
|
|
74
|
+
assert_allclose(_as_numpy(spmd_result.location_), _as_numpy(batch_result.location_))
|
|
70
75
|
|
|
71
76
|
|
|
72
77
|
@pytest.mark.skipif(
|
|
@@ -78,7 +83,7 @@ def test_covariance_spmd_gold(dataframe, queue):
|
|
|
78
83
|
@pytest.mark.parametrize("assume_centered", [True, False])
|
|
79
84
|
@pytest.mark.parametrize(
|
|
80
85
|
"dataframe,queue",
|
|
81
|
-
get_dataframes_and_queues(dataframe_filter_="dpnp
|
|
86
|
+
get_dataframes_and_queues(dataframe_filter_="dpnp", device_filter_="gpu"),
|
|
82
87
|
)
|
|
83
88
|
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
84
89
|
@pytest.mark.parametrize("use_raw_input", [True, False])
|
|
@@ -87,8 +92,9 @@ def test_covariance_spmd_synthetic(
|
|
|
87
92
|
n_samples, n_features, assume_centered, dataframe, queue, dtype, use_raw_input
|
|
88
93
|
):
|
|
89
94
|
# Import spmd and batch algo
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
from sklearnex.preview.covariance import (
|
|
96
|
+
EmpiricalCovariance as EmpiricalCovariance_Batch,
|
|
97
|
+
)
|
|
92
98
|
from sklearnex.spmd.covariance import EmpiricalCovariance as EmpiricalCovariance_SPMD
|
|
93
99
|
|
|
94
100
|
# Generate data and convert to dataframe
|
|
@@ -106,5 +112,9 @@ def test_covariance_spmd_synthetic(
|
|
|
106
112
|
batch_result = EmpiricalCovariance_Batch(assume_centered=assume_centered).fit(data)
|
|
107
113
|
|
|
108
114
|
atol = 1e-5 if dtype == np.float32 else 1e-7
|
|
109
|
-
assert_allclose(
|
|
110
|
-
|
|
115
|
+
assert_allclose(
|
|
116
|
+
_as_numpy(spmd_result.covariance_), _as_numpy(batch_result.covariance_), atol=atol
|
|
117
|
+
)
|
|
118
|
+
assert_allclose(
|
|
119
|
+
_as_numpy(spmd_result.location_), _as_numpy(batch_result.location_), atol=atol
|
|
120
|
+
)
|