scikit-learn-intelex 2025.8.0__py39-none-win_amd64.whl → 2025.9.0__py39-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +19 -8
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +57 -128
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +2 -2
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +1 -8
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +13 -18
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +3 -1
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_dlpack.py +8 -5
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +69 -1
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +20 -1
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +5 -4
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -5
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +139 -100
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +56 -2
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +115 -39
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +110 -122
- 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/decomposition/incremental_pca.py +406 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +7 -4
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +7 -4
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
- {scikit_learn_intelex-2025.8.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.8.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/neighbors/__init__.py +23 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +71 -8
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -1
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +7 -3
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +65 -1
- {scikit_learn_intelex-2025.8.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.8.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +0 -200
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -428
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -128
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -227
- scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
- scikit_learn_intelex-2025.8.0.dist-info/RECORD +0 -259
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_device_offload.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.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.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_third_party.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/base.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.8.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.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
- {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/top_level.txt +0 -0
|
@@ -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.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)
|
|
@@ -42,7 +42,9 @@ from sklearnex.tests.utils.spmd import (
|
|
|
42
42
|
@pytest.mark.mpi
|
|
43
43
|
def test_covariance_spmd_gold(dataframe, queue):
|
|
44
44
|
# Import spmd and batch algo
|
|
45
|
-
from
|
|
45
|
+
from sklearnex.preview.covariance import (
|
|
46
|
+
EmpiricalCovariance as EmpiricalCovariance_Batch,
|
|
47
|
+
)
|
|
46
48
|
from sklearnex.spmd.covariance import EmpiricalCovariance as EmpiricalCovariance_SPMD
|
|
47
49
|
|
|
48
50
|
# Create gold data and convert to dataframe
|
|
@@ -81,7 +83,7 @@ def test_covariance_spmd_gold(dataframe, queue):
|
|
|
81
83
|
@pytest.mark.parametrize("assume_centered", [True, False])
|
|
82
84
|
@pytest.mark.parametrize(
|
|
83
85
|
"dataframe,queue",
|
|
84
|
-
get_dataframes_and_queues(dataframe_filter_="dpnp
|
|
86
|
+
get_dataframes_and_queues(dataframe_filter_="dpnp", device_filter_="gpu"),
|
|
85
87
|
)
|
|
86
88
|
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
87
89
|
@pytest.mark.parametrize("use_raw_input", [True, False])
|
|
@@ -90,8 +92,9 @@ def test_covariance_spmd_synthetic(
|
|
|
90
92
|
n_samples, n_features, assume_centered, dataframe, queue, dtype, use_raw_input
|
|
91
93
|
):
|
|
92
94
|
# Import spmd and batch algo
|
|
93
|
-
|
|
94
|
-
|
|
95
|
+
from sklearnex.preview.covariance import (
|
|
96
|
+
EmpiricalCovariance as EmpiricalCovariance_Batch,
|
|
97
|
+
)
|
|
95
98
|
from sklearnex.spmd.covariance import EmpiricalCovariance as EmpiricalCovariance_SPMD
|
|
96
99
|
|
|
97
100
|
# Generate data and convert to dataframe
|
|
@@ -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
|
)
|
|
@@ -191,5 +192,9 @@ def test_incremental_covariance_partial_fit_spmd_synthetic(
|
|
|
191
192
|
|
|
192
193
|
tol = 1e-7
|
|
193
194
|
|
|
194
|
-
assert_allclose(
|
|
195
|
-
|
|
195
|
+
assert_allclose(
|
|
196
|
+
_as_numpy(inccov_spmd.covariance_), _as_numpy(inccov.covariance_), atol=tol
|
|
197
|
+
)
|
|
198
|
+
assert_allclose(
|
|
199
|
+
_as_numpy(inccov_spmd.location_), _as_numpy(inccov.location_), atol=tol
|
|
200
|
+
)
|
|
@@ -14,8 +14,10 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ==============================================================================
|
|
16
16
|
|
|
17
|
-
from onedal.spmd.decomposition import PCA
|
|
17
|
+
from onedal.spmd.decomposition import PCA as onedal_PCA
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
from ...decomposition import PCA as base_PCA
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class PCA(base_PCA):
|
|
23
|
+
_onedal_PCA = staticmethod(onedal_PCA)
|
|
@@ -262,8 +262,8 @@ def test_incremental_pca_partial_fit_spmd_random(
|
|
|
262
262
|
|
|
263
263
|
for attribute in attributes_to_compare:
|
|
264
264
|
assert_allclose(
|
|
265
|
-
getattr(incpca, attribute),
|
|
266
|
-
getattr(incpca_spmd, attribute),
|
|
265
|
+
_as_numpy(getattr(incpca, attribute)),
|
|
266
|
+
_as_numpy(getattr(incpca_spmd, attribute)),
|
|
267
267
|
atol=tol,
|
|
268
268
|
err_msg=f"{attribute} is incorrect",
|
|
269
269
|
)
|
|
@@ -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
|
)
|
|
@@ -122,12 +123,24 @@ def test_pca_spmd_synthetic(
|
|
|
122
123
|
batch_result = PCA_Batch(n_components=n_components, whiten=whiten).fit(data)
|
|
123
124
|
|
|
124
125
|
tol = 1e-3 if dtype == np.float32 else 1e-7
|
|
125
|
-
assert_allclose(spmd_result.mean_, batch_result.mean_, atol=tol)
|
|
126
|
-
assert_allclose(spmd_result.components_, batch_result.components_, atol=tol, rtol=tol)
|
|
127
|
-
assert_allclose(spmd_result.singular_values_, batch_result.singular_values_, atol=tol)
|
|
128
|
-
assert_allclose(spmd_result.noise_variance_, batch_result.noise_variance_, atol=tol)
|
|
129
126
|
assert_allclose(
|
|
130
|
-
spmd_result.
|
|
131
|
-
batch_result.
|
|
127
|
+
_as_numpy(spmd_result.components_),
|
|
128
|
+
_as_numpy(batch_result.components_),
|
|
129
|
+
atol=tol,
|
|
130
|
+
rtol=tol,
|
|
131
|
+
)
|
|
132
|
+
assert_allclose(
|
|
133
|
+
_as_numpy(spmd_result.singular_values_),
|
|
134
|
+
_as_numpy(batch_result.singular_values_),
|
|
135
|
+
atol=tol,
|
|
136
|
+
)
|
|
137
|
+
assert_allclose(
|
|
138
|
+
_as_numpy(spmd_result.noise_variance_),
|
|
139
|
+
_as_numpy(batch_result.noise_variance_),
|
|
140
|
+
atol=tol,
|
|
141
|
+
)
|
|
142
|
+
assert_allclose(
|
|
143
|
+
_as_numpy(spmd_result.explained_variance_ratio_),
|
|
144
|
+
_as_numpy(batch_result.explained_variance_ratio_),
|
|
132
145
|
atol=tol,
|
|
133
146
|
)
|
scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
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 onedal.spmd.neighbors import (
|
|
18
|
+
KNeighborsClassifier,
|
|
19
|
+
KNeighborsRegressor,
|
|
20
|
+
NearestNeighbors,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
__all__ = ["KNeighborsClassifier", "KNeighborsRegressor", "NearestNeighbors"]
|
|
@@ -24,9 +24,9 @@ from onedal.tests.utils._dataframes_support import (
|
|
|
24
24
|
)
|
|
25
25
|
from sklearnex import config_context
|
|
26
26
|
from sklearnex.tests.utils.spmd import (
|
|
27
|
-
_assert_unordered_allclose,
|
|
28
27
|
_generate_classification_data,
|
|
29
28
|
_generate_regression_data,
|
|
29
|
+
_generate_statistic_data,
|
|
30
30
|
_get_local_tensor,
|
|
31
31
|
_mpi_libs_and_gpu_available,
|
|
32
32
|
_spmd_assert_allclose,
|
|
@@ -94,8 +94,8 @@ def test_knncls_spmd_gold(dataframe, queue):
|
|
|
94
94
|
spmd_result = spmd_model.predict(local_dpt_X_test)
|
|
95
95
|
batch_result = batch_model.predict(X_test)
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
_spmd_assert_allclose(spmd_indcs, batch_indcs)
|
|
98
|
+
_spmd_assert_allclose(spmd_dists, batch_dists)
|
|
99
99
|
_spmd_assert_allclose(spmd_result, batch_result)
|
|
100
100
|
|
|
101
101
|
|
|
@@ -164,10 +164,8 @@ def test_knncls_spmd_synthetic(
|
|
|
164
164
|
|
|
165
165
|
tol = 1e-4
|
|
166
166
|
if dtype == np.float64:
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
spmd_dists, batch_dists, localize=True, rtol=tol, atol=tol
|
|
170
|
-
)
|
|
167
|
+
_spmd_assert_allclose(spmd_indcs, batch_indcs)
|
|
168
|
+
_spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
|
|
171
169
|
_spmd_assert_allclose(spmd_result, batch_result)
|
|
172
170
|
|
|
173
171
|
|
|
@@ -231,8 +229,8 @@ def test_knnreg_spmd_gold(dataframe, queue):
|
|
|
231
229
|
spmd_result = spmd_model.predict(local_dpt_X_test)
|
|
232
230
|
batch_result = batch_model.predict(X_test)
|
|
233
231
|
|
|
234
|
-
|
|
235
|
-
|
|
232
|
+
_spmd_assert_allclose(spmd_indcs, batch_indcs)
|
|
233
|
+
_spmd_assert_allclose(spmd_dists, batch_dists)
|
|
236
234
|
_spmd_assert_allclose(spmd_result, batch_result)
|
|
237
235
|
|
|
238
236
|
|
|
@@ -303,8 +301,133 @@ def test_knnreg_spmd_synthetic(
|
|
|
303
301
|
|
|
304
302
|
tol = 0.005 if dtype == np.float32 else 1e-4
|
|
305
303
|
if dtype == np.float64:
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
spmd_dists, batch_dists, localize=True, rtol=tol, atol=tol
|
|
309
|
-
)
|
|
304
|
+
_spmd_assert_allclose(spmd_indcs, batch_indcs)
|
|
305
|
+
_spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
|
|
310
306
|
_spmd_assert_allclose(spmd_result, batch_result, rtol=tol, atol=tol)
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
@pytest.mark.skipif(
|
|
310
|
+
not _mpi_libs_and_gpu_available,
|
|
311
|
+
reason="GPU device and MPI libs required for test",
|
|
312
|
+
)
|
|
313
|
+
@pytest.mark.parametrize(
|
|
314
|
+
"dataframe,queue",
|
|
315
|
+
get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
|
|
316
|
+
)
|
|
317
|
+
@pytest.mark.mpi
|
|
318
|
+
def test_knnsearch_spmd_gold(dataframe, queue):
|
|
319
|
+
# Import spmd and batch algo
|
|
320
|
+
from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
|
|
321
|
+
from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
|
|
322
|
+
|
|
323
|
+
# Create gold data and convert to dataframe
|
|
324
|
+
X_train = np.array(
|
|
325
|
+
[[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
|
|
326
|
+
)
|
|
327
|
+
local_dpt_X_train = _convert_to_dataframe(
|
|
328
|
+
_get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
# Ensure predictions of batch algo match spmd
|
|
332
|
+
spmd_model = NearestNeighbors_SPMD(n_neighbors=2, algorithm="brute").fit(
|
|
333
|
+
local_dpt_X_train
|
|
334
|
+
)
|
|
335
|
+
batch_model = NearestNeighbors_Batch(n_neighbors=2, algorithm="brute").fit(X_train)
|
|
336
|
+
spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
|
|
337
|
+
batch_dists, batch_indcs = batch_model.kneighbors(X_train)
|
|
338
|
+
|
|
339
|
+
_spmd_assert_allclose(spmd_indcs, batch_indcs)
|
|
340
|
+
_spmd_assert_allclose(spmd_dists, batch_dists)
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
@pytest.mark.skipif(
|
|
344
|
+
not _mpi_libs_and_gpu_available,
|
|
345
|
+
reason="GPU device and MPI libs required for test",
|
|
346
|
+
)
|
|
347
|
+
@pytest.mark.parametrize(
|
|
348
|
+
"dimensions", [{"n": 100, "m": 10, "k": 2}, {"n": 100000, "m": 100, "k": 100}]
|
|
349
|
+
)
|
|
350
|
+
@pytest.mark.parametrize(
|
|
351
|
+
"dataframe,queue",
|
|
352
|
+
get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
|
|
353
|
+
)
|
|
354
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
355
|
+
@pytest.mark.mpi
|
|
356
|
+
def test_knnsearch_spmd_synthetic(
|
|
357
|
+
dimensions,
|
|
358
|
+
dataframe,
|
|
359
|
+
queue,
|
|
360
|
+
dtype,
|
|
361
|
+
):
|
|
362
|
+
if dimensions["n"] > 10000 and dtype == np.float32:
|
|
363
|
+
pytest.skip("Skipping large float32 test due to expected precision issues")
|
|
364
|
+
|
|
365
|
+
# Import spmd and batch algo
|
|
366
|
+
from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
|
|
367
|
+
from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
|
|
368
|
+
|
|
369
|
+
# Generate data and convert to dataframe
|
|
370
|
+
X_train = _generate_statistic_data(dimensions["n"], dimensions["m"], dtype=dtype)
|
|
371
|
+
|
|
372
|
+
local_dpt_X_train = _convert_to_dataframe(
|
|
373
|
+
_get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
|
|
374
|
+
)
|
|
375
|
+
|
|
376
|
+
# Ensure search results of batch algo match spmd
|
|
377
|
+
spmd_model = NearestNeighbors_SPMD(
|
|
378
|
+
n_neighbors=dimensions["k"], algorithm="brute"
|
|
379
|
+
).fit(local_dpt_X_train)
|
|
380
|
+
batch_model = NearestNeighbors_Batch(
|
|
381
|
+
n_neighbors=dimensions["k"], algorithm="brute"
|
|
382
|
+
).fit(X_train)
|
|
383
|
+
spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
|
|
384
|
+
batch_dists, batch_indcs = batch_model.kneighbors(X_train)
|
|
385
|
+
|
|
386
|
+
tol = 0.005 if dtype == np.float32 else 1e-6
|
|
387
|
+
_spmd_assert_allclose(spmd_indcs, batch_indcs)
|
|
388
|
+
_spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
@pytest.mark.skipif(
|
|
392
|
+
not _mpi_libs_and_gpu_available,
|
|
393
|
+
reason="GPU device and MPI libs required for test",
|
|
394
|
+
)
|
|
395
|
+
@pytest.mark.parametrize(
|
|
396
|
+
"dataframe,queue",
|
|
397
|
+
get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
|
|
398
|
+
)
|
|
399
|
+
@pytest.mark.mpi
|
|
400
|
+
def test_knn_spmd_empty_kneighbors(dataframe, queue):
|
|
401
|
+
# Import spmd and batch algo
|
|
402
|
+
from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
|
|
403
|
+
from sklearnex.spmd.neighbors import (
|
|
404
|
+
KNeighborsClassifier,
|
|
405
|
+
KNeighborsRegressor,
|
|
406
|
+
NearestNeighbors,
|
|
407
|
+
)
|
|
408
|
+
|
|
409
|
+
# Create gold data and convert to dataframe
|
|
410
|
+
X_train = np.array(
|
|
411
|
+
[[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
|
|
412
|
+
)
|
|
413
|
+
y_train = np.array([0, 1, 0, 1, 0, 1, 0, 1])
|
|
414
|
+
local_dpt_X_train = _convert_to_dataframe(
|
|
415
|
+
_get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
|
|
416
|
+
)
|
|
417
|
+
local_dpt_y_train = _convert_to_dataframe(
|
|
418
|
+
_get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
|
|
419
|
+
)
|
|
420
|
+
|
|
421
|
+
# Run each estimator without an input to kneighbors() and ensure functionality and equivalence
|
|
422
|
+
for CurrentEstimator in [KNeighborsClassifier, KNeighborsRegressor, NearestNeighbors]:
|
|
423
|
+
spmd_model = CurrentEstimator(n_neighbors=1, algorithm="brute").fit(
|
|
424
|
+
local_dpt_X_train, local_dpt_y_train
|
|
425
|
+
)
|
|
426
|
+
batch_model = NearestNeighbors_Batch(n_neighbors=1, algorithm="brute").fit(
|
|
427
|
+
X_train, y_train
|
|
428
|
+
)
|
|
429
|
+
spmd_dists, spmd_indcs = spmd_model.kneighbors()
|
|
430
|
+
batch_dists, batch_indcs = batch_model.kneighbors()
|
|
431
|
+
|
|
432
|
+
_spmd_assert_allclose(spmd_indcs, batch_indcs)
|
|
433
|
+
_spmd_assert_allclose(spmd_dists, batch_dists)
|
|
@@ -19,20 +19,69 @@ from numbers import Number, Real
|
|
|
19
19
|
|
|
20
20
|
import numpy as np
|
|
21
21
|
from scipy import sparse as sp
|
|
22
|
-
from sklearn.base import
|
|
22
|
+
from sklearn.base import ClassifierMixin
|
|
23
23
|
from sklearn.calibration import CalibratedClassifierCV
|
|
24
24
|
from sklearn.metrics import r2_score
|
|
25
25
|
from sklearn.preprocessing import LabelEncoder
|
|
26
26
|
|
|
27
27
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
28
28
|
from daal4py.sklearn.utils.validation import get_requires_y_tag
|
|
29
|
-
from onedal.utils.validation import _check_array,
|
|
29
|
+
from onedal.utils.validation import _check_array, _column_or_1d
|
|
30
30
|
|
|
31
31
|
from .._config import config_context, get_config
|
|
32
32
|
from .._utils import PatchingConditionsChain
|
|
33
33
|
from ..base import oneDALEstimator
|
|
34
34
|
from ..utils.validation import validate_data
|
|
35
35
|
|
|
36
|
+
if sklearn_check_version("1.6"):
|
|
37
|
+
from sklearn.calibration import _fit_calibrator
|
|
38
|
+
from sklearn.frozen import FrozenEstimator
|
|
39
|
+
from sklearn.utils import indexable
|
|
40
|
+
from sklearn.utils._response import _get_response_values
|
|
41
|
+
from sklearn.utils.multiclass import check_classification_targets
|
|
42
|
+
from sklearn.utils.validation import check_is_fitted
|
|
43
|
+
|
|
44
|
+
def _prefit_CalibratedClassifierCV_fit(self, X, y, **fit_params):
|
|
45
|
+
# This is a stop-gap solution where the cv='prefit' of CalibratedClassifierCV
|
|
46
|
+
# was removed and the single fold solution needs to be maintained. Discussion
|
|
47
|
+
# of the mathematical and performance implications of this choice can be found
|
|
48
|
+
# here: https://github.com/uxlfoundation/scikit-learn-intelex/pull/1879
|
|
49
|
+
# This is distilled from the sklearn CalibratedClassifierCV for sklearn <1.8 for
|
|
50
|
+
# use in sklearn > 1.8 to maintain performance.
|
|
51
|
+
check_classification_targets(y)
|
|
52
|
+
X, y = indexable(X, y)
|
|
53
|
+
|
|
54
|
+
estimator = self._get_estimator()
|
|
55
|
+
|
|
56
|
+
self.calibrated_classifiers_ = []
|
|
57
|
+
check_is_fitted(self.estimator, attributes=["classes_"])
|
|
58
|
+
self.classes_ = self.estimator.classes_
|
|
59
|
+
|
|
60
|
+
predictions, _ = _get_response_values(
|
|
61
|
+
estimator,
|
|
62
|
+
X,
|
|
63
|
+
response_method=["decision_function", "predict_proba"],
|
|
64
|
+
)
|
|
65
|
+
if predictions.ndim == 1:
|
|
66
|
+
# Reshape binary output from `(n_samples,)` to `(n_samples, 1)`
|
|
67
|
+
predictions = predictions.reshape(-1, 1)
|
|
68
|
+
|
|
69
|
+
calibrated_classifier = _fit_calibrator(
|
|
70
|
+
estimator,
|
|
71
|
+
predictions,
|
|
72
|
+
y,
|
|
73
|
+
self.classes_,
|
|
74
|
+
self.method,
|
|
75
|
+
)
|
|
76
|
+
self.calibrated_classifiers_.append(calibrated_classifier)
|
|
77
|
+
|
|
78
|
+
first_clf = self.calibrated_classifiers_[0].estimator
|
|
79
|
+
if hasattr(first_clf, "n_features_in_"):
|
|
80
|
+
self.n_features_in_ = first_clf.n_features_in_
|
|
81
|
+
if hasattr(first_clf, "feature_names_in_"):
|
|
82
|
+
self.feature_names_in_ = first_clf.feature_names_in_
|
|
83
|
+
return self
|
|
84
|
+
|
|
36
85
|
|
|
37
86
|
class BaseSVM(oneDALEstimator):
|
|
38
87
|
|
|
@@ -262,12 +311,26 @@ class BaseSVC(BaseSVM):
|
|
|
262
311
|
cfg["target_offload"] = queue
|
|
263
312
|
with config_context(**cfg):
|
|
264
313
|
clf_base.fit(X, y)
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
314
|
+
|
|
315
|
+
# Forced use of FrozenEstimator starting in sklearn 1.6
|
|
316
|
+
if sklearn_check_version("1.6"):
|
|
317
|
+
clf_base = FrozenEstimator(clf_base)
|
|
318
|
+
|
|
319
|
+
self.clf_prob = CalibratedClassifierCV(
|
|
320
|
+
clf_base,
|
|
321
|
+
ensemble=False,
|
|
322
|
+
method="sigmoid",
|
|
323
|
+
)
|
|
324
|
+
# see custom stopgap solution defined above
|
|
325
|
+
_prefit_CalibratedClassifierCV_fit(self.clf_prob, X, y)
|
|
326
|
+
else:
|
|
327
|
+
|
|
328
|
+
self.clf_prob = CalibratedClassifierCV(
|
|
329
|
+
clf_base,
|
|
330
|
+
ensemble=False,
|
|
331
|
+
cv="prefit",
|
|
332
|
+
method="sigmoid",
|
|
333
|
+
).fit(X, y)
|
|
271
334
|
|
|
272
335
|
def _save_attributes(self):
|
|
273
336
|
self.support_vectors_ = self._onedal_estimator.support_vectors_
|
|
@@ -52,7 +52,6 @@ TARGET_OFFLOAD_ALLOWED_LOCATIONS = [
|
|
|
52
52
|
]
|
|
53
53
|
|
|
54
54
|
_DESIGN_RULE_VIOLATIONS = {
|
|
55
|
-
"PCA-fit_transform-call_validate_data": "calls both 'fit' and 'transform'",
|
|
56
55
|
"IncrementalEmpiricalCovariance-score-call_validate_data": "must call clone of itself",
|
|
57
56
|
"SVC(probability=True)-fit-call_validate_data": "SVC fit can use sklearn estimator",
|
|
58
57
|
"NuSVC(probability=True)-fit-call_validate_data": "NuSVC fit can use sklearn estimator",
|
|
@@ -273,7 +273,7 @@ def _kfold_function_template(
|
|
|
273
273
|
|
|
274
274
|
@pytest.mark.parametrize("order", ["F", "C"])
|
|
275
275
|
@pytest.mark.parametrize(
|
|
276
|
-
"dataframe,queue", get_dataframes_and_queues("numpy,pandas
|
|
276
|
+
"dataframe,queue", get_dataframes_and_queues("numpy,pandas", "cpu")
|
|
277
277
|
)
|
|
278
278
|
@pytest.mark.parametrize("estimator", CPU_ESTIMATORS.keys())
|
|
279
279
|
@pytest.mark.parametrize("data_shape", data_shapes)
|
|
@@ -27,7 +27,7 @@ import numpy.random as nprnd
|
|
|
27
27
|
import pytest
|
|
28
28
|
from sklearn.base import BaseEstimator
|
|
29
29
|
|
|
30
|
-
from daal4py.sklearn._utils import sklearn_check_version
|
|
30
|
+
from daal4py.sklearn._utils import _package_check_version, sklearn_check_version
|
|
31
31
|
from onedal.tests.utils._dataframes_support import (
|
|
32
32
|
_convert_to_dataframe,
|
|
33
33
|
get_dataframes_and_queues,
|
|
@@ -174,9 +174,13 @@ def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator,
|
|
|
174
174
|
# the infrastructure from sklearn that sklearnex depends on is also susceptible
|
|
175
175
|
# to failure. In this case compare to sklearn for the same failure. By design
|
|
176
176
|
# the patching of sklearn should act similarly. Technically this is conformance.
|
|
177
|
-
if
|
|
177
|
+
if (
|
|
178
|
+
(estimator == "PCA" and "transform" in method)
|
|
179
|
+
or (estimator == "IncrementalEmpiricalCovariance" and method == "mahalanobis")
|
|
180
|
+
) and not _package_check_version("2.0", np.__version__):
|
|
181
|
+
# issue not to be observed with normal numpy usage
|
|
178
182
|
pytest.skip(
|
|
179
|
-
f"
|
|
183
|
+
f"numpy backend does not properly handle the __dlpack__ attribute."
|
|
180
184
|
)
|
|
181
185
|
elif (
|
|
182
186
|
not sklearn_check_version("1.3")
|
|
@@ -16,13 +16,16 @@
|
|
|
16
16
|
|
|
17
17
|
"""Tools to support array_api."""
|
|
18
18
|
|
|
19
|
+
import math
|
|
19
20
|
from collections.abc import Callable
|
|
20
21
|
from typing import Union
|
|
21
22
|
|
|
22
23
|
import numpy as np
|
|
24
|
+
import scipy.linalg as linalg
|
|
25
|
+
from sklearn.covariance import log_likelihood as _sklearn_log_likelihood
|
|
23
26
|
|
|
24
27
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
25
|
-
from onedal.utils._array_api import _get_sycl_namespace
|
|
28
|
+
from onedal.utils._array_api import _get_sycl_namespace, _is_numpy_namespace
|
|
26
29
|
|
|
27
30
|
from ..base import oneDALEstimator
|
|
28
31
|
|
|
@@ -151,3 +154,64 @@ def enable_array_api(
|
|
|
151
154
|
else:
|
|
152
155
|
# default setting (apply array_api enablement for sklearn >=1.3)
|
|
153
156
|
return _enable_array_api(class_or_str)
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def _pinvh(a, atol=None, rtol=None, lower=True, return_rank=False, check_finite=True):
|
|
160
|
+
# array API enabled pinvh implementation, via direct translation of scipy.linalg.pinhv
|
|
161
|
+
# this should be considered a temporary stopgap until implemented in oneDAL
|
|
162
|
+
xp, _ = get_namespace(a)
|
|
163
|
+
# fall back to scipy if the namespace is of a numpy origin
|
|
164
|
+
if _is_numpy_namespace(xp):
|
|
165
|
+
return linalg.pinvh(
|
|
166
|
+
a,
|
|
167
|
+
atol=atol,
|
|
168
|
+
rtol=rtol,
|
|
169
|
+
lower=lower,
|
|
170
|
+
return_rank=return_rank,
|
|
171
|
+
check_finite=check_finite,
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
if check_finite:
|
|
175
|
+
raise NotImplementedError("finite checking does not occur in sklearnex's pinvh")
|
|
176
|
+
|
|
177
|
+
s, u = xp.linalg.eigh(a)
|
|
178
|
+
maxS = xp.max(xp.abs(s))
|
|
179
|
+
|
|
180
|
+
atol = 0.0 if atol is None else atol
|
|
181
|
+
rtol = max(a.shape) * xp.finfo(u.dtype).eps if (rtol is None) else rtol
|
|
182
|
+
|
|
183
|
+
if (atol < 0.0) or (rtol < 0.0):
|
|
184
|
+
raise ValueError("atol and rtol values must be positive.")
|
|
185
|
+
|
|
186
|
+
val = atol + maxS * rtol
|
|
187
|
+
above_cutoff = xp.nonzero(abs(s) > val)[0]
|
|
188
|
+
|
|
189
|
+
psigma_diag = 1.0 / xp.take(s, above_cutoff)
|
|
190
|
+
u = xp.take(u, above_cutoff, axis=1)
|
|
191
|
+
|
|
192
|
+
uconj = xp.conj(u) if xp.isdtype(u.dtype, kind="complex floating") else u
|
|
193
|
+
|
|
194
|
+
B = (u * psigma_diag) @ uconj.T
|
|
195
|
+
|
|
196
|
+
if return_rank:
|
|
197
|
+
return B, len(psigma_diag)
|
|
198
|
+
else:
|
|
199
|
+
return B
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
def log_likelihood(emp_cov, precision):
|
|
203
|
+
# this is to compensate for a lack of array API support in sklearn
|
|
204
|
+
# even though it exists for ``fast_logdet``
|
|
205
|
+
xp, _ = get_namespace(emp_cov, precision)
|
|
206
|
+
p = precision.shape[0]
|
|
207
|
+
# extract sklearn.utils.extmath.fast_logdet for dpnp/dpctl support
|
|
208
|
+
sign, ld = xp.linalg.slogdet(precision)
|
|
209
|
+
if not sign > 0:
|
|
210
|
+
ld = -xp.inf
|
|
211
|
+
log_likelihood_ = -xp.sum(emp_cov * precision) + ld
|
|
212
|
+
log_likelihood_ -= p * math.log(2 * math.pi)
|
|
213
|
+
log_likelihood_ /= 2.0
|
|
214
|
+
return log_likelihood_
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
log_likelihood.__doc__ = _sklearn_log_likelihood.__doc__
|