scikit-learn-intelex 2024.4.0__py312-none-win_amd64.whl → 2025.10.0__py312-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.
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -28
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/neighbors/__init__.py +19 -19
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__init__.py +7 -3
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +128 -78
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +101 -32
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +38 -29
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/conftest.py +20 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +199 -21
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -17
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +288 -440
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +17 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +11 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +30 -62
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +56 -9
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +45 -101
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +63 -94
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +49 -25
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +6 -4
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +54 -8
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +9 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +3 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +1 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +99 -117
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +55 -16
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +95 -113
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +51 -16
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +43 -20
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +5 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +122 -75
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
- scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
- scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/WHEEL +1 -1
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_config.py +0 -110
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -250
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_utils.py +0 -109
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -130
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -143
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -335
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -56
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -113
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -316
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -385
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -117
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -91
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -133
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -185
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -164
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -39
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -227
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -99
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -20
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py +0 -97
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
- scikit_learn_intelex-2024.4.0.dist-info/METADATA +0 -230
- scikit_learn_intelex-2024.4.0.dist-info/RECORD +0 -101
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/top_level.txt +0 -0
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
import importlib
|
|
19
|
-
import inspect
|
|
20
19
|
import logging
|
|
21
20
|
import os
|
|
22
21
|
import re
|
|
@@ -28,21 +27,23 @@ import numpy.random as nprnd
|
|
|
28
27
|
import pytest
|
|
29
28
|
from sklearn.base import BaseEstimator
|
|
30
29
|
|
|
31
|
-
from daal4py.sklearn._utils import sklearn_check_version
|
|
30
|
+
from daal4py.sklearn._utils import _package_check_version, sklearn_check_version
|
|
32
31
|
from onedal.tests.utils._dataframes_support import (
|
|
33
32
|
_convert_to_dataframe,
|
|
34
33
|
get_dataframes_and_queues,
|
|
35
34
|
)
|
|
36
|
-
from sklearnex import is_patched_instance
|
|
35
|
+
from sklearnex import config_context, is_patched_instance
|
|
36
|
+
from sklearnex._utils import get_tags
|
|
37
37
|
from sklearnex.dispatcher import _is_preview_enabled
|
|
38
38
|
from sklearnex.metrics import pairwise_distances, roc_auc_score
|
|
39
|
-
from sklearnex.tests.
|
|
39
|
+
from sklearnex.tests.utils import (
|
|
40
40
|
DTYPES,
|
|
41
41
|
PATCHED_FUNCTIONS,
|
|
42
42
|
PATCHED_MODELS,
|
|
43
43
|
SPECIAL_INSTANCES,
|
|
44
44
|
UNPATCHED_FUNCTIONS,
|
|
45
45
|
UNPATCHED_MODELS,
|
|
46
|
+
call_method,
|
|
46
47
|
gen_dataset,
|
|
47
48
|
gen_models_info,
|
|
48
49
|
)
|
|
@@ -61,12 +62,15 @@ def test_pairwise_distances_patching(caplog, dataframe, queue, dtype, metric):
|
|
|
61
62
|
pytest.skip("pairwise_distances does not support GPU queues")
|
|
62
63
|
|
|
63
64
|
rng = nprnd.default_rng()
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
if dataframe == "pandas":
|
|
66
|
+
X = _convert_to_dataframe(
|
|
67
|
+
rng.random(size=1000).astype(dtype).reshape(1, -1),
|
|
68
|
+
target_df=dataframe,
|
|
69
|
+
)
|
|
70
|
+
else:
|
|
71
|
+
X = _convert_to_dataframe(
|
|
72
|
+
rng.random(size=1000), sycl_queue=queue, target_df=dataframe, dtype=dtype
|
|
73
|
+
)[None, :]
|
|
70
74
|
|
|
71
75
|
_ = pairwise_distances(X, metric=metric)
|
|
72
76
|
assert all(
|
|
@@ -90,14 +94,17 @@ def test_roc_auc_score_patching(caplog, dataframe, queue, dtype):
|
|
|
90
94
|
|
|
91
95
|
with caplog.at_level(logging.WARNING, logger="sklearnex"):
|
|
92
96
|
rng = nprnd.default_rng()
|
|
97
|
+
X = rng.integers(2, size=1000)
|
|
98
|
+
y = rng.integers(2, size=1000)
|
|
99
|
+
|
|
93
100
|
X = _convert_to_dataframe(
|
|
94
|
-
|
|
101
|
+
X,
|
|
95
102
|
sycl_queue=queue,
|
|
96
103
|
target_df=dataframe,
|
|
97
104
|
dtype=dtype,
|
|
98
105
|
)
|
|
99
106
|
y = _convert_to_dataframe(
|
|
100
|
-
|
|
107
|
+
y,
|
|
101
108
|
sycl_queue=queue,
|
|
102
109
|
target_df=dataframe,
|
|
103
110
|
dtype=dtype,
|
|
@@ -113,46 +120,17 @@ def test_roc_auc_score_patching(caplog, dataframe, queue, dtype):
|
|
|
113
120
|
), f"sklearnex patching issue in roc_auc_score with log: \n{caplog.text}"
|
|
114
121
|
|
|
115
122
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator, method):
|
|
120
|
-
with caplog.at_level(logging.WARNING, logger="sklearnex"):
|
|
121
|
-
est = PATCHED_MODELS[estimator]()
|
|
122
|
-
|
|
123
|
-
if queue:
|
|
124
|
-
if dtype == np.float16 and not queue.sycl_device.has_aspect_fp16:
|
|
125
|
-
pytest.skip("Hardware does not support fp16 SYCL testing")
|
|
126
|
-
elif dtype == np.float64 and not queue.sycl_device.has_aspect_fp64:
|
|
127
|
-
pytest.skip("Hardware does not support fp64 SYCL testing")
|
|
128
|
-
elif queue.sycl_device.is_gpu and estimator in [
|
|
129
|
-
"KMeans",
|
|
130
|
-
"ElasticNet",
|
|
131
|
-
"Lasso",
|
|
132
|
-
"Ridge",
|
|
133
|
-
]:
|
|
134
|
-
pytest.skip(f"{estimator} does not support GPU queues")
|
|
135
|
-
|
|
136
|
-
if estimator == "TSNE" and method == "fit_transform":
|
|
137
|
-
pytest.skip("TSNE.fit_transform is too slow for common testing")
|
|
138
|
-
elif (
|
|
139
|
-
estimator == "Ridge"
|
|
140
|
-
and method in ["predict", "score"]
|
|
141
|
-
and sys.platform == "win32"
|
|
142
|
-
and dtype in [np.uint32, np.uint64]
|
|
143
|
-
):
|
|
144
|
-
pytest.skip("Windows segmentation fault for Ridge.predict for unsigned ints")
|
|
145
|
-
elif method and not hasattr(est, method):
|
|
146
|
-
pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
|
|
123
|
+
def _check_estimator_patching(caplog, dataframe, queue, dtype, est, method):
|
|
124
|
+
# This should be modified as more array_api frameworks are tested and for
|
|
125
|
+
# upcoming changes in dpnp and dpctl
|
|
147
126
|
|
|
148
|
-
|
|
127
|
+
with caplog.at_level(logging.WARNING, logger="sklearnex"):
|
|
128
|
+
X, y = gen_dataset(est, queue=queue, target_df=dataframe, dtype=dtype)[0]
|
|
149
129
|
est.fit(X, y)
|
|
150
130
|
|
|
151
131
|
if method:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
else:
|
|
155
|
-
est.score(X, y)
|
|
132
|
+
call_method(est, method, X, y)
|
|
133
|
+
|
|
156
134
|
assert all(
|
|
157
135
|
[
|
|
158
136
|
"running accelerated version" in i.message
|
|
@@ -162,40 +140,101 @@ def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator,
|
|
|
162
140
|
), f"sklearnex patching issue in {estimator}.{method} with log: \n{caplog.text}"
|
|
163
141
|
|
|
164
142
|
|
|
143
|
+
@pytest.mark.parametrize("dtype", DTYPES)
|
|
144
|
+
@pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues())
|
|
145
|
+
@pytest.mark.parametrize("estimator, method", gen_models_info(PATCHED_MODELS))
|
|
146
|
+
def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator, method):
|
|
147
|
+
est = PATCHED_MODELS[estimator]()
|
|
148
|
+
|
|
149
|
+
if queue:
|
|
150
|
+
if dtype == np.float16 and not queue.sycl_device.has_aspect_fp16:
|
|
151
|
+
pytest.skip("Hardware does not support fp16 SYCL testing")
|
|
152
|
+
elif dtype == np.float64 and not queue.sycl_device.has_aspect_fp64:
|
|
153
|
+
pytest.skip("Hardware does not support fp64 SYCL testing")
|
|
154
|
+
elif queue.sycl_device.is_gpu and estimator in [
|
|
155
|
+
"ElasticNet",
|
|
156
|
+
"Lasso",
|
|
157
|
+
]:
|
|
158
|
+
pytest.skip(f"{estimator} does not support GPU queues")
|
|
159
|
+
|
|
160
|
+
if "NearestNeighbors" in estimator and "radius" in method:
|
|
161
|
+
pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
|
|
162
|
+
|
|
163
|
+
if estimator == "TSNE" and method == "fit_transform":
|
|
164
|
+
pytest.skip("TSNE.fit_transform is too slow for common testing")
|
|
165
|
+
elif estimator == "IncrementalLinearRegression" and np.issubdtype(dtype, np.integer):
|
|
166
|
+
pytest.skip(
|
|
167
|
+
"IncrementalLinearRegression fails on oneDAL side with int types because dataset is filled by zeroes"
|
|
168
|
+
)
|
|
169
|
+
elif method and not hasattr(est, method):
|
|
170
|
+
pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
|
|
171
|
+
|
|
172
|
+
if dataframe == "array_api":
|
|
173
|
+
# as array_api dispatching is experimental, sklearn support isn't guaranteed.
|
|
174
|
+
# the infrastructure from sklearn that sklearnex depends on is also susceptible
|
|
175
|
+
# to failure. In this case compare to sklearn for the same failure. By design
|
|
176
|
+
# the patching of sklearn should act similarly. Technically this is conformance.
|
|
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
|
|
182
|
+
pytest.skip(
|
|
183
|
+
f"numpy backend does not properly handle the __dlpack__ attribute."
|
|
184
|
+
)
|
|
185
|
+
elif (
|
|
186
|
+
not sklearn_check_version("1.3")
|
|
187
|
+
and estimator == "IncrementalEmpiricalCovariance"
|
|
188
|
+
and method == "score"
|
|
189
|
+
):
|
|
190
|
+
pytest.skip(
|
|
191
|
+
f"array checking in sklearn <1.3 does not fully support array_api inputs, causes sklearnex-only estimator failure"
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
with config_context(array_api_dispatch=True):
|
|
195
|
+
try:
|
|
196
|
+
_check_estimator_patching(caplog, dataframe, queue, dtype, est, method)
|
|
197
|
+
except Exception as e:
|
|
198
|
+
# if we are borrowing from sklearn and it fails, then this is something
|
|
199
|
+
# failing on sklearn-side. It is only allowed to fail if the underlying sklearn
|
|
200
|
+
# function doesn't support array_api with the set parameters and array_api
|
|
201
|
+
# support isn't promised by oneDAL
|
|
202
|
+
tags = get_tags(est)
|
|
203
|
+
array_api_check = (
|
|
204
|
+
hasattr(tags, "array_api_support")
|
|
205
|
+
and tags.array_api_support
|
|
206
|
+
or hasattr(tags, "onedal_array_api")
|
|
207
|
+
and tags.onedal_array_api
|
|
208
|
+
)
|
|
209
|
+
if (
|
|
210
|
+
array_api_check
|
|
211
|
+
or estimator not in UNPATCHED_MODELS
|
|
212
|
+
or getattr(PATCHED_MODELS[estimator], method)
|
|
213
|
+
!= getattr(UNPATCHED_MODELS[estimator], method, None)
|
|
214
|
+
):
|
|
215
|
+
raise e
|
|
216
|
+
|
|
217
|
+
else:
|
|
218
|
+
_check_estimator_patching(caplog, dataframe, queue, dtype, est, method)
|
|
219
|
+
|
|
220
|
+
|
|
165
221
|
@pytest.mark.parametrize("dtype", DTYPES)
|
|
166
222
|
@pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues())
|
|
167
223
|
@pytest.mark.parametrize("estimator, method", gen_models_info(SPECIAL_INSTANCES))
|
|
168
224
|
def test_special_estimator_patching(caplog, dataframe, queue, dtype, estimator, method):
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
with caplog.at_level(logging.WARNING, logger="sklearnex"):
|
|
172
|
-
est = SPECIAL_INSTANCES[estimator]
|
|
225
|
+
est = SPECIAL_INSTANCES[estimator]
|
|
173
226
|
|
|
227
|
+
if queue:
|
|
174
228
|
# Its not possible to get the dpnp/dpctl arrays to be in the proper dtype
|
|
175
|
-
if dtype == np.float16 and
|
|
229
|
+
if dtype == np.float16 and not queue.sycl_device.has_aspect_fp16:
|
|
176
230
|
pytest.skip("Hardware does not support fp16 SYCL testing")
|
|
177
|
-
elif dtype == np.float64 and
|
|
231
|
+
elif dtype == np.float64 and not queue.sycl_device.has_aspect_fp64:
|
|
178
232
|
pytest.skip("Hardware does not support fp64 SYCL testing")
|
|
179
233
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
if method and not hasattr(est, method):
|
|
184
|
-
pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
|
|
185
|
-
|
|
186
|
-
if method:
|
|
187
|
-
if method != "score":
|
|
188
|
-
getattr(est, method)(X)
|
|
189
|
-
else:
|
|
190
|
-
est.score(X, y)
|
|
234
|
+
if "NearestNeighbors" in estimator and "radius" in method:
|
|
235
|
+
pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
|
|
191
236
|
|
|
192
|
-
|
|
193
|
-
[
|
|
194
|
-
"running accelerated version" in i.message
|
|
195
|
-
or "fallback to original Scikit-learn" in i.message
|
|
196
|
-
for i in caplog.records
|
|
197
|
-
]
|
|
198
|
-
), f"sklearnex patching issue in {estimator}.{method} with log: \n{caplog.text}"
|
|
237
|
+
_check_estimator_patching(caplog, dataframe, queue, dtype, est, method)
|
|
199
238
|
|
|
200
239
|
|
|
201
240
|
@pytest.mark.parametrize("estimator", UNPATCHED_MODELS.keys())
|
|
@@ -279,9 +318,17 @@ def test_patch_map_match():
|
|
|
279
318
|
|
|
280
319
|
def list_all_attr(string):
|
|
281
320
|
try:
|
|
282
|
-
|
|
321
|
+
mod = importlib.import_module(string)
|
|
283
322
|
except ModuleNotFoundError:
|
|
284
|
-
|
|
323
|
+
return set([None])
|
|
324
|
+
|
|
325
|
+
# Some sklearn estimators exist in python
|
|
326
|
+
# files rather than folders under sklearn
|
|
327
|
+
modules = set(
|
|
328
|
+
getattr(
|
|
329
|
+
mod, "__all__", [name for name in dir(mod) if not name.startswith("_")]
|
|
330
|
+
)
|
|
331
|
+
)
|
|
285
332
|
return modules
|
|
286
333
|
|
|
287
334
|
if _is_preview_enabled():
|
|
@@ -367,5 +414,5 @@ def test_docstring_patching_match(estimator):
|
|
|
367
414
|
)
|
|
368
415
|
def test_onedal_supported_member(name, member):
|
|
369
416
|
patched = PATCHED_MODELS[name]
|
|
370
|
-
sig = str(
|
|
417
|
+
sig = str(signature(getattr(patched, member)))
|
|
371
418
|
assert "(self, method_name, *data)" == sig
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2020 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 random
|
|
18
|
+
from collections.abc import Iterable
|
|
19
|
+
from functools import partial
|
|
20
|
+
from numbers import Number
|
|
21
|
+
|
|
22
|
+
import numpy as np
|
|
23
|
+
import pytest
|
|
24
|
+
from numpy.testing import assert_allclose
|
|
25
|
+
from scipy import sparse
|
|
26
|
+
from sklearn.datasets import (
|
|
27
|
+
load_breast_cancer,
|
|
28
|
+
load_diabetes,
|
|
29
|
+
load_iris,
|
|
30
|
+
make_classification,
|
|
31
|
+
make_regression,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
import daal4py as d4p
|
|
35
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
36
|
+
from onedal.tests.utils._dataframes_support import _as_numpy, get_dataframes_and_queues
|
|
37
|
+
from sklearnex.basic_statistics import BasicStatistics
|
|
38
|
+
from sklearnex.cluster import DBSCAN, KMeans
|
|
39
|
+
from sklearnex.decomposition import PCA
|
|
40
|
+
from sklearnex.metrics import pairwise_distances, roc_auc_score
|
|
41
|
+
from sklearnex.model_selection import train_test_split
|
|
42
|
+
from sklearnex.neighbors import (
|
|
43
|
+
KNeighborsClassifier,
|
|
44
|
+
KNeighborsRegressor,
|
|
45
|
+
NearestNeighbors,
|
|
46
|
+
)
|
|
47
|
+
from sklearnex.svm import SVC
|
|
48
|
+
from sklearnex.tests.utils import (
|
|
49
|
+
_IS_INTEL,
|
|
50
|
+
PATCHED_MODELS,
|
|
51
|
+
SPECIAL_INSTANCES,
|
|
52
|
+
call_method,
|
|
53
|
+
gen_dataset,
|
|
54
|
+
gen_models_info,
|
|
55
|
+
sklearn_clone_dict,
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# to reproduce errors even in CI
|
|
59
|
+
d4p.daalinit(nthreads=100)
|
|
60
|
+
|
|
61
|
+
_dataset_dict = {
|
|
62
|
+
"classification": [
|
|
63
|
+
partial(load_iris, return_X_y=True),
|
|
64
|
+
partial(load_breast_cancer, return_X_y=True),
|
|
65
|
+
],
|
|
66
|
+
"regression": [
|
|
67
|
+
partial(load_diabetes, return_X_y=True),
|
|
68
|
+
partial(
|
|
69
|
+
make_regression, n_samples=500, n_features=10, noise=64.0, random_state=42
|
|
70
|
+
),
|
|
71
|
+
],
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def eval_method(X, y, est, method):
|
|
76
|
+
res = []
|
|
77
|
+
est.fit(X, y)
|
|
78
|
+
|
|
79
|
+
if method:
|
|
80
|
+
res = call_method(est, method, X, y)
|
|
81
|
+
|
|
82
|
+
if not isinstance(res, Iterable):
|
|
83
|
+
results = [_as_numpy(res)] if res is not est else []
|
|
84
|
+
elif hasattr(res, "dtype") and res.dtype not in [np.object_, np.flexible]:
|
|
85
|
+
# array_api inputs do not have an __iter__ and this also allows for
|
|
86
|
+
# multidimensional array-like inputs to be analyzed without slicing.
|
|
87
|
+
# The check for object and flexible types is because of the
|
|
88
|
+
# radius_neighbors method in kNeighors algorithms which can return
|
|
89
|
+
# numpy object arrays of numpy numeric arrays
|
|
90
|
+
results = [_as_numpy(res).flatten()]
|
|
91
|
+
else:
|
|
92
|
+
results = [_as_numpy(i) for i in res]
|
|
93
|
+
|
|
94
|
+
attributes = [method] * len(results)
|
|
95
|
+
|
|
96
|
+
# if estimator follows sklearn design rules, then set attributes should have a
|
|
97
|
+
# trailing underscore
|
|
98
|
+
attributes += [
|
|
99
|
+
i
|
|
100
|
+
for i in dir(est)
|
|
101
|
+
if hasattr(est, i) and not i.startswith("_") and i.endswith("_")
|
|
102
|
+
]
|
|
103
|
+
results += [getattr(est, i) for i in attributes if i != method]
|
|
104
|
+
return results, attributes
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def _run_test(estimator, method, datasets):
|
|
108
|
+
|
|
109
|
+
for X, y in datasets:
|
|
110
|
+
baseline, attributes = eval_method(X, y, estimator, method)
|
|
111
|
+
|
|
112
|
+
for i in range(10):
|
|
113
|
+
res, _ = eval_method(X, y, estimator, method)
|
|
114
|
+
|
|
115
|
+
for r, b, n in zip(res, baseline, attributes):
|
|
116
|
+
if (
|
|
117
|
+
isinstance(b, Number)
|
|
118
|
+
or hasattr(b, "__array__")
|
|
119
|
+
or hasattr(b, "__array_namespace__")
|
|
120
|
+
or hasattr(b, "__sycl_usm_ndarray__")
|
|
121
|
+
):
|
|
122
|
+
assert_allclose(
|
|
123
|
+
r, b, rtol=0.0, atol=0.0, err_msg=str(n + " is incorrect")
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
_sparse_instances = [SVC()]
|
|
128
|
+
if daal_check_version((2025, "P", 200)): # Test for >= 2025.2.0
|
|
129
|
+
_sparse_instances.extend(
|
|
130
|
+
[
|
|
131
|
+
BasicStatistics(result_options=["sum", "min"]),
|
|
132
|
+
]
|
|
133
|
+
)
|
|
134
|
+
if daal_check_version((2024, "P", 700)): # Test for > 2024.7.0
|
|
135
|
+
_sparse_instances.extend(
|
|
136
|
+
[
|
|
137
|
+
KMeans(),
|
|
138
|
+
KMeans(init="random"),
|
|
139
|
+
KMeans(init="k-means++"),
|
|
140
|
+
]
|
|
141
|
+
)
|
|
142
|
+
SPARSE_INSTANCES = sklearn_clone_dict({str(i): i for i in _sparse_instances})
|
|
143
|
+
|
|
144
|
+
STABILITY_INSTANCES = sklearn_clone_dict(
|
|
145
|
+
{
|
|
146
|
+
str(i): i
|
|
147
|
+
for i in [
|
|
148
|
+
KNeighborsClassifier(algorithm="brute", weights="distance"),
|
|
149
|
+
KNeighborsClassifier(algorithm="kd_tree", weights="distance"),
|
|
150
|
+
KNeighborsClassifier(algorithm="kd_tree"),
|
|
151
|
+
KNeighborsRegressor(algorithm="brute", weights="distance"),
|
|
152
|
+
KNeighborsRegressor(algorithm="kd_tree", weights="distance"),
|
|
153
|
+
KNeighborsRegressor(algorithm="kd_tree"),
|
|
154
|
+
NearestNeighbors(algorithm="kd_tree"),
|
|
155
|
+
DBSCAN(algorithm="brute"),
|
|
156
|
+
PCA(n_components=0.5, svd_solver="covariance_eigh"),
|
|
157
|
+
KMeans(init="random"),
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def _skip_neighbors(estimator, method):
|
|
164
|
+
if (
|
|
165
|
+
not _IS_INTEL
|
|
166
|
+
and ("Neighbors" in estimator or "LocalOutlierFactor" in estimator)
|
|
167
|
+
and method
|
|
168
|
+
in ["score", "predict", "kneighbors", "kneighbors_graph", "predict_proba"]
|
|
169
|
+
):
|
|
170
|
+
pytest.skip(f"{estimator} shows instability on non-Intel(R) hardware")
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
@pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
|
|
174
|
+
@pytest.mark.parametrize("estimator, method", gen_models_info(PATCHED_MODELS))
|
|
175
|
+
def test_standard_estimator_stability(estimator, method, dataframe, queue):
|
|
176
|
+
if estimator in ["LogisticRegression", "TSNE"]:
|
|
177
|
+
pytest.skip(f"stability not guaranteed for {estimator}")
|
|
178
|
+
if estimator in ["KMeans", "PCA"] and "score" in method and queue == None:
|
|
179
|
+
pytest.skip(f"variation observed in {estimator}.score")
|
|
180
|
+
if estimator in ["IncrementalEmpiricalCovariance"] and method == "mahalanobis":
|
|
181
|
+
pytest.skip("allowed fallback to sklearn occurs")
|
|
182
|
+
if estimator == "DummyRegressor":
|
|
183
|
+
pytest.skip("default parameters fall back to sklearn")
|
|
184
|
+
_skip_neighbors(estimator, method)
|
|
185
|
+
|
|
186
|
+
if "NearestNeighbors" in estimator and "radius" in method:
|
|
187
|
+
pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
|
|
188
|
+
|
|
189
|
+
est = PATCHED_MODELS[estimator]()
|
|
190
|
+
|
|
191
|
+
if method and not hasattr(est, method):
|
|
192
|
+
pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
|
|
193
|
+
|
|
194
|
+
params = est.get_params().copy()
|
|
195
|
+
if "random_state" in params:
|
|
196
|
+
params["random_state"] = 0
|
|
197
|
+
est.set_params(**params)
|
|
198
|
+
|
|
199
|
+
datasets = gen_dataset(est, datasets=_dataset_dict, queue=queue, target_df=dataframe)
|
|
200
|
+
_run_test(est, method, datasets)
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
@pytest.mark.allow_sklearn_fallback
|
|
204
|
+
@pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
|
|
205
|
+
@pytest.mark.parametrize("estimator, method", gen_models_info(SPECIAL_INSTANCES))
|
|
206
|
+
def test_special_estimator_stability(estimator, method, dataframe, queue):
|
|
207
|
+
if queue is None and estimator in ["LogisticRegression(solver='newton-cg')"]:
|
|
208
|
+
pytest.skip(f"stability not guaranteed for {estimator}")
|
|
209
|
+
if "KMeans" in estimator and method == "score" and queue == None:
|
|
210
|
+
pytest.skip(f"variation observed in KMeans.score")
|
|
211
|
+
if estimator == "BasicStatistics()" and queue == None:
|
|
212
|
+
pytest.skip(f"BasicStatistics not deterministic")
|
|
213
|
+
if "NearestNeighbors" in estimator and "radius" in method:
|
|
214
|
+
pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
|
|
215
|
+
_skip_neighbors(estimator, method)
|
|
216
|
+
|
|
217
|
+
est = SPECIAL_INSTANCES[estimator]
|
|
218
|
+
|
|
219
|
+
if method and not hasattr(est, method):
|
|
220
|
+
pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
|
|
221
|
+
|
|
222
|
+
params = est.get_params().copy()
|
|
223
|
+
if "random_state" in params:
|
|
224
|
+
params["random_state"] = 0
|
|
225
|
+
est.set_params(**params)
|
|
226
|
+
|
|
227
|
+
datasets = gen_dataset(est, datasets=_dataset_dict, queue=queue, target_df=dataframe)
|
|
228
|
+
_run_test(est, method, datasets)
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
@pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
|
|
232
|
+
@pytest.mark.parametrize("estimator, method", gen_models_info(SPARSE_INSTANCES))
|
|
233
|
+
def test_sparse_estimator_stability(estimator, method, dataframe, queue):
|
|
234
|
+
if "KMeans" in estimator and method in "score" and queue == None:
|
|
235
|
+
pytest.skip(f"variation observed in KMeans.{method}")
|
|
236
|
+
if (
|
|
237
|
+
not daal_check_version((2025, "P", 0))
|
|
238
|
+
and "KMeans()" in estimator
|
|
239
|
+
and queue == None
|
|
240
|
+
):
|
|
241
|
+
pytest.skip(f"variation observed in KMeans.{method} in 2024.7 oneDAL")
|
|
242
|
+
if "NearestNeighbors" in estimator and "radius" in method:
|
|
243
|
+
pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
|
|
244
|
+
_skip_neighbors(estimator, method)
|
|
245
|
+
|
|
246
|
+
est = SPARSE_INSTANCES[estimator]
|
|
247
|
+
|
|
248
|
+
if method and not hasattr(est, method):
|
|
249
|
+
pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
|
|
250
|
+
|
|
251
|
+
params = est.get_params().copy()
|
|
252
|
+
if "random_state" in params:
|
|
253
|
+
params["random_state"] = 0
|
|
254
|
+
est.set_params(**params)
|
|
255
|
+
|
|
256
|
+
datasets = gen_dataset(
|
|
257
|
+
est, sparse=True, datasets=_dataset_dict, queue=queue, target_df=dataframe
|
|
258
|
+
)
|
|
259
|
+
_run_test(est, method, datasets)
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
@pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
|
|
263
|
+
@pytest.mark.parametrize("estimator, method", gen_models_info(STABILITY_INSTANCES))
|
|
264
|
+
def test_other_estimator_stability(estimator, method, dataframe, queue):
|
|
265
|
+
if "KMeans" in estimator and method == "score" and queue == None:
|
|
266
|
+
pytest.skip(f"variation observed in KMeans.score")
|
|
267
|
+
if "NearestNeighbors" in estimator and "radius" in method:
|
|
268
|
+
pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
|
|
269
|
+
_skip_neighbors(estimator, method)
|
|
270
|
+
|
|
271
|
+
est = STABILITY_INSTANCES[estimator]
|
|
272
|
+
|
|
273
|
+
if method and not hasattr(est, method):
|
|
274
|
+
pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
|
|
275
|
+
|
|
276
|
+
params = est.get_params().copy()
|
|
277
|
+
if "random_state" in params:
|
|
278
|
+
params["random_state"] = 0
|
|
279
|
+
est.set_params(**params)
|
|
280
|
+
|
|
281
|
+
datasets = gen_dataset(est, datasets=_dataset_dict, queue=queue, target_df=dataframe)
|
|
282
|
+
_run_test(est, method, datasets)
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
@pytest.mark.parametrize("features", range(5, 10))
|
|
286
|
+
def test_train_test_split(features):
|
|
287
|
+
X, y = make_classification(
|
|
288
|
+
n_samples=4000,
|
|
289
|
+
n_features=features,
|
|
290
|
+
n_informative=features,
|
|
291
|
+
n_redundant=0,
|
|
292
|
+
n_clusters_per_class=8,
|
|
293
|
+
random_state=0,
|
|
294
|
+
)
|
|
295
|
+
(
|
|
296
|
+
baseline_X_train,
|
|
297
|
+
baseline_X_test,
|
|
298
|
+
baseline_y_train,
|
|
299
|
+
baseline_y_test,
|
|
300
|
+
) = train_test_split(X, y, test_size=0.33, random_state=0)
|
|
301
|
+
baseline = [baseline_X_train, baseline_X_test, baseline_y_train, baseline_y_test]
|
|
302
|
+
for _ in range(10):
|
|
303
|
+
X_train, X_test, y_train, y_test = train_test_split(
|
|
304
|
+
X, y, test_size=0.33, random_state=0
|
|
305
|
+
)
|
|
306
|
+
res = [X_train, X_test, y_train, y_test]
|
|
307
|
+
for a, b in zip(res, baseline):
|
|
308
|
+
np.testing.assert_allclose(
|
|
309
|
+
a, b, rtol=0.0, atol=0.0, err_msg=str("train_test_split is incorrect")
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
@pytest.mark.parametrize("metric", ["cosine", "correlation"])
|
|
314
|
+
def test_pairwise_distances(metric):
|
|
315
|
+
X = np.random.rand(1000)
|
|
316
|
+
X = np.array(X, dtype=np.float64)
|
|
317
|
+
baseline = pairwise_distances(X.reshape(1, -1), metric=metric)
|
|
318
|
+
for _ in range(5):
|
|
319
|
+
res = pairwise_distances(X.reshape(1, -1), metric=metric)
|
|
320
|
+
for a, b in zip(res, baseline):
|
|
321
|
+
np.testing.assert_allclose(
|
|
322
|
+
a, b, rtol=0.0, atol=0.0, err_msg=str("pairwise_distances is incorrect")
|
|
323
|
+
)
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
@pytest.mark.parametrize("array_size", [100, 1000, 10000])
|
|
327
|
+
def test_roc_auc(array_size):
|
|
328
|
+
a = [random.randint(0, 1) for i in range(array_size)]
|
|
329
|
+
b = [random.randint(0, 1) for i in range(array_size)]
|
|
330
|
+
baseline = roc_auc_score(a, b)
|
|
331
|
+
for _ in range(5):
|
|
332
|
+
res = roc_auc_score(a, b)
|
|
333
|
+
np.testing.assert_allclose(
|
|
334
|
+
baseline, res, rtol=0.0, atol=0.0, err_msg=str("roc_auc is incorrect")
|
|
335
|
+
)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2024 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
from .base import (
|
|
18
|
+
DTYPES,
|
|
19
|
+
PATCHED_FUNCTIONS,
|
|
20
|
+
PATCHED_MODELS,
|
|
21
|
+
SPECIAL_INSTANCES,
|
|
22
|
+
UNPATCHED_FUNCTIONS,
|
|
23
|
+
UNPATCHED_MODELS,
|
|
24
|
+
DummyEstimator,
|
|
25
|
+
_get_processor_info,
|
|
26
|
+
call_method,
|
|
27
|
+
gen_dataset,
|
|
28
|
+
gen_models_info,
|
|
29
|
+
gen_sparse_dataset,
|
|
30
|
+
sklearn_clone_dict,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
__all__ = [
|
|
34
|
+
"DTYPES",
|
|
35
|
+
"PATCHED_FUNCTIONS",
|
|
36
|
+
"PATCHED_MODELS",
|
|
37
|
+
"UNPATCHED_FUNCTIONS",
|
|
38
|
+
"UNPATCHED_MODELS",
|
|
39
|
+
"SPECIAL_INSTANCES",
|
|
40
|
+
"call_method",
|
|
41
|
+
"gen_models_info",
|
|
42
|
+
"gen_dataset",
|
|
43
|
+
"gen_sparse_dataset",
|
|
44
|
+
"sklearn_clone_dict",
|
|
45
|
+
"DummyEstimator",
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
_IS_INTEL = "GenuineIntel" in _get_processor_info()
|