scikit-learn-intelex 2025.1.0__py310-none-win_amd64.whl → 2025.4.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.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +6 -3
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/_device_offload.py +10 -28
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +5 -5
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +34 -19
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +16 -72
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +100 -17
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +5 -10
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +9 -16
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +7 -10
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/common/_policy.py +0 -4
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +128 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +6 -9
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +41 -26
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +69 -1
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +10 -43
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +83 -22
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +42 -32
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +7 -7
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +87 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +20 -11
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +86 -52
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +19 -23
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +9 -11
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +70 -25
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +64 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +13 -4
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +21 -25
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +3 -4
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/svm/svm.py +9 -9
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/utils/validation.py +38 -14
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/_utils.py +58 -13
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +39 -8
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +7 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +171 -36
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +79 -28
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +2 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +4 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +7 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +50 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +3 -1
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -10
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +2 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +23 -18
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +25 -12
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +15 -8
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +8 -3
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +15 -13
- {scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex}/linear_model/ridge.py +390 -424
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +65 -5
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +61 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +11 -36
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +5 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +250 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +2 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +6 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +1 -1
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +14 -3
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +70 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +3 -3
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +6 -7
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +3 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +16 -14
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +2 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +130 -29
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +43 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +7 -39
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -11
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -8
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -2
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +4 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +65 -0
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +208 -0
- {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.4.0.dist-info}/METADATA +38 -77
- scikit_learn_intelex-2025.4.0.dist-info/RECORD +259 -0
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -19
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -24
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -19
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -102
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -19
- scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -89
- scikit_learn_intelex-2025.1.0.dist-info/RECORD +0 -257
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/mb/model_builders.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/common/_base.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.4.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.4.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.4.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.4.0.dist-info}/top_level.txt +0 -0
scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ===============================================================================
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from numpy.testing import assert_allclose
|
|
20
|
+
from sklearn.metrics.pairwise import pairwise_distances
|
|
21
|
+
|
|
22
|
+
# Note: n_components must be 2 for now
|
|
23
|
+
from onedal.tests.utils._dataframes_support import (
|
|
24
|
+
_as_numpy,
|
|
25
|
+
_convert_to_dataframe,
|
|
26
|
+
get_dataframes_and_queues,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
31
|
+
def test_sklearnex_import(dataframe, queue):
|
|
32
|
+
"""Test TSNE compatibility with different backends and queues, and validate sklearnex module."""
|
|
33
|
+
from sklearnex.manifold import TSNE
|
|
34
|
+
|
|
35
|
+
X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
|
|
36
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
37
|
+
tsne = TSNE(n_components=2, perplexity=2.0, random_state=42, init="pca").fit(X_df)
|
|
38
|
+
embedding = tsne.fit_transform(X_df)
|
|
39
|
+
embedding = _as_numpy(embedding)
|
|
40
|
+
assert "daal4py" in tsne.__module__
|
|
41
|
+
assert tsne.n_components == 2
|
|
42
|
+
assert tsne.perplexity == 2.0
|
|
43
|
+
assert tsne.random_state == 42
|
|
44
|
+
assert tsne.init == "pca"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@pytest.mark.parametrize(
|
|
48
|
+
"X_generator,n_components,perplexity,expected_shape,should_raise",
|
|
49
|
+
[
|
|
50
|
+
pytest.param(
|
|
51
|
+
lambda rng: np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]]),
|
|
52
|
+
2,
|
|
53
|
+
2.0,
|
|
54
|
+
(4, 2),
|
|
55
|
+
False,
|
|
56
|
+
id="Basic functionality",
|
|
57
|
+
),
|
|
58
|
+
pytest.param(
|
|
59
|
+
lambda rng: rng.random((100, 10)),
|
|
60
|
+
2,
|
|
61
|
+
30.0,
|
|
62
|
+
(100, 2),
|
|
63
|
+
False,
|
|
64
|
+
id="Random data",
|
|
65
|
+
),
|
|
66
|
+
pytest.param(
|
|
67
|
+
lambda rng: np.array([[0, 0], [1, 1], [2, 2]]),
|
|
68
|
+
2,
|
|
69
|
+
2.0,
|
|
70
|
+
(3, 2),
|
|
71
|
+
False,
|
|
72
|
+
id="Valid minimal data",
|
|
73
|
+
),
|
|
74
|
+
pytest.param(
|
|
75
|
+
lambda rng: np.empty((0, 10)),
|
|
76
|
+
2,
|
|
77
|
+
5.0,
|
|
78
|
+
None,
|
|
79
|
+
True,
|
|
80
|
+
id="Empty data",
|
|
81
|
+
),
|
|
82
|
+
pytest.param(
|
|
83
|
+
lambda rng: np.array([[0, 0], [1, np.nan], [2, np.inf]]),
|
|
84
|
+
2,
|
|
85
|
+
5.0,
|
|
86
|
+
None,
|
|
87
|
+
True,
|
|
88
|
+
id="Data with NaN/Inf",
|
|
89
|
+
),
|
|
90
|
+
pytest.param(
|
|
91
|
+
lambda rng: rng.random((50, 500)) * (rng.random((50, 500)) > 0.99),
|
|
92
|
+
2,
|
|
93
|
+
30.0,
|
|
94
|
+
(50, 2),
|
|
95
|
+
False,
|
|
96
|
+
id="Sparse-like high-dimensional data",
|
|
97
|
+
),
|
|
98
|
+
pytest.param(
|
|
99
|
+
lambda rng: np.hstack(
|
|
100
|
+
[
|
|
101
|
+
np.ones((50, 1)), # First column is 1
|
|
102
|
+
rng.random((50, 499)) * (rng.random((50, 499)) > 0.99),
|
|
103
|
+
]
|
|
104
|
+
),
|
|
105
|
+
2,
|
|
106
|
+
30.0,
|
|
107
|
+
(50, 2),
|
|
108
|
+
False,
|
|
109
|
+
id="Sparse-like data with constant column",
|
|
110
|
+
),
|
|
111
|
+
pytest.param(
|
|
112
|
+
lambda rng: np.where(
|
|
113
|
+
np.arange(50 * 500).reshape(50, 500) % 10 == 0, 0, rng.random((50, 500))
|
|
114
|
+
),
|
|
115
|
+
2,
|
|
116
|
+
30.0,
|
|
117
|
+
(50, 2),
|
|
118
|
+
False,
|
|
119
|
+
id="Sparse-like data with every tenth element zero",
|
|
120
|
+
),
|
|
121
|
+
pytest.param(
|
|
122
|
+
lambda rng: rng.random((10, 5)),
|
|
123
|
+
2,
|
|
124
|
+
0.5,
|
|
125
|
+
(10, 2),
|
|
126
|
+
False,
|
|
127
|
+
id="Extremely low perplexity",
|
|
128
|
+
),
|
|
129
|
+
],
|
|
130
|
+
)
|
|
131
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
132
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
133
|
+
def test_tsne_functionality_and_edge_cases(
|
|
134
|
+
X_generator,
|
|
135
|
+
n_components,
|
|
136
|
+
perplexity,
|
|
137
|
+
expected_shape,
|
|
138
|
+
should_raise,
|
|
139
|
+
dataframe,
|
|
140
|
+
queue,
|
|
141
|
+
dtype,
|
|
142
|
+
):
|
|
143
|
+
from sklearnex.manifold import TSNE
|
|
144
|
+
|
|
145
|
+
rng = np.random.default_rng(
|
|
146
|
+
seed=42
|
|
147
|
+
) # Use generator to ensure independent dataset per test
|
|
148
|
+
X = X_generator(rng)
|
|
149
|
+
X = X.astype(dtype) if X.size > 0 else X
|
|
150
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
151
|
+
|
|
152
|
+
if should_raise:
|
|
153
|
+
with pytest.raises(ValueError):
|
|
154
|
+
TSNE(n_components=n_components, perplexity=perplexity).fit_transform(X_df)
|
|
155
|
+
else:
|
|
156
|
+
tsne = TSNE(n_components=n_components, perplexity=perplexity, random_state=42)
|
|
157
|
+
embedding = tsne.fit_transform(X_df)
|
|
158
|
+
embedding = _as_numpy(embedding)
|
|
159
|
+
assert embedding.shape == expected_shape
|
|
160
|
+
assert np.all(np.isfinite(embedding))
|
|
161
|
+
assert np.any(embedding != 0)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
165
|
+
@pytest.mark.parametrize("init", ["pca", "random"])
|
|
166
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
167
|
+
def test_tsne_constant_data(init, dataframe, queue, dtype):
|
|
168
|
+
from sklearnex.manifold import TSNE
|
|
169
|
+
|
|
170
|
+
X = np.ones((10, 10), dtype=dtype)
|
|
171
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
172
|
+
tsne = TSNE(n_components=2, init=init, perplexity=5, random_state=42)
|
|
173
|
+
embedding = tsne.fit_transform(X_df)
|
|
174
|
+
embedding = _as_numpy(embedding)
|
|
175
|
+
assert embedding.shape == (10, 2)
|
|
176
|
+
if init == "pca":
|
|
177
|
+
assert np.isclose(embedding[:, 0].std(), 0, atol=1e-6) # Constant first dimension
|
|
178
|
+
assert np.allclose(embedding[:, 1], 0, atol=1e-6) # Zero second dimension
|
|
179
|
+
elif init == "random":
|
|
180
|
+
assert np.all(np.isfinite(embedding))
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
184
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
185
|
+
def test_tsne_reproducibility(dataframe, queue, dtype):
|
|
186
|
+
from sklearnex.manifold import TSNE
|
|
187
|
+
|
|
188
|
+
rng = np.random.default_rng(seed=42)
|
|
189
|
+
X = rng.random((50, 10)).astype(dtype)
|
|
190
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
191
|
+
tsne_1 = TSNE(n_components=2, random_state=42).fit_transform(X_df)
|
|
192
|
+
tsne_2 = TSNE(n_components=2, random_state=42).fit_transform(X_df)
|
|
193
|
+
# in case of dpctl.tensor.usm_ndarray covert to numpy array
|
|
194
|
+
tsne_1 = _as_numpy(tsne_1)
|
|
195
|
+
tsne_2 = _as_numpy(tsne_2)
|
|
196
|
+
assert_allclose(tsne_1, tsne_2, rtol=1e-5)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
200
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
201
|
+
def test_tsne_complex_and_gpu_validation(dataframe, queue, dtype):
|
|
202
|
+
from sklearnex.manifold import TSNE
|
|
203
|
+
|
|
204
|
+
X = np.array(
|
|
205
|
+
[
|
|
206
|
+
[1, 1, 1, 1],
|
|
207
|
+
[1.1, 1.1, 1.1, 1.1],
|
|
208
|
+
[0.9, 0.9, 0.9, 0.9],
|
|
209
|
+
[2e9, 2e-9, -2e9, -2e-9],
|
|
210
|
+
[5e-5, 5e5, -5e-5, -5e5],
|
|
211
|
+
[9e-7, -9e7, 9e-7, -9e7],
|
|
212
|
+
[1, -1, 1, -1],
|
|
213
|
+
[-1e-9, 1e-9, -1e-9, 1e-9],
|
|
214
|
+
[42, 42, 42, 42],
|
|
215
|
+
[8, -8, 8e8, -8e-8],
|
|
216
|
+
[1e-3, 1e3, -1e3, -1e-3],
|
|
217
|
+
[0, 1e9, -1e-9, 1],
|
|
218
|
+
[0, 0, 1, -1],
|
|
219
|
+
[0, 0, 0, 0],
|
|
220
|
+
[-1e5, 0, 1e5, -1],
|
|
221
|
+
[1, 0, -1e8, 1e8],
|
|
222
|
+
]
|
|
223
|
+
)
|
|
224
|
+
n_components = 2
|
|
225
|
+
perplexity = 3.0
|
|
226
|
+
expected_shape = (16, 2)
|
|
227
|
+
|
|
228
|
+
X = X.astype(dtype)
|
|
229
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
230
|
+
tsne = TSNE(n_components=n_components, perplexity=perplexity, random_state=42)
|
|
231
|
+
embedding = tsne.fit_transform(X_df)
|
|
232
|
+
|
|
233
|
+
# Validate results
|
|
234
|
+
assert embedding.shape == expected_shape
|
|
235
|
+
embedding = _as_numpy(embedding)
|
|
236
|
+
assert np.all(np.isfinite(embedding))
|
|
237
|
+
assert np.any(embedding != 0)
|
|
238
|
+
|
|
239
|
+
# Ensure close points in original space remain close in embedding
|
|
240
|
+
group_a_indices = [0, 1, 2] # Hardcoded index of similar points
|
|
241
|
+
group_b_indices = [3, 4, 5] # Hardcoded index of dissimilar points from a
|
|
242
|
+
embedding_distances = pairwise_distances(
|
|
243
|
+
X, metric="euclidean"
|
|
244
|
+
) # Get an array of distance where [i, j] is distance b/t i and j
|
|
245
|
+
# Check for distance b/t two points in group A < distance of this point and any point in group B
|
|
246
|
+
for i in group_a_indices:
|
|
247
|
+
for j in group_a_indices:
|
|
248
|
+
assert (
|
|
249
|
+
embedding_distances[i, j] < embedding_distances[i, group_b_indices].min()
|
|
250
|
+
), f"Point {i} in Group A is closer to a point in Group B than to another point in Group A."
|
|
@@ -27,11 +27,11 @@ from sklearn.utils.validation import check_is_fitted
|
|
|
27
27
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
28
28
|
from onedal.utils import _check_array, _num_features, _num_samples
|
|
29
29
|
|
|
30
|
-
from .._utils import PatchingConditionsChain
|
|
30
|
+
from .._utils import PatchableEstimator, PatchingConditionsChain
|
|
31
31
|
from ..utils._array_api import get_namespace
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
class KNeighborsDispatchingBase:
|
|
34
|
+
class KNeighborsDispatchingBase(PatchableEstimator):
|
|
35
35
|
def _fit_validation(self, X, y=None):
|
|
36
36
|
if sklearn_check_version("1.2"):
|
|
37
37
|
self._validate_params()
|
|
@@ -29,7 +29,11 @@ from sklearnex import config_context
|
|
|
29
29
|
from sklearnex.metrics import pairwise_distances
|
|
30
30
|
|
|
31
31
|
from ..._device_offload import dispatch, wrap_output_data
|
|
32
|
-
from ..._utils import
|
|
32
|
+
from ..._utils import (
|
|
33
|
+
PatchableEstimator,
|
|
34
|
+
PatchingConditionsChain,
|
|
35
|
+
register_hyperparameters,
|
|
36
|
+
)
|
|
33
37
|
|
|
34
38
|
if sklearn_check_version("1.6"):
|
|
35
39
|
from sklearn.utils.validation import validate_data
|
|
@@ -39,7 +43,7 @@ else:
|
|
|
39
43
|
|
|
40
44
|
@register_hyperparameters({"fit": get_hyperparameters("covariance", "compute")})
|
|
41
45
|
@control_n_jobs(decorated_methods=["fit", "mahalanobis"])
|
|
42
|
-
class EmpiricalCovariance(_sklearn_EmpiricalCovariance):
|
|
46
|
+
class EmpiricalCovariance(PatchableEstimator, _sklearn_EmpiricalCovariance):
|
|
43
47
|
__doc__ = _sklearn_EmpiricalCovariance.__doc__
|
|
44
48
|
|
|
45
49
|
if sklearn_check_version("1.2"):
|
|
@@ -36,7 +36,7 @@ def test_sklearnex_import_covariance(dataframe, queue, macro_block, assume_cente
|
|
|
36
36
|
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
37
37
|
empcov = EmpiricalCovariance(assume_centered=assume_centered)
|
|
38
38
|
if daal_check_version((2024, "P", 0)) and macro_block is not None:
|
|
39
|
-
hparams =
|
|
39
|
+
hparams = EmpiricalCovariance.get_hyperparameters("fit")
|
|
40
40
|
hparams.cpu_macro_block = macro_block
|
|
41
41
|
result = empcov.fit(X)
|
|
42
42
|
|
|
@@ -23,7 +23,7 @@ from daal4py.sklearn._utils import sklearn_check_version
|
|
|
23
23
|
from onedal.decomposition import IncrementalPCA as onedal_IncrementalPCA
|
|
24
24
|
|
|
25
25
|
from ..._device_offload import dispatch, wrap_output_data
|
|
26
|
-
from ..._utils import PatchingConditionsChain
|
|
26
|
+
from ..._utils import IntelEstimator, PatchingConditionsChain
|
|
27
27
|
|
|
28
28
|
if sklearn_check_version("1.6"):
|
|
29
29
|
from sklearn.utils.validation import validate_data
|
|
@@ -34,7 +34,7 @@ else:
|
|
|
34
34
|
@control_n_jobs(
|
|
35
35
|
decorated_methods=["fit", "partial_fit", "transform", "_onedal_finalize_fit"]
|
|
36
36
|
)
|
|
37
|
-
class IncrementalPCA(_sklearn_IncrementalPCA):
|
|
37
|
+
class IncrementalPCA(IntelEstimator, _sklearn_IncrementalPCA):
|
|
38
38
|
|
|
39
39
|
def __init__(self, n_components=None, *, whiten=False, copy=True, batch_size=None):
|
|
40
40
|
super().__init__(
|
|
@@ -226,7 +226,18 @@ class IncrementalPCA(_sklearn_IncrementalPCA):
|
|
|
226
226
|
X,
|
|
227
227
|
)
|
|
228
228
|
|
|
229
|
-
__doc__ =
|
|
229
|
+
__doc__ = (
|
|
230
|
+
_sklearn_IncrementalPCA.__doc__
|
|
231
|
+
+ """
|
|
232
|
+
|
|
233
|
+
Note
|
|
234
|
+
----
|
|
235
|
+
Serializing instances of this class will trigger a forced finalization of calculations.
|
|
236
|
+
Since finalize_fit can't be dispatched without directly provided queue
|
|
237
|
+
and the dispatching policy can't be serialized, the computation is finalized
|
|
238
|
+
during serialization call and the policy is not saved in serialized data.
|
|
239
|
+
"""
|
|
240
|
+
)
|
|
230
241
|
fit.__doc__ = _sklearn_IncrementalPCA.fit.__doc__
|
|
231
242
|
fit_transform.__doc__ = _sklearn_IncrementalPCA.fit_transform.__doc__
|
|
232
243
|
transform.__doc__ = _sklearn_IncrementalPCA.transform.__doc__
|
|
@@ -264,3 +264,73 @@ def test_sklearnex_partial_fit_on_random_data(
|
|
|
264
264
|
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
265
265
|
transformed_data = incpca.transform(X_df)
|
|
266
266
|
check_pca(incpca, dtype, whiten, X, transformed_data)
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
270
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
271
|
+
def test_sklearnex_incremental_estimatior_pickle(dataframe, queue, dtype):
|
|
272
|
+
import pickle
|
|
273
|
+
|
|
274
|
+
incpca = IncrementalPCA()
|
|
275
|
+
|
|
276
|
+
# Check that estimator can be serialized without any data.
|
|
277
|
+
dump = pickle.dumps(incpca)
|
|
278
|
+
incpca_loaded = pickle.loads(dump)
|
|
279
|
+
|
|
280
|
+
seed = 77
|
|
281
|
+
gen = np.random.default_rng(seed)
|
|
282
|
+
X = gen.uniform(low=-0.3, high=+0.7, size=(10, 10))
|
|
283
|
+
X = X.astype(dtype)
|
|
284
|
+
X_split = np.array_split(X, 2)
|
|
285
|
+
X_split_df = _convert_to_dataframe(X_split[0], sycl_queue=queue, target_df=dataframe)
|
|
286
|
+
incpca.partial_fit(X_split_df)
|
|
287
|
+
incpca_loaded.partial_fit(X_split_df)
|
|
288
|
+
dump = pickle.dumps(incpca_loaded)
|
|
289
|
+
incpca_loaded = pickle.loads(dump)
|
|
290
|
+
assert incpca.batch_size == incpca_loaded.batch_size
|
|
291
|
+
assert incpca.n_features_in_ == incpca_loaded.n_features_in_
|
|
292
|
+
assert incpca.n_samples_seen_ == incpca_loaded.n_samples_seen_
|
|
293
|
+
if hasattr(incpca, "_parameter_constraints"):
|
|
294
|
+
assert incpca._parameter_constraints == incpca_loaded._parameter_constraints
|
|
295
|
+
assert incpca.n_jobs == incpca_loaded.n_jobs
|
|
296
|
+
X_split_df = _convert_to_dataframe(X_split[1], sycl_queue=queue, target_df=dataframe)
|
|
297
|
+
incpca.partial_fit(X_split_df)
|
|
298
|
+
incpca_loaded.partial_fit(X_split_df)
|
|
299
|
+
|
|
300
|
+
# Check that estimator can be serialized after partial_fit call.
|
|
301
|
+
dump = pickle.dumps(incpca)
|
|
302
|
+
incpca_loaded = pickle.loads(dump)
|
|
303
|
+
|
|
304
|
+
assert_allclose(incpca.singular_values_, incpca_loaded.singular_values_, atol=1e-6)
|
|
305
|
+
assert_allclose(incpca.n_samples_seen_, incpca_loaded.n_samples_seen_, atol=1e-6)
|
|
306
|
+
assert_allclose(incpca.n_features_in_, incpca_loaded.n_features_in_, atol=1e-6)
|
|
307
|
+
assert_allclose(incpca.mean_, incpca_loaded.mean_, atol=1e-6)
|
|
308
|
+
assert_allclose(incpca.var_, incpca_loaded.var_, atol=1e-6)
|
|
309
|
+
assert_allclose(
|
|
310
|
+
incpca.explained_variance_, incpca_loaded.explained_variance_, atol=1e-6
|
|
311
|
+
)
|
|
312
|
+
assert_allclose(incpca.components_, incpca_loaded.components_, atol=1e-6)
|
|
313
|
+
assert_allclose(
|
|
314
|
+
incpca.explained_variance_ratio_,
|
|
315
|
+
incpca_loaded.explained_variance_ratio_,
|
|
316
|
+
atol=1e-6,
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
# Check that finalized estimator can be serialized.
|
|
320
|
+
dump = pickle.dumps(incpca_loaded)
|
|
321
|
+
incpca_loaded = pickle.loads(dump)
|
|
322
|
+
|
|
323
|
+
assert_allclose(incpca.singular_values_, incpca_loaded.singular_values_, atol=1e-6)
|
|
324
|
+
assert_allclose(incpca.n_samples_seen_, incpca_loaded.n_samples_seen_, atol=1e-6)
|
|
325
|
+
assert_allclose(incpca.n_features_in_, incpca_loaded.n_features_in_, atol=1e-6)
|
|
326
|
+
assert_allclose(incpca.mean_, incpca_loaded.mean_, atol=1e-6)
|
|
327
|
+
assert_allclose(incpca.var_, incpca_loaded.var_, atol=1e-6)
|
|
328
|
+
assert_allclose(
|
|
329
|
+
incpca.explained_variance_, incpca_loaded.explained_variance_, atol=1e-6
|
|
330
|
+
)
|
|
331
|
+
assert_allclose(incpca.components_, incpca_loaded.components_, atol=1e-6)
|
|
332
|
+
assert_allclose(
|
|
333
|
+
incpca.explained_variance_ratio_,
|
|
334
|
+
incpca_loaded.explained_variance_ratio_,
|
|
335
|
+
atol=1e-6,
|
|
336
|
+
)
|
|
@@ -18,7 +18,7 @@ import numpy as np
|
|
|
18
18
|
import pytest
|
|
19
19
|
from numpy.testing import assert_allclose
|
|
20
20
|
|
|
21
|
-
from onedal.basic_statistics.tests.
|
|
21
|
+
from onedal.basic_statistics.tests.utils import options_and_tests
|
|
22
22
|
from onedal.tests.utils._dataframes_support import (
|
|
23
23
|
_convert_to_dataframe,
|
|
24
24
|
get_dataframes_and_queues,
|
|
@@ -65,7 +65,7 @@ def test_basic_stats_spmd_gold(dataframe, queue):
|
|
|
65
65
|
spmd_result = BasicStatistics_SPMD().fit(local_dpt_data)
|
|
66
66
|
batch_result = BasicStatistics_Batch().fit(data)
|
|
67
67
|
|
|
68
|
-
for option in
|
|
68
|
+
for option in options_and_tests:
|
|
69
69
|
assert_allclose(getattr(spmd_result, option), getattr(batch_result, option))
|
|
70
70
|
|
|
71
71
|
|
|
@@ -98,7 +98,7 @@ def test_basic_stats_spmd_synthetic(n_samples, n_features, dataframe, queue, dty
|
|
|
98
98
|
batch_result = BasicStatistics_Batch().fit(data)
|
|
99
99
|
|
|
100
100
|
tol = 1e-5 if dtype == np.float32 else 1e-7
|
|
101
|
-
for option in
|
|
101
|
+
for option in options_and_tests:
|
|
102
102
|
assert_allclose(
|
|
103
103
|
getattr(spmd_result, option),
|
|
104
104
|
getattr(batch_result, option),
|
|
@@ -18,7 +18,7 @@ import numpy as np
|
|
|
18
18
|
import pytest
|
|
19
19
|
from numpy.testing import assert_allclose
|
|
20
20
|
|
|
21
|
-
from onedal.basic_statistics.tests.
|
|
21
|
+
from onedal.basic_statistics.tests.utils import options_and_tests
|
|
22
22
|
from onedal.tests.utils._dataframes_support import (
|
|
23
23
|
_convert_to_dataframe,
|
|
24
24
|
get_dataframes_and_queues,
|
|
@@ -87,7 +87,7 @@ def test_incremental_basic_statistics_fit_spmd_gold(dataframe, queue, weighted,
|
|
|
87
87
|
dpt_data, sample_weight=dpt_weights if weighted else None
|
|
88
88
|
)
|
|
89
89
|
|
|
90
|
-
for option
|
|
90
|
+
for option in options_and_tests:
|
|
91
91
|
assert_allclose(
|
|
92
92
|
getattr(incbs_spmd, option),
|
|
93
93
|
getattr(incbs, option),
|
|
@@ -160,7 +160,7 @@ def test_incremental_basic_statistics_partial_fit_spmd_gold(
|
|
|
160
160
|
|
|
161
161
|
incbs.fit(dpt_data, sample_weight=dpt_weights if weighted else None)
|
|
162
162
|
|
|
163
|
-
for option
|
|
163
|
+
for option in options_and_tests:
|
|
164
164
|
assert_allclose(
|
|
165
165
|
getattr(incbs_spmd, option),
|
|
166
166
|
getattr(incbs, option),
|
|
@@ -178,11 +178,11 @@ def test_incremental_basic_statistics_partial_fit_spmd_gold(
|
|
|
178
178
|
)
|
|
179
179
|
@pytest.mark.parametrize("num_blocks", [1, 2])
|
|
180
180
|
@pytest.mark.parametrize("weighted", [True, False])
|
|
181
|
-
@pytest.mark.parametrize("
|
|
181
|
+
@pytest.mark.parametrize("option", options_and_tests.keys())
|
|
182
182
|
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
183
183
|
@pytest.mark.mpi
|
|
184
184
|
def test_incremental_basic_statistics_single_option_partial_fit_spmd_gold(
|
|
185
|
-
dataframe, queue, num_blocks, weighted,
|
|
185
|
+
dataframe, queue, num_blocks, weighted, option, dtype
|
|
186
186
|
):
|
|
187
187
|
# Import spmd and batch algo
|
|
188
188
|
from sklearnex.basic_statistics import IncrementalBasicStatistics
|
|
@@ -217,7 +217,6 @@ def test_incremental_basic_statistics_single_option_partial_fit_spmd_gold(
|
|
|
217
217
|
local_weights = _get_local_tensor(weights)
|
|
218
218
|
split_local_weights = np.array_split(local_weights, num_blocks)
|
|
219
219
|
|
|
220
|
-
option, _, _ = result_option
|
|
221
220
|
incbs_spmd = IncrementalBasicStatistics_SPMD(result_options=option)
|
|
222
221
|
incbs = IncrementalBasicStatistics(result_options=option)
|
|
223
222
|
|
|
@@ -298,7 +297,7 @@ def test_incremental_basic_statistics_partial_fit_spmd_synthetic(
|
|
|
298
297
|
)
|
|
299
298
|
incbs.partial_fit(dpt_data, sample_weight=dpt_weights if weighted else None)
|
|
300
299
|
|
|
301
|
-
for option
|
|
300
|
+
for option in options_and_tests:
|
|
302
301
|
assert_allclose(
|
|
303
302
|
getattr(incbs_spmd, option),
|
|
304
303
|
getattr(incbs, option),
|
|
@@ -59,9 +59,10 @@ def test_kmeans_spmd_gold(dataframe, queue):
|
|
|
59
59
|
[2, 2],
|
|
60
60
|
[1, 3],
|
|
61
61
|
[2, 2],
|
|
62
|
-
]
|
|
62
|
+
],
|
|
63
|
+
dtype=np.float64,
|
|
63
64
|
)
|
|
64
|
-
X_test = np.array([[0, 0], [12, 3], [2, 2], [7, 8]])
|
|
65
|
+
X_test = np.array([[0, 0], [12, 3], [2, 2], [7, 8]], dtype=np.float64)
|
|
65
66
|
|
|
66
67
|
local_dpt_X_train = _convert_to_dataframe(
|
|
67
68
|
_get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
|
|
@@ -86,20 +86,21 @@ def test_incremental_linear_regression_fit_spmd_gold(
|
|
|
86
86
|
inclin = IncrementalLinearRegression(fit_intercept=fit_intercept)
|
|
87
87
|
|
|
88
88
|
if macro_block is not None:
|
|
89
|
-
hparams =
|
|
89
|
+
hparams = IncrementalLinearRegression.get_hyperparameters("fit")
|
|
90
90
|
hparams.cpu_macro_block = macro_block
|
|
91
91
|
hparams.gpu_macro_block = macro_block
|
|
92
92
|
|
|
93
|
-
hparams_spmd =
|
|
93
|
+
hparams_spmd = IncrementalLinearRegression_SPMD.get_hyperparameters("fit")
|
|
94
94
|
hparams_spmd.cpu_macro_block = macro_block
|
|
95
95
|
hparams_spmd.gpu_macro_block = macro_block
|
|
96
96
|
|
|
97
97
|
inclin_spmd.fit(local_dpt_X, local_dpt_y)
|
|
98
98
|
inclin.fit(dpt_X, dpt_y)
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
rtol = 1e-5 if (dtype == np.float32) else 1e-7
|
|
101
|
+
assert_allclose(inclin.coef_, inclin_spmd.coef_, rtol=rtol)
|
|
101
102
|
if fit_intercept:
|
|
102
|
-
assert_allclose(inclin.intercept_, inclin_spmd.intercept_)
|
|
103
|
+
assert_allclose(inclin.intercept_, inclin_spmd.intercept_, rtol=rtol)
|
|
103
104
|
|
|
104
105
|
|
|
105
106
|
@pytest.mark.skipif(
|
|
@@ -159,11 +160,11 @@ def test_incremental_linear_regression_partial_fit_spmd_gold(
|
|
|
159
160
|
inclin = IncrementalLinearRegression(fit_intercept=fit_intercept)
|
|
160
161
|
|
|
161
162
|
if macro_block is not None:
|
|
162
|
-
hparams =
|
|
163
|
+
hparams = IncrementalLinearRegression.get_hyperparameters("fit")
|
|
163
164
|
hparams.cpu_macro_block = macro_block
|
|
164
165
|
hparams.gpu_macro_block = macro_block
|
|
165
166
|
|
|
166
|
-
hparams_spmd =
|
|
167
|
+
hparams_spmd = IncrementalLinearRegression_SPMD.get_hyperparameters("fit")
|
|
167
168
|
hparams_spmd.cpu_macro_block = macro_block
|
|
168
169
|
hparams_spmd.gpu_macro_block = macro_block
|
|
169
170
|
|
|
@@ -178,9 +179,10 @@ def test_incremental_linear_regression_partial_fit_spmd_gold(
|
|
|
178
179
|
|
|
179
180
|
inclin.fit(dpt_X, dpt_y)
|
|
180
181
|
|
|
181
|
-
|
|
182
|
+
rtol = 1e-5 if (dtype == np.float32) else 1e-7
|
|
183
|
+
assert_allclose(inclin.coef_, inclin_spmd.coef_, rtol=rtol)
|
|
182
184
|
if fit_intercept:
|
|
183
|
-
assert_allclose(inclin.intercept_, inclin_spmd.intercept_)
|
|
185
|
+
assert_allclose(inclin.intercept_, inclin_spmd.intercept_, rtol=rtol)
|
|
184
186
|
|
|
185
187
|
|
|
186
188
|
@pytest.mark.skipif(
|
|
@@ -206,7 +208,7 @@ def test_incremental_linear_regression_fit_spmd_random(
|
|
|
206
208
|
IncrementalLinearRegression as IncrementalLinearRegression_SPMD,
|
|
207
209
|
)
|
|
208
210
|
|
|
209
|
-
tol =
|
|
211
|
+
tol = 5e-3 if dtype == np.float32 else 1e-7
|
|
210
212
|
|
|
211
213
|
# Generate random data and process into dpt
|
|
212
214
|
X_train, X_test, y_train, _ = _generate_regression_data(
|
|
@@ -225,11 +227,11 @@ def test_incremental_linear_regression_fit_spmd_random(
|
|
|
225
227
|
inclin = IncrementalLinearRegression(fit_intercept=fit_intercept)
|
|
226
228
|
|
|
227
229
|
if macro_block is not None:
|
|
228
|
-
hparams =
|
|
230
|
+
hparams = IncrementalLinearRegression.get_hyperparameters("fit")
|
|
229
231
|
hparams.cpu_macro_block = macro_block
|
|
230
232
|
hparams.gpu_macro_block = macro_block
|
|
231
233
|
|
|
232
|
-
hparams_spmd =
|
|
234
|
+
hparams_spmd = IncrementalLinearRegression_SPMD.get_hyperparameters("fit")
|
|
233
235
|
hparams_spmd.cpu_macro_block = macro_block
|
|
234
236
|
hparams_spmd.gpu_macro_block = macro_block
|
|
235
237
|
|
|
@@ -277,7 +279,7 @@ def test_incremental_linear_regression_partial_fit_spmd_random(
|
|
|
277
279
|
IncrementalLinearRegression as IncrementalLinearRegression_SPMD,
|
|
278
280
|
)
|
|
279
281
|
|
|
280
|
-
tol =
|
|
282
|
+
tol = 5e-3 if dtype == np.float32 else 1e-7
|
|
281
283
|
|
|
282
284
|
# Generate random data and process into dpt
|
|
283
285
|
X_train, X_test, y_train, _ = _generate_regression_data(
|
|
@@ -298,11 +300,11 @@ def test_incremental_linear_regression_partial_fit_spmd_random(
|
|
|
298
300
|
inclin = IncrementalLinearRegression(fit_intercept=fit_intercept)
|
|
299
301
|
|
|
300
302
|
if macro_block is not None:
|
|
301
|
-
hparams =
|
|
303
|
+
hparams = IncrementalLinearRegression.get_hyperparameters("fit")
|
|
302
304
|
hparams.cpu_macro_block = macro_block
|
|
303
305
|
hparams.gpu_macro_block = macro_block
|
|
304
306
|
|
|
305
|
-
hparams_spmd =
|
|
307
|
+
hparams_spmd = IncrementalLinearRegression_SPMD.get_hyperparameters("fit")
|
|
306
308
|
hparams_spmd.cpu_macro_block = macro_block
|
|
307
309
|
hparams_spmd.gpu_macro_block = macro_block
|
|
308
310
|
|
|
@@ -29,7 +29,7 @@ from daal4py.sklearn._utils import sklearn_check_version
|
|
|
29
29
|
from onedal.utils import _check_array, _check_X_y, _column_or_1d
|
|
30
30
|
|
|
31
31
|
from .._config import config_context, get_config
|
|
32
|
-
from .._utils import PatchingConditionsChain
|
|
32
|
+
from .._utils import PatchableEstimator, PatchingConditionsChain
|
|
33
33
|
|
|
34
34
|
if sklearn_check_version("1.6"):
|
|
35
35
|
from sklearn.utils.validation import validate_data
|
|
@@ -37,7 +37,7 @@ else:
|
|
|
37
37
|
validate_data = BaseEstimator._validate_data
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
class BaseSVM(BaseEstimator, ABC):
|
|
40
|
+
class BaseSVM(PatchableEstimator, BaseEstimator, ABC):
|
|
41
41
|
|
|
42
42
|
@property
|
|
43
43
|
def _dual_coef_(self):
|