scikit-learn-intelex 2025.6.1__py313-none-win_amd64.whl → 2025.7.0__py313-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +2 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +258 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +30 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp313-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +21 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +15 -16
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/__init__.py +26 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/_config.py +5 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/_device_offload.py +72 -83
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +69 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +19 -19
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +17 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_backend.py +62 -37
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +3 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +2 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +8 -16
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +8 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +25 -32
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +78 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +8 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +45 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +8 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +6 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +10 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +34 -32
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +22 -30
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +9 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +64 -17
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -12
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +23 -6
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +22 -25
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +57 -31
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +170 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/validation.py +11 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_config.py +17 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +33 -23
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/_utils.py +23 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/base.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +5 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +17 -13
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +12 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +16 -9
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +115 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +12 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +9 -3
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +14 -5
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +14 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +3 -4
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +9 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +1 -1
- scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +119 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -7
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +41 -2
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +22 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -8
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +1 -1
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +10 -10
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/METADATA +2 -2
- scikit_learn_intelex-2025.7.0.dist-info/RECORD +258 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -71
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -58
- scikit_learn_intelex-2025.6.1.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -66
- scikit_learn_intelex-2025.6.1.dist-info/RECORD +0 -257
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.6.1.data → scikit_learn_intelex-2025.7.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.6.1.dist-info → scikit_learn_intelex-2025.7.0.dist-info}/top_level.txt +0 -0
scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
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
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from numpy.testing import assert_allclose
|
|
20
|
+
|
|
21
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
22
|
+
from onedal.tests.utils._dataframes_support import (
|
|
23
|
+
_as_numpy,
|
|
24
|
+
_convert_to_dataframe,
|
|
25
|
+
get_dataframes_and_queues,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# Note: this is arranged as a fixture with a finalizer instead of as a parameter
|
|
30
|
+
# 'True' / 'False' in order to undo the changes later so that it doesn't affect
|
|
31
|
+
# other tests afterwards. It returns a function instead of making the change
|
|
32
|
+
# directly, in order to avoid importing the estimator class before the import test
|
|
33
|
+
# itself, but it still needs to import the class inside the the function that it
|
|
34
|
+
# returns due to serialization logic in pytest causing differences w.r.t. current
|
|
35
|
+
# closure where the function is called.
|
|
36
|
+
@pytest.fixture(params=[False, True])
|
|
37
|
+
def hyperparameters_route(request):
|
|
38
|
+
def change_parameters(queue, macro_block, grain_size):
|
|
39
|
+
from sklearnex.decomposition import PCA
|
|
40
|
+
|
|
41
|
+
if request.param and daal_check_version((2025, "P", 700)):
|
|
42
|
+
if queue and queue.sycl_device.is_gpu:
|
|
43
|
+
pytest.skip("Test for CPU-only functionality")
|
|
44
|
+
|
|
45
|
+
hparams = PCA.get_hyperparameters("fit")
|
|
46
|
+
if macro_block is not None:
|
|
47
|
+
hyperparameters_route.curr_cpu_macro_block = hparams.cpu_macro_block
|
|
48
|
+
hparams.cpu_macro_block = macro_block
|
|
49
|
+
else:
|
|
50
|
+
hyperparameters_route.curr_cpu_macro_block = None
|
|
51
|
+
if grain_size is not None:
|
|
52
|
+
hyperparameters_route.curr_cpu_grain_size = hparams.cpu_grain_size
|
|
53
|
+
hparams.cpu_grain_size = grain_size
|
|
54
|
+
else:
|
|
55
|
+
hyperparameters_route.curr_cpu_grain_size = None
|
|
56
|
+
elif request.param and not daal_check_version((2025, "P", 700)):
|
|
57
|
+
pytest.skip("Functionality introduced in later versions")
|
|
58
|
+
|
|
59
|
+
def restore_params():
|
|
60
|
+
from sklearnex.decomposition import PCA
|
|
61
|
+
|
|
62
|
+
if request.param and daal_check_version((2025, "P", 500)):
|
|
63
|
+
hparams = PCA.get_hyperparameters("fit")
|
|
64
|
+
if (
|
|
65
|
+
hasattr(hyperparameters_route, "curr_cpu_macro_block")
|
|
66
|
+
and hyperparameters_route.curr_cpu_macro_block is not None
|
|
67
|
+
):
|
|
68
|
+
hparams.cpu_macro_block = hyperparameters_route.curr_cpu_macro_block
|
|
69
|
+
if (
|
|
70
|
+
hasattr(hyperparameters_route, "curr_cpu_grain_size")
|
|
71
|
+
and hyperparameters_route.curr_cpu_grain_size is not None
|
|
72
|
+
):
|
|
73
|
+
hparams.cpu_grain_size = hyperparameters_route.curr_cpu_grain_size
|
|
74
|
+
|
|
75
|
+
request.addfinalizer(restore_params)
|
|
76
|
+
return change_parameters
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
80
|
+
@pytest.mark.parametrize("macro_block", [None, 2])
|
|
81
|
+
@pytest.mark.parametrize("grain_size", [None, 2])
|
|
82
|
+
def test_sklearnex_import(
|
|
83
|
+
dataframe, queue, macro_block, grain_size, hyperparameters_route
|
|
84
|
+
):
|
|
85
|
+
from sklearnex.decomposition import PCA
|
|
86
|
+
|
|
87
|
+
X = [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]
|
|
88
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
89
|
+
X_transformed_expected = [
|
|
90
|
+
[-1.38340578, -0.2935787],
|
|
91
|
+
[-2.22189802, 0.25133484],
|
|
92
|
+
[-3.6053038, -0.04224385],
|
|
93
|
+
[1.38340578, 0.2935787],
|
|
94
|
+
[2.22189802, -0.25133484],
|
|
95
|
+
[3.6053038, 0.04224385],
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
pca = PCA(n_components=2, svd_solver="covariance_eigh")
|
|
99
|
+
|
|
100
|
+
hyperparameters_route(queue, macro_block, grain_size)
|
|
101
|
+
|
|
102
|
+
pca.fit(X)
|
|
103
|
+
X_transformed = pca.transform(X)
|
|
104
|
+
X_fit_transformed = PCA(n_components=2, svd_solver="covariance_eigh").fit_transform(X)
|
|
105
|
+
|
|
106
|
+
if daal_check_version((2024, "P", 100)):
|
|
107
|
+
assert "sklearnex" in pca.__module__
|
|
108
|
+
assert hasattr(pca, "_onedal_estimator")
|
|
109
|
+
else:
|
|
110
|
+
assert "daal4py" in pca.__module__
|
|
111
|
+
|
|
112
|
+
tol = 1e-5 if _as_numpy(X_transformed).dtype == np.float32 else 1e-7
|
|
113
|
+
assert_allclose([6.30061232, 0.54980396], _as_numpy(pca.singular_values_))
|
|
114
|
+
assert_allclose(X_transformed_expected, _as_numpy(X_transformed), rtol=tol)
|
|
115
|
+
assert_allclose(X_transformed_expected, _as_numpy(X_fit_transformed), rtol=tol)
|
|
@@ -529,6 +529,17 @@ def sklearn_is_patched(name=None, return_map=False):
|
|
|
529
529
|
|
|
530
530
|
|
|
531
531
|
def is_patched_instance(instance: object) -> bool:
|
|
532
|
-
"""
|
|
532
|
+
"""Check if given instance is patched with scikit-learn-intelex.
|
|
533
|
+
|
|
534
|
+
Parameters
|
|
535
|
+
----------
|
|
536
|
+
instance : object
|
|
537
|
+
Python object, usually a scikit-learn estimator instance.
|
|
538
|
+
|
|
539
|
+
Returns
|
|
540
|
+
-------
|
|
541
|
+
Check : bool
|
|
542
|
+
Boolean whether instance is a daal4py or sklearnex estimator.
|
|
543
|
+
"""
|
|
533
544
|
module = getattr(instance, "__module__", "")
|
|
534
545
|
return ("daal4py" in module) or ("sklearnex" in module)
|
|
@@ -57,7 +57,6 @@ from onedal.ensemble import ExtraTreesRegressor as onedal_ExtraTreesRegressor
|
|
|
57
57
|
from onedal.ensemble import RandomForestClassifier as onedal_RandomForestClassifier
|
|
58
58
|
from onedal.ensemble import RandomForestRegressor as onedal_RandomForestRegressor
|
|
59
59
|
from onedal.primitives import get_tree_state_cls, get_tree_state_reg
|
|
60
|
-
from onedal.utils._dpep_helpers import get_unique_values_with_dpep
|
|
61
60
|
from onedal.utils.validation import _num_features, _num_samples
|
|
62
61
|
from sklearnex import get_hyperparameters
|
|
63
62
|
from sklearnex._utils import register_hyperparameters
|
|
@@ -123,7 +122,13 @@ class BaseForest(oneDALEstimator, ABC):
|
|
|
123
122
|
if sample_weight is not None:
|
|
124
123
|
sample_weight = [sample_weight]
|
|
125
124
|
else:
|
|
126
|
-
|
|
125
|
+
# try catch needed for raw_inputs + array_api data where unlike
|
|
126
|
+
# numpy the way to yield unique values is via `unique_values`
|
|
127
|
+
# This should be removed when refactored for gpu zero-copy
|
|
128
|
+
try:
|
|
129
|
+
self.classes_ = xp.unique(y)
|
|
130
|
+
except AttributeError:
|
|
131
|
+
self.classes_ = xp.unique_values(y)
|
|
127
132
|
self.n_classes_ = len(self.classes_)
|
|
128
133
|
self.n_features_in_ = X.shape[1]
|
|
129
134
|
|
|
@@ -826,7 +831,8 @@ class ForestClassifier(BaseForest, _sklearn_ForestClassifier):
|
|
|
826
831
|
res = self._onedal_estimator.predict(X, queue=queue)
|
|
827
832
|
try:
|
|
828
833
|
return xp.take(
|
|
829
|
-
xp.asarray(self.classes_
|
|
834
|
+
xp.asarray(self.classes_, device=res.sycl_queue),
|
|
835
|
+
xp.astype(xp.reshape(res, (-1,)), xp.int64),
|
|
830
836
|
)
|
|
831
837
|
except AttributeError:
|
|
832
838
|
return np.take(self.classes_, res.ravel().astype(np.int64, casting="unsafe"))
|
|
@@ -60,8 +60,11 @@ class IncrementalLinearRegression(
|
|
|
60
60
|
MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEstimator
|
|
61
61
|
):
|
|
62
62
|
"""
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
Incremental Ordinary least squares Linear Regression.
|
|
64
|
+
|
|
65
|
+
Trains a linear regression model, allows for computation if the data
|
|
66
|
+
are split into batches. The user can use the ``partial_fit`` method
|
|
67
|
+
to provide a single batch of data or use the ``fit`` method to provide
|
|
65
68
|
the entire dataset.
|
|
66
69
|
|
|
67
70
|
Parameters
|
|
@@ -107,6 +110,10 @@ class IncrementalLinearRegression(
|
|
|
107
110
|
n_features_in_ : int
|
|
108
111
|
Number of features seen during ``fit`` or ``partial_fit``.
|
|
109
112
|
|
|
113
|
+
Notes
|
|
114
|
+
-----
|
|
115
|
+
Sparse data formats are not supported. Input dtype must be ``float32`` or ``float64``.
|
|
116
|
+
|
|
110
117
|
%incremental_serialization_note%
|
|
111
118
|
|
|
112
119
|
Examples
|
|
@@ -311,8 +318,7 @@ class IncrementalLinearRegression(
|
|
|
311
318
|
|
|
312
319
|
def partial_fit(self, X, y, check_input=True):
|
|
313
320
|
"""
|
|
314
|
-
Incremental fit
|
|
315
|
-
processed as a single batch.
|
|
321
|
+
Incremental fit with X and y. X and y are processed as a single batch.
|
|
316
322
|
|
|
317
323
|
Parameters
|
|
318
324
|
----------
|
|
@@ -324,6 +330,9 @@ class IncrementalLinearRegression(
|
|
|
324
330
|
Target values, where ``n_samples`` is the number of samples and
|
|
325
331
|
``n_targets`` is the number of targets.
|
|
326
332
|
|
|
333
|
+
check_input : bool, default=True
|
|
334
|
+
Run validate_data on X and y.
|
|
335
|
+
|
|
327
336
|
Returns
|
|
328
337
|
-------
|
|
329
338
|
self : IncrementalLinearRegression
|
|
@@ -354,7 +363,7 @@ class IncrementalLinearRegression(
|
|
|
354
363
|
``n_features`` is the number of features. It is necessary for
|
|
355
364
|
``n_samples`` to be not less than ``n_features`` if ``fit_intercept``
|
|
356
365
|
is False and not less than ``n_features + 1`` if ``fit_intercept``
|
|
357
|
-
is True
|
|
366
|
+
is 'True'.
|
|
358
367
|
|
|
359
368
|
y : array-like of shape (n_samples,) or (n_samples, n_targets)
|
|
360
369
|
Target values, where ``n_samples`` is the number of samples and
|
|
@@ -45,7 +45,8 @@ from ..base import oneDALEstimator
|
|
|
45
45
|
class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEstimator):
|
|
46
46
|
"""
|
|
47
47
|
Incremental estimator for Ridge Regression.
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
Allows to train Ridge Regression if data is split into batches.
|
|
49
50
|
|
|
50
51
|
Parameters
|
|
51
52
|
----------
|
|
@@ -96,6 +97,10 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
|
|
|
96
97
|
batch_size_ : int
|
|
97
98
|
Inferred batch size from ``batch_size``.
|
|
98
99
|
|
|
100
|
+
Notes
|
|
101
|
+
-----
|
|
102
|
+
Sparse data formats are not supported. Input dtype must be ``float32`` or ``float64``.
|
|
103
|
+
|
|
99
104
|
%incremental_serialization_note%
|
|
100
105
|
"""
|
|
101
106
|
|
|
@@ -240,8 +245,7 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
|
|
|
240
245
|
|
|
241
246
|
def partial_fit(self, X, y, check_input=True):
|
|
242
247
|
"""
|
|
243
|
-
Incrementally fits
|
|
244
|
-
processed as a single batch.
|
|
248
|
+
Incrementally fits with X and y. X and y are processed as a single batch.
|
|
245
249
|
|
|
246
250
|
Parameters
|
|
247
251
|
----------
|
|
@@ -253,6 +257,9 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
|
|
|
253
257
|
Target values, where `n_samples` is the number of samples and
|
|
254
258
|
`n_targets` is the number of targets.
|
|
255
259
|
|
|
260
|
+
check_input : bool, default=True
|
|
261
|
+
Run validate_data on X and y.
|
|
262
|
+
|
|
256
263
|
Returns
|
|
257
264
|
-------
|
|
258
265
|
self : IncrementalRidge
|
|
@@ -280,10 +287,10 @@ class IncrementalRidge(MultiOutputMixin, RegressorMixin, oneDALEstimator, BaseEs
|
|
|
280
287
|
----------
|
|
281
288
|
X : array-like of shape (n_samples, n_features)
|
|
282
289
|
Training data, where `n_samples` is the number of samples and
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
is False and not less than
|
|
286
|
-
is True
|
|
290
|
+
``n_features`` is the number of features. It is necessary for
|
|
291
|
+
``n_samples`` to be not less than ``n_features`` if ``fit_intercept``
|
|
292
|
+
is False and not less than ``n_features`` + 1 if ``fit_intercept``
|
|
293
|
+
is True.
|
|
287
294
|
|
|
288
295
|
y : array-like of shape (n_samples,) or (n_samples, n_targets)
|
|
289
296
|
Target values, where `n_samples` is the number of samples and
|
|
@@ -208,12 +208,11 @@ if daal_check_version((2024, "P", 1)):
|
|
|
208
208
|
),
|
|
209
209
|
(self.class_weight is None, "Class weight is not supported"),
|
|
210
210
|
(self.solver == "newton-cg", "Only newton-cg solver is supported."),
|
|
211
|
+
(self.warm_start == False, "Warm start is not supported."),
|
|
211
212
|
(
|
|
212
|
-
self.
|
|
213
|
-
"
|
|
213
|
+
not self.l1_ratio,
|
|
214
|
+
"l1 ratio is not supported.",
|
|
214
215
|
),
|
|
215
|
-
(self.warm_start == False, "Warm start is not supported."),
|
|
216
|
-
(self.l1_ratio is None, "l1 ratio is not supported."),
|
|
217
216
|
(sample_weight is None, "Sample weight is not supported."),
|
|
218
217
|
(
|
|
219
218
|
target_type == "binary",
|
|
@@ -325,6 +325,15 @@ if daal_check_version((2024, "P", 600)):
|
|
|
325
325
|
self._onedal_estimator.fit(X, y, queue=queue)
|
|
326
326
|
self._save_attributes()
|
|
327
327
|
|
|
328
|
+
if sklearn_check_version("1.6"):
|
|
329
|
+
if y.ndim == 1 or y.shape[1] == 1:
|
|
330
|
+
self.coef_ = self.coef_.ravel()
|
|
331
|
+
self.intercept_ = self.intercept_[0]
|
|
332
|
+
else:
|
|
333
|
+
if self.coef_.shape[0] == 1 and y.ndim == 1:
|
|
334
|
+
self.coef_ = self.coef_.ravel()
|
|
335
|
+
self.intercept_ = self.intercept_[0]
|
|
336
|
+
|
|
328
337
|
def _onedal_predict(self, X, queue=None):
|
|
329
338
|
X = validate_data(self, X, accept_sparse=False, reset=False)
|
|
330
339
|
|
|
@@ -190,7 +190,7 @@ def test_tsne_reproducibility(dataframe, queue, dtype):
|
|
|
190
190
|
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
191
191
|
tsne_1 = TSNE(n_components=2, random_state=42).fit_transform(X_df)
|
|
192
192
|
tsne_2 = TSNE(n_components=2, random_state=42).fit_transform(X_df)
|
|
193
|
-
# in case of dpctl.tensor.usm_ndarray
|
|
193
|
+
# in case of dpctl.tensor.usm_ndarray convert to numpy array
|
|
194
194
|
tsne_1 = _as_numpy(tsne_1)
|
|
195
195
|
tsne_2 = _as_numpy(tsne_2)
|
|
196
196
|
assert_allclose(tsne_1, tsne_2, rtol=1e-5)
|
|
@@ -141,7 +141,7 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, _sklearn_LocalOutlierFactor)
|
|
|
141
141
|
# This had to be done because predict loses the queue when no
|
|
142
142
|
# argument is given and it is a dpctl tensor or dpnp array.
|
|
143
143
|
# This would cause issues in fit_predict. Also, available_if
|
|
144
|
-
# is hard to unwrap, and this is the most
|
|
144
|
+
# is hard to unwrap, and this is the most straightforward way.
|
|
145
145
|
@available_if(_sklearn_LocalOutlierFactor._check_novelty_fit_predict)
|
|
146
146
|
@wraps(_sklearn_LocalOutlierFactor.fit_predict, assigned=["__doc__"])
|
|
147
147
|
@wrap_output_data
|
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from numpy.testing import assert_allclose
|
|
20
|
+
|
|
21
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
22
|
+
from onedal.tests.utils._dataframes_support import (
|
|
23
|
+
_convert_to_dataframe,
|
|
24
|
+
get_dataframes_and_queues,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# Note: this is arranged as a fixture with a finalizer instead of as a parameter
|
|
29
|
+
# 'True' / 'False' in order to undo the changes later so that it doesn't affect
|
|
30
|
+
# other tests afterwards. It returns a function instead of making the change
|
|
31
|
+
# directly, in order to avoid importing the estimator class before the import test
|
|
32
|
+
# itself, but it still needs to import the class inside the the function that it
|
|
33
|
+
# returns due to serialization logic in pytest causing differences w.r.t. current
|
|
34
|
+
# closure where the function is called.
|
|
35
|
+
@pytest.fixture(params=[False, True])
|
|
36
|
+
def hyperparameters_route(request):
|
|
37
|
+
def change_parameters(queue, macro_block, grain_size):
|
|
38
|
+
from sklearnex.preview.covariance import EmpiricalCovariance
|
|
39
|
+
|
|
40
|
+
if request.param and daal_check_version((2025, "P", 700)):
|
|
41
|
+
if queue and queue.sycl_device.is_gpu:
|
|
42
|
+
pytest.skip("Test for CPU-only functionality")
|
|
43
|
+
|
|
44
|
+
hparams = EmpiricalCovariance.get_hyperparameters("fit")
|
|
45
|
+
if macro_block is not None:
|
|
46
|
+
hyperparameters_route.curr_cpu_macro_block = hparams.cpu_macro_block
|
|
47
|
+
hparams.cpu_macro_block = macro_block
|
|
48
|
+
else:
|
|
49
|
+
hyperparameters_route.curr_cpu_macro_block = None
|
|
50
|
+
if grain_size is not None:
|
|
51
|
+
hyperparameters_route.curr_cpu_grain_size = hparams.cpu_grain_size
|
|
52
|
+
hparams.cpu_grain_size = grain_size
|
|
53
|
+
else:
|
|
54
|
+
hyperparameters_route.curr_cpu_grain_size = None
|
|
55
|
+
elif request.param and not daal_check_version((2025, "P", 700)):
|
|
56
|
+
pytest.skip("Functionality introduced in later versions")
|
|
57
|
+
|
|
58
|
+
def restore_params():
|
|
59
|
+
from sklearnex.preview.covariance import EmpiricalCovariance
|
|
60
|
+
|
|
61
|
+
if request.param and daal_check_version((2025, "P", 500)):
|
|
62
|
+
hparams = EmpiricalCovariance.get_hyperparameters("fit")
|
|
63
|
+
if (
|
|
64
|
+
hasattr(hyperparameters_route, "curr_cpu_macro_block")
|
|
65
|
+
and hyperparameters_route.curr_cpu_macro_block is not None
|
|
66
|
+
):
|
|
67
|
+
hparams.cpu_macro_block = hyperparameters_route.curr_cpu_macro_block
|
|
68
|
+
if (
|
|
69
|
+
hasattr(hyperparameters_route, "curr_cpu_grain_size")
|
|
70
|
+
and hyperparameters_route.curr_cpu_grain_size is not None
|
|
71
|
+
):
|
|
72
|
+
hparams.cpu_grain_size = hyperparameters_route.curr_cpu_grain_size
|
|
73
|
+
|
|
74
|
+
request.addfinalizer(restore_params)
|
|
75
|
+
return change_parameters
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
79
|
+
@pytest.mark.parametrize("macro_block", [None, 2])
|
|
80
|
+
@pytest.mark.parametrize("grain_size", [None, 2])
|
|
81
|
+
@pytest.mark.parametrize("assume_centered", [True, False])
|
|
82
|
+
def test_sklearnex_import_covariance(
|
|
83
|
+
dataframe, queue, macro_block, grain_size, assume_centered, hyperparameters_route
|
|
84
|
+
):
|
|
85
|
+
from sklearnex.preview.covariance import EmpiricalCovariance
|
|
86
|
+
|
|
87
|
+
X = np.array([[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]])
|
|
88
|
+
|
|
89
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
90
|
+
empcov = EmpiricalCovariance(assume_centered=assume_centered)
|
|
91
|
+
|
|
92
|
+
hyperparameters_route(queue, macro_block, grain_size)
|
|
93
|
+
|
|
94
|
+
result = empcov.fit(X)
|
|
95
|
+
|
|
96
|
+
expected_covariance = np.array([[0, 0], [0, 0]])
|
|
97
|
+
expected_means = np.array([0, 0])
|
|
98
|
+
|
|
99
|
+
if assume_centered:
|
|
100
|
+
expected_covariance = np.array([[0, 0], [0, 1]])
|
|
101
|
+
else:
|
|
102
|
+
expected_means = np.array([0, 1])
|
|
103
|
+
|
|
104
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
105
|
+
assert_allclose(expected_means, result.location_)
|
|
106
|
+
|
|
107
|
+
X = np.array([[1, 2], [3, 6]])
|
|
108
|
+
|
|
109
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
110
|
+
result = empcov.fit(X)
|
|
111
|
+
|
|
112
|
+
if assume_centered:
|
|
113
|
+
expected_covariance = np.array([[5, 10], [10, 20]])
|
|
114
|
+
else:
|
|
115
|
+
expected_covariance = np.array([[1, 2], [2, 4]])
|
|
116
|
+
expected_means = np.array([2, 4])
|
|
117
|
+
|
|
118
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
119
|
+
assert_allclose(expected_means, result.location_)
|
|
@@ -24,14 +24,6 @@ from ...covariance import (
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class IncrementalEmpiricalCovariance(base_IncrementalEmpiricalCovariance):
|
|
27
|
-
"""
|
|
28
|
-
Incremental distributed estimator for covariance.
|
|
29
|
-
Allows to distributely compute empirical covariance estimated by maximum
|
|
30
|
-
likelihood method if data are splitted into batches.
|
|
31
|
-
|
|
32
|
-
API is the same as for `sklearnex.covariance.IncrementalEmpiricalCovariance`
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
27
|
_onedal_incremental_covariance = staticmethod(
|
|
36
28
|
onedalSPMD_IncrementalEmpiricalCovariance
|
|
37
29
|
)
|
|
@@ -20,11 +20,4 @@ from ...preview.decomposition import IncrementalPCA as base_IncrementalPCA
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class IncrementalPCA(base_IncrementalPCA):
|
|
23
|
-
"""
|
|
24
|
-
Distributed incremental estimator for PCA based on sklearnex implementation.
|
|
25
|
-
Allows for distributed PCA computation if data is split into batches.
|
|
26
|
-
|
|
27
|
-
API is the same as for `sklearnex.decomposition.IncrementalPCA`
|
|
28
|
-
"""
|
|
29
|
-
|
|
30
23
|
_onedal_incremental_pca = staticmethod(onedalSPMD_IncrementalPCA)
|
|
@@ -25,11 +25,4 @@ from ...linear_model import (
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
class IncrementalLinearRegression(base_IncrementalLinearRegression):
|
|
28
|
-
"""
|
|
29
|
-
Distributed incremental estimator for linear regression.
|
|
30
|
-
Allows for distributed training of linear regression if data is split into batches.
|
|
31
|
-
|
|
32
|
-
API is the same as for `sklearnex.linear_model.IncrementalLinearRegression`.
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
28
|
_onedal_incremental_linear = staticmethod(onedalSPMD_IncrementalLinearRegression)
|
|
@@ -233,7 +233,7 @@ class BaseSVC(BaseSVM):
|
|
|
233
233
|
|
|
234
234
|
le = LabelEncoder()
|
|
235
235
|
y_ind = le.fit_transform(y_)
|
|
236
|
-
if not
|
|
236
|
+
if not np.isin(classes, le.classes_).all():
|
|
237
237
|
raise ValueError("classes should have valid labels that are in y")
|
|
238
238
|
|
|
239
239
|
recip_freq = len(y_) / (len(le.classes_) * np.bincount(y_ind).astype(np.float64))
|
|
@@ -20,6 +20,7 @@ import os
|
|
|
20
20
|
import pathlib
|
|
21
21
|
import pkgutil
|
|
22
22
|
import re
|
|
23
|
+
import subprocess
|
|
23
24
|
import sys
|
|
24
25
|
import trace
|
|
25
26
|
from contextlib import redirect_stdout
|
|
@@ -31,6 +32,7 @@ from sklearn.utils import all_estimators
|
|
|
31
32
|
|
|
32
33
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
33
34
|
from onedal.tests.test_common import _check_primitive_usage_ban
|
|
35
|
+
from onedal.tests.utils._dataframes_support import test_frameworks
|
|
34
36
|
from sklearnex.base import oneDALEstimator
|
|
35
37
|
from sklearnex.tests.utils import (
|
|
36
38
|
PATCHED_MODELS,
|
|
@@ -118,7 +120,7 @@ def test_target_offload_ban():
|
|
|
118
120
|
allowed_locations=TARGET_OFFLOAD_ALLOWED_LOCATIONS,
|
|
119
121
|
)
|
|
120
122
|
output = "\n".join(output)
|
|
121
|
-
assert output == "", f"target offloading is
|
|
123
|
+
assert output == "", f"target offloading is occurring in: \n{output}"
|
|
122
124
|
|
|
123
125
|
|
|
124
126
|
def _sklearnex_walk(func):
|
|
@@ -146,7 +148,7 @@ def test_class_trailing_underscore_ban(monkeypatch):
|
|
|
146
148
|
estimators = all_estimators() # list of tuples
|
|
147
149
|
for name, obj in estimators:
|
|
148
150
|
if "preview" not in obj.__module__ and "daal4py" not in obj.__module__:
|
|
149
|
-
#
|
|
151
|
+
# properties also occur in sklearn, especially in deprecations and are expected
|
|
150
152
|
# to error if queried and the estimator is not fitted
|
|
151
153
|
assert all(
|
|
152
154
|
[
|
|
@@ -201,6 +203,43 @@ def test_oneDALEstimator_inheritance(monkeypatch):
|
|
|
201
203
|
), f"oneDALEstimator should be inherited just before BaseEstimator in {name}"
|
|
202
204
|
|
|
203
205
|
|
|
206
|
+
def test_frameworks_lazy_import(monkeypatch):
|
|
207
|
+
"""Check that all estimators defined in sklearnex do not actively
|
|
208
|
+
load data frameworks which are not numpy or pandas.
|
|
209
|
+
"""
|
|
210
|
+
active = ["numpy", "pandas", "dpctl.tensor"]
|
|
211
|
+
# handle naming conventions for data frameworks in testing
|
|
212
|
+
frameworks = test_frameworks.replace("dpctl", "dpctl.tensor")
|
|
213
|
+
frameworks = frameworks.replace("array_api", "array_api_strict")
|
|
214
|
+
lazy = ",".join([i for i in frameworks.split(",") if i not in active])
|
|
215
|
+
if not lazy:
|
|
216
|
+
pytest.skip("No lazily-imported data frameworks available in testing")
|
|
217
|
+
|
|
218
|
+
monkeypatch.setattr(pkgutil, "walk_packages", _sklearnex_walk(pkgutil.walk_packages))
|
|
219
|
+
estimators = all_estimators() # list of tuples
|
|
220
|
+
|
|
221
|
+
filtered_modules = []
|
|
222
|
+
for name, obj in estimators:
|
|
223
|
+
# do not test spmd or preview, as they are exempt
|
|
224
|
+
if "preview" not in obj.__module__ and "spmd" not in obj.__module__:
|
|
225
|
+
filtered_modules += [obj.__module__]
|
|
226
|
+
|
|
227
|
+
modules = ",".join(filtered_modules)
|
|
228
|
+
|
|
229
|
+
# import all modules with estimators and check sys.modules for the lazily-imported data
|
|
230
|
+
# frameworks. It is done in a subprocess to isolate the impact of testing infrastructure
|
|
231
|
+
# on sys.modules, which may have actively loaded those frameworks into the test env
|
|
232
|
+
teststr = (
|
|
233
|
+
"import sys,{mod};assert all([i not in sys.modules for i in '{l}'.split(',')])"
|
|
234
|
+
)
|
|
235
|
+
cmd = [sys.executable, "-c", teststr.format(mod=modules, l=lazy)]
|
|
236
|
+
|
|
237
|
+
try:
|
|
238
|
+
subprocess.run(cmd, check=True, capture_output=True, text=True)
|
|
239
|
+
except subprocess.CalledProcessError as e:
|
|
240
|
+
raise AssertionError(f"a framework in '{lazy}' is being actively loaded") from e
|
|
241
|
+
|
|
242
|
+
|
|
204
243
|
def _fullpath(path):
|
|
205
244
|
return os.path.realpath(os.path.expanduser(path))
|
|
206
245
|
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import logging
|
|
18
18
|
|
|
19
|
+
import numpy as np
|
|
19
20
|
import pytest
|
|
20
21
|
import sklearn
|
|
21
22
|
|
|
@@ -127,6 +128,27 @@ def test_config_context_works():
|
|
|
127
128
|
assert onedal_default_config_after_cc[param] == onedal_default_config[param]
|
|
128
129
|
|
|
129
130
|
|
|
131
|
+
@pytest.mark.skipif(
|
|
132
|
+
onedal._default_backend.is_dpc, reason="requires host default backend"
|
|
133
|
+
)
|
|
134
|
+
@pytest.mark.parametrize("target", ["auto", "cpu", "cpu:0", "gpu", 3])
|
|
135
|
+
def test_host_backend_target_offload(target):
|
|
136
|
+
from sklearnex.neighbors import NearestNeighbors
|
|
137
|
+
|
|
138
|
+
err_msg = (
|
|
139
|
+
r"device use via \`target_offload\` is only supported with the DPC\+\+ backend"
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
est = NearestNeighbors()
|
|
143
|
+
if target != "auto":
|
|
144
|
+
with pytest.raises(ValueError, match=err_msg):
|
|
145
|
+
with sklearnex.config_context(target_offload=target):
|
|
146
|
+
est.fit(np.eye(5, 8))
|
|
147
|
+
else:
|
|
148
|
+
with sklearnex.config_context(target_offload=target):
|
|
149
|
+
est.fit(np.eye(5, 8))
|
|
150
|
+
|
|
151
|
+
|
|
130
152
|
@pytest.mark.skipif(
|
|
131
153
|
not is_dpctl_device_available(["gpu"]), reason="Requires a gpu for fallback testing"
|
|
132
154
|
)
|
|
@@ -35,7 +35,6 @@ from onedal.tests.utils._dataframes_support import (
|
|
|
35
35
|
)
|
|
36
36
|
from onedal.tests.utils._device_selection import get_queues, is_dpctl_device_available
|
|
37
37
|
from onedal.utils._array_api import _get_sycl_namespace
|
|
38
|
-
from onedal.utils._dpep_helpers import dpctl_available, dpnp_available
|
|
39
38
|
from sklearnex import config_context
|
|
40
39
|
from sklearnex.tests.utils import (
|
|
41
40
|
PATCHED_FUNCTIONS,
|
|
@@ -44,13 +43,6 @@ from sklearnex.tests.utils import (
|
|
|
44
43
|
DummyEstimator,
|
|
45
44
|
)
|
|
46
45
|
|
|
47
|
-
if dpctl_available:
|
|
48
|
-
from dpctl.tensor import usm_ndarray
|
|
49
|
-
|
|
50
|
-
if dpnp_available:
|
|
51
|
-
import dpnp
|
|
52
|
-
|
|
53
|
-
|
|
54
46
|
CPU_SKIP_LIST = (
|
|
55
47
|
"TSNE", # too slow for using in testing on common data size
|
|
56
48
|
"config_context", # does not malloc
|
|
@@ -95,7 +95,7 @@ def test_n_jobs_support(estimator, n_jobs, caplog):
|
|
|
95
95
|
"NearestNeighbors" in estimator and "radius" in method_name
|
|
96
96
|
):
|
|
97
97
|
# radius_neighbors and radius_neighbors_graph violate sklearn fallback guard
|
|
98
|
-
# but use sklearnex
|
|
98
|
+
# but use sklearnex internally, additional development must be done to those
|
|
99
99
|
# functions to bring them to design compliance.
|
|
100
100
|
continue
|
|
101
101
|
try:
|
|
@@ -153,7 +153,7 @@ def gen_models_info(algorithms, required_inputs=["X", "y"], fit=False, daal4py=T
|
|
|
153
153
|
required_inputs : list, tuple of strings or None
|
|
154
154
|
list of required args/kwargs for callable attribute (only non-private,
|
|
155
155
|
non-BaseEstimator attributes). Only one must be present, None
|
|
156
|
-
signifies taking all non-private
|
|
156
|
+
signifies taking all non-private attributes, callable or not.
|
|
157
157
|
|
|
158
158
|
fit: bool (default False)
|
|
159
159
|
Include "fit" method as an estimator-attribute pair
|