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
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal
|
|
20
|
+
from sklearn import datasets
|
|
21
|
+
from sklearn.metrics.pairwise import rbf_kernel
|
|
22
|
+
from sklearn.svm import NuSVR as SklearnNuSVR
|
|
23
|
+
|
|
24
|
+
from onedal.svm import NuSVR
|
|
25
|
+
from onedal.tests.utils._device_selection import (
|
|
26
|
+
get_queues,
|
|
27
|
+
pass_if_not_implemented_for_gpu,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
synth_params = {"n_samples": 500, "n_features": 100, "random_state": 42}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
34
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
35
|
+
def test_diabetes_simple(queue):
|
|
36
|
+
diabetes = datasets.load_diabetes()
|
|
37
|
+
clf = NuSVR(kernel="linear", C=10.0)
|
|
38
|
+
clf.fit(diabetes.data, diabetes.target, queue=queue)
|
|
39
|
+
assert clf.score(diabetes.data, diabetes.target, queue=queue) > 0.02
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
43
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
44
|
+
def test_input_format_for_diabetes(queue):
|
|
45
|
+
diabetes = datasets.load_diabetes()
|
|
46
|
+
|
|
47
|
+
c_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="C")
|
|
48
|
+
assert c_contiguous_numpy.flags.c_contiguous
|
|
49
|
+
assert not c_contiguous_numpy.flags.f_contiguous
|
|
50
|
+
assert not c_contiguous_numpy.flags.fnc
|
|
51
|
+
|
|
52
|
+
clf = NuSVR(kernel="linear", C=10.0)
|
|
53
|
+
clf.fit(c_contiguous_numpy, diabetes.target, queue=queue)
|
|
54
|
+
dual_c_contiguous_numpy = clf.dual_coef_
|
|
55
|
+
res_c_contiguous_numpy = clf.predict(c_contiguous_numpy, queue=queue)
|
|
56
|
+
|
|
57
|
+
f_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="F")
|
|
58
|
+
assert not f_contiguous_numpy.flags.c_contiguous
|
|
59
|
+
assert f_contiguous_numpy.flags.f_contiguous
|
|
60
|
+
assert f_contiguous_numpy.flags.fnc
|
|
61
|
+
|
|
62
|
+
clf = NuSVR(kernel="linear", C=10.0)
|
|
63
|
+
clf.fit(f_contiguous_numpy, diabetes.target, queue=queue)
|
|
64
|
+
dual_f_contiguous_numpy = clf.dual_coef_
|
|
65
|
+
res_f_contiguous_numpy = clf.predict(f_contiguous_numpy, queue=queue)
|
|
66
|
+
assert_allclose(dual_c_contiguous_numpy, dual_f_contiguous_numpy)
|
|
67
|
+
assert_allclose(res_c_contiguous_numpy, res_f_contiguous_numpy)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
71
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
72
|
+
def test_predict(queue):
|
|
73
|
+
iris = datasets.load_iris()
|
|
74
|
+
X = iris.data
|
|
75
|
+
y = iris.target
|
|
76
|
+
|
|
77
|
+
reg = NuSVR(kernel="linear", C=0.1).fit(X, y, queue=queue)
|
|
78
|
+
|
|
79
|
+
linear = np.dot(X, reg.support_vectors_.T)
|
|
80
|
+
dec = np.dot(linear, reg.dual_coef_.T) + reg.intercept_
|
|
81
|
+
assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
|
|
82
|
+
|
|
83
|
+
reg = NuSVR(kernel="rbf", gamma=1).fit(X, y, queue=queue)
|
|
84
|
+
|
|
85
|
+
rbfs = rbf_kernel(X, reg.support_vectors_, gamma=reg.gamma)
|
|
86
|
+
dec = np.dot(rbfs, reg.dual_coef_.T) + reg.intercept_
|
|
87
|
+
assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _test_diabetes_compare_with_sklearn(queue, kernel):
|
|
91
|
+
diabetes = datasets.load_diabetes()
|
|
92
|
+
clf_onedal = NuSVR(kernel=kernel, nu=0.25, C=10.0)
|
|
93
|
+
clf_onedal.fit(diabetes.data, diabetes.target, queue=queue)
|
|
94
|
+
result = clf_onedal.score(diabetes.data, diabetes.target, queue=queue)
|
|
95
|
+
|
|
96
|
+
clf_sklearn = SklearnNuSVR(kernel=kernel, nu=0.25, C=10.0)
|
|
97
|
+
clf_sklearn.fit(diabetes.data, diabetes.target)
|
|
98
|
+
expected = clf_sklearn.score(diabetes.data, diabetes.target)
|
|
99
|
+
|
|
100
|
+
assert result > expected - 1e-5
|
|
101
|
+
assert_allclose(clf_sklearn.intercept_, clf_onedal.intercept_, atol=1e-3)
|
|
102
|
+
assert_allclose(
|
|
103
|
+
clf_sklearn.support_vectors_.shape, clf_sklearn.support_vectors_.shape
|
|
104
|
+
)
|
|
105
|
+
assert_allclose(clf_sklearn.dual_coef_, clf_onedal.dual_coef_, atol=1e-2)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
109
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
110
|
+
@pytest.mark.parametrize("kernel", ["linear", "rbf", "poly", "sigmoid"])
|
|
111
|
+
def test_diabetes_compare_with_sklearn(queue, kernel):
|
|
112
|
+
if kernel == "sigmoid":
|
|
113
|
+
pytest.skip("Sparse sigmoid kernel function is buggy.")
|
|
114
|
+
_test_diabetes_compare_with_sklearn(queue, kernel)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def _test_synth_rbf_compare_with_sklearn(queue, C, nu, gamma):
|
|
118
|
+
x, y = datasets.make_regression(**synth_params)
|
|
119
|
+
|
|
120
|
+
clf = NuSVR(kernel="rbf", gamma=gamma, C=C, nu=nu)
|
|
121
|
+
clf.fit(x, y, queue=queue)
|
|
122
|
+
result = clf.score(x, y, queue=queue)
|
|
123
|
+
|
|
124
|
+
clf = SklearnNuSVR(kernel="rbf", gamma=gamma, C=C, nu=nu)
|
|
125
|
+
clf.fit(x, y)
|
|
126
|
+
expected = clf.score(x, y)
|
|
127
|
+
|
|
128
|
+
assert result > 0.4
|
|
129
|
+
assert abs(result - expected) < 1e-3
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
133
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
134
|
+
@pytest.mark.parametrize("gamma", ["scale", "auto"])
|
|
135
|
+
@pytest.mark.parametrize("C", [100.0, 1000.0])
|
|
136
|
+
@pytest.mark.parametrize("nu", [0.25, 0.75])
|
|
137
|
+
def test_synth_rbf_compare_with_sklearn(queue, C, nu, gamma):
|
|
138
|
+
_test_synth_rbf_compare_with_sklearn(queue, C, nu, gamma)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def _test_synth_linear_compare_with_sklearn(queue, C, nu):
|
|
142
|
+
x, y = datasets.make_regression(**synth_params)
|
|
143
|
+
|
|
144
|
+
clf = NuSVR(kernel="linear", C=C, nu=nu)
|
|
145
|
+
clf.fit(x, y, queue=queue)
|
|
146
|
+
result = clf.score(x, y, queue=queue)
|
|
147
|
+
|
|
148
|
+
clf = SklearnNuSVR(kernel="linear", C=C, nu=nu)
|
|
149
|
+
clf.fit(x, y)
|
|
150
|
+
expected = clf.score(x, y)
|
|
151
|
+
|
|
152
|
+
# Linear kernel doesn't work well for synthetic regression
|
|
153
|
+
# resulting in low R2 score
|
|
154
|
+
# assert result > 0.5
|
|
155
|
+
assert abs(result - expected) < 1e-3
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
159
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
160
|
+
@pytest.mark.parametrize("C", [0.001, 0.1])
|
|
161
|
+
@pytest.mark.parametrize("nu", [0.25, 0.75])
|
|
162
|
+
def test_synth_linear_compare_with_sklearn(queue, C, nu):
|
|
163
|
+
_test_synth_linear_compare_with_sklearn(queue, C, nu)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def _test_synth_poly_compare_with_sklearn(queue, params):
|
|
167
|
+
x, y = datasets.make_regression(**synth_params)
|
|
168
|
+
|
|
169
|
+
clf = NuSVR(kernel="poly", **params)
|
|
170
|
+
clf.fit(x, y, queue=queue)
|
|
171
|
+
result = clf.score(x, y, queue=queue)
|
|
172
|
+
|
|
173
|
+
clf = SklearnNuSVR(kernel="poly", **params)
|
|
174
|
+
clf.fit(x, y)
|
|
175
|
+
expected = clf.score(x, y)
|
|
176
|
+
|
|
177
|
+
assert result > 0.5
|
|
178
|
+
assert abs(result - expected) < 1e-3
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
182
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
183
|
+
@pytest.mark.parametrize(
|
|
184
|
+
"params",
|
|
185
|
+
[
|
|
186
|
+
{"degree": 2, "coef0": 0.1, "gamma": "scale", "C": 100, "nu": 0.25},
|
|
187
|
+
{"degree": 3, "coef0": 0.0, "gamma": "scale", "C": 1000, "nu": 0.75},
|
|
188
|
+
],
|
|
189
|
+
)
|
|
190
|
+
def test_synth_poly_compare_with_sklearn(queue, params):
|
|
191
|
+
_test_synth_poly_compare_with_sklearn(queue, params)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
|
|
195
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
196
|
+
def test_pickle(queue):
|
|
197
|
+
diabetes = datasets.load_diabetes()
|
|
198
|
+
|
|
199
|
+
clf = NuSVR(kernel="rbf", C=10.0)
|
|
200
|
+
clf.fit(diabetes.data, diabetes.target, queue=queue)
|
|
201
|
+
expected = clf.predict(diabetes.data, queue=queue)
|
|
202
|
+
|
|
203
|
+
import pickle
|
|
204
|
+
|
|
205
|
+
dump = pickle.dumps(clf)
|
|
206
|
+
clf2 = pickle.loads(dump)
|
|
207
|
+
|
|
208
|
+
assert type(clf2) == clf.__class__
|
|
209
|
+
result = clf2.predict(diabetes.data, queue=queue)
|
|
210
|
+
assert_array_equal(expected, result)
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
import sklearn.utils.estimator_checks
|
|
20
|
+
from numpy.testing import assert_array_almost_equal, assert_array_equal
|
|
21
|
+
from sklearn import datasets
|
|
22
|
+
from sklearn.datasets import make_blobs
|
|
23
|
+
from sklearn.metrics.pairwise import rbf_kernel
|
|
24
|
+
from sklearn.model_selection import train_test_split
|
|
25
|
+
|
|
26
|
+
from onedal.svm import SVC
|
|
27
|
+
from onedal.tests.utils._device_selection import (
|
|
28
|
+
get_queues,
|
|
29
|
+
pass_if_not_implemented_for_gpu,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _test_libsvm_parameters(queue, array_constr, dtype):
|
|
34
|
+
X = array_constr([[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]], dtype=dtype)
|
|
35
|
+
y = array_constr([1, 1, 1, 2, 2, 2], dtype=dtype)
|
|
36
|
+
|
|
37
|
+
clf = SVC(kernel="linear").fit(X, y, queue=queue)
|
|
38
|
+
assert_array_equal(clf.dual_coef_, [[-0.25, 0.25]])
|
|
39
|
+
assert_array_equal(clf.support_, [1, 3])
|
|
40
|
+
assert_array_equal(clf.support_vectors_, (X[1], X[3]))
|
|
41
|
+
assert_array_equal(clf.intercept_, [0.0])
|
|
42
|
+
assert_array_equal(clf.predict(X), y)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
46
|
+
@pytest.mark.parametrize("array_constr", [np.array])
|
|
47
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
48
|
+
def test_libsvm_parameters(queue, array_constr, dtype):
|
|
49
|
+
if queue and queue.sycl_device.is_gpu:
|
|
50
|
+
pytest.skip("Sporadic failures on GPU sycl_queue.")
|
|
51
|
+
_test_libsvm_parameters(queue, array_constr, dtype)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@pass_if_not_implemented_for_gpu(reason="class weights are not implemented")
|
|
55
|
+
@pytest.mark.parametrize(
|
|
56
|
+
"queue",
|
|
57
|
+
get_queues("cpu")
|
|
58
|
+
+ [
|
|
59
|
+
pytest.param(
|
|
60
|
+
get_queues("gpu"),
|
|
61
|
+
marks=pytest.mark.xfail(
|
|
62
|
+
reason="class weights are not implemented but the error is not raised"
|
|
63
|
+
),
|
|
64
|
+
)
|
|
65
|
+
],
|
|
66
|
+
)
|
|
67
|
+
def test_class_weight(queue):
|
|
68
|
+
X = np.array([[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]])
|
|
69
|
+
y = np.array([1, 1, 1, 2, 2, 2])
|
|
70
|
+
|
|
71
|
+
clf = SVC(class_weight={1: 0.1})
|
|
72
|
+
clf.fit(X, y, queue=queue)
|
|
73
|
+
assert_array_almost_equal(clf.predict(X, queue=queue), [2] * 6)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
77
|
+
def test_sample_weight(queue):
|
|
78
|
+
if queue and queue.sycl_device.is_gpu:
|
|
79
|
+
pytest.skip("Sporadic failures on GPU sycl_queue.")
|
|
80
|
+
X = np.array([[-2, 0], [-1, -1], [0, -2], [0, 2], [1, 1], [2, 2]])
|
|
81
|
+
y = np.array([1, 1, 1, 2, 2, 2])
|
|
82
|
+
|
|
83
|
+
clf = SVC(kernel="linear")
|
|
84
|
+
clf.fit(X, y, sample_weight=[1] * 6, queue=queue)
|
|
85
|
+
assert_array_almost_equal(clf.intercept_, [0.0])
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
89
|
+
def test_decision_function(queue):
|
|
90
|
+
X = np.array([[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]], dtype=np.float32)
|
|
91
|
+
Y = np.array([1, 1, 1, 2, 2, 2], dtype=np.float32)
|
|
92
|
+
|
|
93
|
+
clf = SVC(kernel="rbf", gamma=1, decision_function_shape="ovo")
|
|
94
|
+
clf.fit(X, Y, queue=queue)
|
|
95
|
+
|
|
96
|
+
rbfs = rbf_kernel(X, clf.support_vectors_, gamma=clf.gamma)
|
|
97
|
+
dec = np.dot(rbfs, clf.dual_coef_.T) + clf.intercept_
|
|
98
|
+
assert_array_almost_equal(dec.ravel(), clf.decision_function(X, queue=queue))
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented")
|
|
102
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
103
|
+
def test_iris(queue):
|
|
104
|
+
iris = datasets.load_iris()
|
|
105
|
+
clf = SVC(kernel="linear").fit(iris.data, iris.target, queue=queue)
|
|
106
|
+
assert clf.score(iris.data, iris.target, queue=queue) > 0.9
|
|
107
|
+
assert_array_equal(clf.classes_, np.sort(clf.classes_))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented")
|
|
111
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
112
|
+
def test_decision_function_shape(queue):
|
|
113
|
+
X, y = make_blobs(n_samples=80, centers=5, random_state=0)
|
|
114
|
+
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
|
|
115
|
+
|
|
116
|
+
# check shape of ovo_decition_function=True
|
|
117
|
+
clf = SVC(kernel="linear", decision_function_shape="ovo").fit(
|
|
118
|
+
X_train, y_train, queue=queue
|
|
119
|
+
)
|
|
120
|
+
dec = clf.decision_function(X_train, queue=queue)
|
|
121
|
+
assert dec.shape == (len(X_train), 10)
|
|
122
|
+
|
|
123
|
+
with pytest.raises(ValueError, match="must be either 'ovr' or 'ovo'"):
|
|
124
|
+
SVC(decision_function_shape="bad").fit(X_train, y_train, queue=queue)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented")
|
|
128
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
129
|
+
def test_pickle(queue):
|
|
130
|
+
iris = datasets.load_iris()
|
|
131
|
+
clf = SVC(kernel="linear").fit(iris.data, iris.target, queue=queue)
|
|
132
|
+
expected = clf.decision_function(iris.data, queue=queue)
|
|
133
|
+
|
|
134
|
+
import pickle
|
|
135
|
+
|
|
136
|
+
dump = pickle.dumps(clf)
|
|
137
|
+
clf2 = pickle.loads(dump)
|
|
138
|
+
|
|
139
|
+
assert type(clf2) == clf.__class__
|
|
140
|
+
result = clf2.decision_function(iris.data, queue=queue)
|
|
141
|
+
assert_array_equal(expected, result)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
@pass_if_not_implemented_for_gpu(reason="not implemented")
|
|
145
|
+
@pytest.mark.parametrize(
|
|
146
|
+
"queue",
|
|
147
|
+
get_queues("cpu")
|
|
148
|
+
+ [
|
|
149
|
+
pytest.param(
|
|
150
|
+
get_queues("gpu"),
|
|
151
|
+
marks=pytest.mark.xfail(
|
|
152
|
+
reason="raises Unimplemented error " "with inconsistent error message"
|
|
153
|
+
),
|
|
154
|
+
)
|
|
155
|
+
],
|
|
156
|
+
)
|
|
157
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
158
|
+
def test_svc_sigmoid(queue, dtype):
|
|
159
|
+
X_train = np.array(
|
|
160
|
+
[[-1, 2], [0, 0], [2, -1], [+1, +1], [+1, +2], [+2, +1]], dtype=dtype
|
|
161
|
+
)
|
|
162
|
+
X_test = np.array([[0, 2], [0.5, 0.5], [0.3, 0.1], [2, 0], [-1, -1]], dtype=dtype)
|
|
163
|
+
y_train = np.array([1, 1, 1, 2, 2, 2], dtype=dtype)
|
|
164
|
+
svc = SVC(kernel="sigmoid").fit(X_train, y_train, queue=queue)
|
|
165
|
+
|
|
166
|
+
assert_array_equal(svc.dual_coef_, [[-1, -1, -1, 1, 1, 1]])
|
|
167
|
+
assert_array_equal(svc.support_, [0, 1, 2, 3, 4, 5])
|
|
168
|
+
assert_array_equal(svc.predict(X_test, queue=queue), [2, 2, 1, 2, 1])
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal
|
|
20
|
+
from sklearn import datasets
|
|
21
|
+
from sklearn.metrics.pairwise import rbf_kernel
|
|
22
|
+
from sklearn.svm import SVR as SklearnSVR
|
|
23
|
+
|
|
24
|
+
from onedal.svm import SVR
|
|
25
|
+
from onedal.tests.utils._device_selection import (
|
|
26
|
+
get_queues,
|
|
27
|
+
pass_if_not_implemented_for_gpu,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
synth_params = {"n_samples": 500, "n_features": 100, "random_state": 42}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
34
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
35
|
+
def test_run_to_run_fit(queue):
|
|
36
|
+
diabetes = datasets.load_diabetes()
|
|
37
|
+
clf_first = SVR(kernel="linear", C=10.0)
|
|
38
|
+
clf_first.fit(diabetes.data, diabetes.target, queue=queue)
|
|
39
|
+
|
|
40
|
+
for _ in range(10):
|
|
41
|
+
clf = SVR(kernel="linear", C=10.0)
|
|
42
|
+
clf.fit(diabetes.data, diabetes.target, queue=queue)
|
|
43
|
+
assert_allclose(clf_first.intercept_, clf.intercept_)
|
|
44
|
+
assert_allclose(clf_first.support_vectors_, clf.support_vectors_)
|
|
45
|
+
assert_allclose(clf_first.dual_coef_, clf.dual_coef_)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
49
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
50
|
+
def test_diabetes_simple(queue):
|
|
51
|
+
diabetes = datasets.load_diabetes()
|
|
52
|
+
clf = SVR(kernel="linear", C=10.0)
|
|
53
|
+
clf.fit(diabetes.data, diabetes.target, queue=queue)
|
|
54
|
+
assert clf.score(diabetes.data, diabetes.target, queue=queue) > 0.02
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
58
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
59
|
+
def test_input_format_for_diabetes(queue):
|
|
60
|
+
diabetes = datasets.load_diabetes()
|
|
61
|
+
|
|
62
|
+
c_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="C")
|
|
63
|
+
assert c_contiguous_numpy.flags.c_contiguous
|
|
64
|
+
assert not c_contiguous_numpy.flags.f_contiguous
|
|
65
|
+
assert not c_contiguous_numpy.flags.fnc
|
|
66
|
+
|
|
67
|
+
clf = SVR(kernel="linear", C=10.0)
|
|
68
|
+
clf.fit(c_contiguous_numpy, diabetes.target, queue=queue)
|
|
69
|
+
dual_c_contiguous_numpy = clf.dual_coef_
|
|
70
|
+
res_c_contiguous_numpy = clf.predict(c_contiguous_numpy, queue=queue)
|
|
71
|
+
|
|
72
|
+
f_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="F")
|
|
73
|
+
assert not f_contiguous_numpy.flags.c_contiguous
|
|
74
|
+
assert f_contiguous_numpy.flags.f_contiguous
|
|
75
|
+
assert f_contiguous_numpy.flags.fnc
|
|
76
|
+
|
|
77
|
+
clf = SVR(kernel="linear", C=10.0)
|
|
78
|
+
clf.fit(f_contiguous_numpy, diabetes.target, queue=queue)
|
|
79
|
+
dual_f_contiguous_numpy = clf.dual_coef_
|
|
80
|
+
res_f_contiguous_numpy = clf.predict(f_contiguous_numpy, queue=queue)
|
|
81
|
+
assert_allclose(dual_c_contiguous_numpy, dual_f_contiguous_numpy)
|
|
82
|
+
assert_allclose(res_c_contiguous_numpy, res_f_contiguous_numpy)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
86
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
87
|
+
def test_predict(queue):
|
|
88
|
+
iris = datasets.load_iris()
|
|
89
|
+
X = iris.data
|
|
90
|
+
y = iris.target
|
|
91
|
+
|
|
92
|
+
reg = SVR(kernel="linear", C=0.1).fit(X, y, queue=queue)
|
|
93
|
+
|
|
94
|
+
linear = np.dot(X, reg.support_vectors_.T)
|
|
95
|
+
dec = np.dot(linear, reg.dual_coef_.T) + reg.intercept_
|
|
96
|
+
assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
|
|
97
|
+
|
|
98
|
+
reg = SVR(kernel="rbf", gamma=1).fit(X, y, queue=queue)
|
|
99
|
+
|
|
100
|
+
rbfs = rbf_kernel(X, reg.support_vectors_, gamma=reg.gamma)
|
|
101
|
+
dec = np.dot(rbfs, reg.dual_coef_.T) + reg.intercept_
|
|
102
|
+
assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def _test_diabetes_compare_with_sklearn(queue, kernel):
|
|
106
|
+
diabetes = datasets.load_diabetes()
|
|
107
|
+
clf_onedal = SVR(kernel=kernel, C=10.0, gamma=2)
|
|
108
|
+
clf_onedal.fit(diabetes.data, diabetes.target, queue=queue)
|
|
109
|
+
result = clf_onedal.score(diabetes.data, diabetes.target, queue=queue)
|
|
110
|
+
|
|
111
|
+
clf_sklearn = SklearnSVR(kernel=kernel, C=10.0, gamma=2)
|
|
112
|
+
clf_sklearn.fit(diabetes.data, diabetes.target)
|
|
113
|
+
expected = clf_sklearn.score(diabetes.data, diabetes.target)
|
|
114
|
+
|
|
115
|
+
assert result > expected - 1e-5
|
|
116
|
+
assert_allclose(clf_sklearn.intercept_, clf_onedal.intercept_, atol=1e-3)
|
|
117
|
+
assert_allclose(
|
|
118
|
+
clf_sklearn.support_vectors_.shape, clf_sklearn.support_vectors_.shape
|
|
119
|
+
)
|
|
120
|
+
assert_allclose(clf_sklearn.dual_coef_, clf_onedal.dual_coef_, atol=1e-1)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
124
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
125
|
+
@pytest.mark.parametrize("kernel", ["linear", "rbf", "poly", "sigmoid"])
|
|
126
|
+
def test_diabetes_compare_with_sklearn(queue, kernel):
|
|
127
|
+
if kernel == "sigmoid":
|
|
128
|
+
pytest.skip("Sparse sigmoid kernel function is buggy.")
|
|
129
|
+
_test_diabetes_compare_with_sklearn(queue, kernel)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def _test_synth_rbf_compare_with_sklearn(queue, C, gamma):
|
|
133
|
+
x, y = datasets.make_regression(**synth_params)
|
|
134
|
+
clf = SVR(kernel="rbf", gamma=gamma, C=C)
|
|
135
|
+
clf.fit(x, y, queue=queue)
|
|
136
|
+
result = clf.score(x, y, queue=queue)
|
|
137
|
+
|
|
138
|
+
clf = SklearnSVR(kernel="rbf", gamma=gamma, C=C)
|
|
139
|
+
clf.fit(x, y)
|
|
140
|
+
expected = clf.score(x, y)
|
|
141
|
+
|
|
142
|
+
assert result > 0.4
|
|
143
|
+
assert result > expected - 1e-5
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
147
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
148
|
+
@pytest.mark.parametrize("gamma", ["scale", "auto"])
|
|
149
|
+
@pytest.mark.parametrize("C", [100.0, 1000.0])
|
|
150
|
+
def test_synth_rbf_compare_with_sklearn(queue, C, gamma):
|
|
151
|
+
_test_synth_rbf_compare_with_sklearn(queue, C, gamma)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def _test_synth_linear_compare_with_sklearn(queue, C):
|
|
155
|
+
x, y = datasets.make_regression(**synth_params)
|
|
156
|
+
clf = SVR(kernel="linear", C=C)
|
|
157
|
+
clf.fit(x, y, queue=queue)
|
|
158
|
+
result = clf.score(x, y, queue=queue)
|
|
159
|
+
|
|
160
|
+
clf = SklearnSVR(kernel="linear", C=C)
|
|
161
|
+
clf.fit(x, y)
|
|
162
|
+
expected = clf.score(x, y)
|
|
163
|
+
|
|
164
|
+
# Linear kernel doesn't work well for synthetic regression
|
|
165
|
+
# resulting in low R2 score
|
|
166
|
+
# assert result > 0.5
|
|
167
|
+
assert result > expected - 1e-3
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
171
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
172
|
+
@pytest.mark.parametrize("C", [0.001, 0.1])
|
|
173
|
+
def test_synth_linear_compare_with_sklearn(queue, C):
|
|
174
|
+
_test_synth_linear_compare_with_sklearn(queue, C)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def _test_synth_poly_compare_with_sklearn(queue, params):
|
|
178
|
+
x, y = datasets.make_regression(**synth_params)
|
|
179
|
+
clf = SVR(kernel="poly", **params)
|
|
180
|
+
clf.fit(x, y, queue=queue)
|
|
181
|
+
result = clf.score(x, y, queue=queue)
|
|
182
|
+
|
|
183
|
+
clf = SklearnSVR(kernel="poly", **params)
|
|
184
|
+
clf.fit(x, y)
|
|
185
|
+
expected = clf.score(x, y)
|
|
186
|
+
|
|
187
|
+
assert result > 0.5
|
|
188
|
+
assert result > expected - 1e-5
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
192
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
193
|
+
@pytest.mark.parametrize(
|
|
194
|
+
"params",
|
|
195
|
+
[
|
|
196
|
+
{"degree": 2, "coef0": 0.1, "gamma": "scale", "C": 100},
|
|
197
|
+
{"degree": 3, "coef0": 0.0, "gamma": "scale", "C": 1000},
|
|
198
|
+
],
|
|
199
|
+
)
|
|
200
|
+
def test_synth_poly_compare_with_sklearn(queue, params):
|
|
201
|
+
_test_synth_poly_compare_with_sklearn(queue, params)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
205
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
206
|
+
def test_sided_sample_weight(queue):
|
|
207
|
+
clf = SVR(C=1e-2, kernel="linear")
|
|
208
|
+
|
|
209
|
+
X = [[-2, 0], [-1, -1], [0, -2], [0, 2], [1, 1], [2, 0]]
|
|
210
|
+
Y = [1, 1, 1, 2, 2, 2]
|
|
211
|
+
|
|
212
|
+
sample_weight = [10.0, 0.1, 0.1, 0.1, 0.1, 10]
|
|
213
|
+
clf.fit(X, Y, sample_weight=sample_weight, queue=queue)
|
|
214
|
+
y_pred = clf.predict([[-1.0, 1.0]], queue=queue)
|
|
215
|
+
assert y_pred < 1.5
|
|
216
|
+
|
|
217
|
+
sample_weight = [1.0, 0.1, 10.0, 10.0, 0.1, 0.1]
|
|
218
|
+
clf.fit(X, Y, sample_weight=sample_weight, queue=queue)
|
|
219
|
+
y_pred = clf.predict([[-1.0, 1.0]], queue=queue)
|
|
220
|
+
assert y_pred > 1.5
|
|
221
|
+
|
|
222
|
+
sample_weight = [1] * 6
|
|
223
|
+
clf.fit(X, Y, sample_weight=sample_weight, queue=queue)
|
|
224
|
+
y_pred = clf.predict([[-1.0, 1.0]], queue=queue)
|
|
225
|
+
assert y_pred == pytest.approx(1.5)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
@pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
|
|
229
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
230
|
+
def test_pickle(queue):
|
|
231
|
+
diabetes = datasets.load_diabetes()
|
|
232
|
+
clf = SVR(kernel="rbf", C=10.0)
|
|
233
|
+
clf.fit(diabetes.data, diabetes.target, queue=queue)
|
|
234
|
+
expected = clf.predict(diabetes.data, queue=queue)
|
|
235
|
+
|
|
236
|
+
import pickle
|
|
237
|
+
|
|
238
|
+
dump = pickle.dumps(clf)
|
|
239
|
+
clf2 = pickle.loads(dump)
|
|
240
|
+
|
|
241
|
+
assert type(clf2) == clf.__class__
|
|
242
|
+
result = clf2.predict(diabetes.data, queue=queue)
|
|
243
|
+
assert_array_equal(expected, result)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2024 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
import importlib
|
|
18
|
+
import os
|
|
19
|
+
from glob import glob
|
|
20
|
+
|
|
21
|
+
from onedal.tests.utils._dataframes_support import test_frameworks
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def _check_primitive_usage_ban(primitive_name, package, allowed_locations=None):
|
|
25
|
+
"""This test blocks the usage of the primitive in
|
|
26
|
+
in certain files.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
loc = importlib.util.find_spec(package).origin
|
|
30
|
+
|
|
31
|
+
path = loc.replace("__init__.py", "")
|
|
32
|
+
files = [y for x in os.walk(path) for y in glob(os.path.join(x[0], "*.py"))]
|
|
33
|
+
|
|
34
|
+
output = []
|
|
35
|
+
|
|
36
|
+
for f in files:
|
|
37
|
+
if open(f, "r").read().find(primitive_name) != -1:
|
|
38
|
+
output += [f.replace(path, package + os.sep)]
|
|
39
|
+
|
|
40
|
+
# remove this file from the list
|
|
41
|
+
if allowed_locations:
|
|
42
|
+
for allowed in allowed_locations:
|
|
43
|
+
output = [i for i in output if allowed not in i]
|
|
44
|
+
|
|
45
|
+
return output
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def test_sklearn_check_version_ban():
|
|
49
|
+
"""This test blocks the use of sklearn_check_version
|
|
50
|
+
in onedal files. The versioning should occur in the
|
|
51
|
+
sklearnex package for clarity and maintainability.
|
|
52
|
+
"""
|
|
53
|
+
output = _check_primitive_usage_ban(
|
|
54
|
+
primitive_name="sklearn_check_version", package="onedal"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
# remove this file from the list
|
|
58
|
+
output = "\n".join([i for i in output if "test_common.py" not in i])
|
|
59
|
+
assert output == "", f"sklearn versioning is occurring in: \n{output}"
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def test_frameworks_intentionality():
|
|
63
|
+
"""Only silent skip frameworks which are not installed"""
|
|
64
|
+
fmwks = test_frameworks.replace("array_api", "array_api_strict").split(",")
|
|
65
|
+
for module in fmwks:
|
|
66
|
+
try:
|
|
67
|
+
importlib.import_module(module)
|
|
68
|
+
# If a module isn't installed, working as intended.
|
|
69
|
+
# If an ImportError occurs, then something is wrong.
|
|
70
|
+
except ModuleNotFoundError:
|
|
71
|
+
pass
|