scikit-learn-intelex 2024.7.0__py310-none-win_amd64.whl → 2025.0.0__py310-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +242 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +241 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +318 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +196 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +155 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +87 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +118 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
- {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/__init__.py +83 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_config.py +53 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_device_offload.py +229 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +560 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +116 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +75 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +95 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +235 -0
- {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +720 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +149 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +778 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/test_common.py +41 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +168 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +91 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/validation.py +432 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +36 -13
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +0 -3
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +5 -5
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +383 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +153 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +5 -5
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +11 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +1 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +19 -9
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +2 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +7 -7
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +5 -6
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +418 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +4 -4
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +13 -10
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +5 -4
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +3 -3
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +2 -2
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +2 -2
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +4 -2
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +2 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +1 -1
- {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/preview}/__init__.py +1 -3
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +8 -8
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +2 -2
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +4 -4
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
- {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition}/__init__.py +4 -1
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +4 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +1 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +1 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/_utils_spmd.py +18 -5
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +2 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -1
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +12 -11
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +1 -2
- scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +5 -20
- {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/METADATA +3 -2
- scikit_learn_intelex-2025.0.0.dist-info/RECORD +255 -0
- scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -25
- scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -42
- scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
- scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
- scikit_learn_intelex-2024.7.0.dist-info/RECORD +0 -122
- {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -0
- {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
- {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.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="nusvr is not implemented")
|
|
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="nusvr is not implemented")
|
|
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="nusvr is not implemented")
|
|
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="nusvr is not implemented")
|
|
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="nusvr is not implemented")
|
|
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="nusvr is not implemented")
|
|
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="nusvr is not implemented")
|
|
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="nusvr is not implemented")
|
|
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="multiclass svm is 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="multiclass svm is 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="multiclass svm is 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="sigmoid kernel is 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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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="svr is not implemented")
|
|
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,41 @@
|
|
|
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 os
|
|
18
|
+
from glob import glob
|
|
19
|
+
|
|
20
|
+
import pytest
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def test_sklearn_check_version_ban():
|
|
24
|
+
"""This test blocks the use of sklearn_check_version
|
|
25
|
+
in onedal files. The versioning should occur in the
|
|
26
|
+
sklearnex package for clarity and maintainability.
|
|
27
|
+
"""
|
|
28
|
+
from onedal import __file__ as loc
|
|
29
|
+
|
|
30
|
+
path = loc.replace("__init__.py", "")
|
|
31
|
+
files = [y for x in os.walk(path) for y in glob(os.path.join(x[0], "*.py"))]
|
|
32
|
+
|
|
33
|
+
output = []
|
|
34
|
+
|
|
35
|
+
for f in files:
|
|
36
|
+
if open(f, "r").read().find("sklearn_check_version") != -1:
|
|
37
|
+
output += [f.replace(path, "onedal" + os.sep)]
|
|
38
|
+
|
|
39
|
+
# remove this file from the list
|
|
40
|
+
output = "\n".join([i for i in output if "test_common.py" not in i])
|
|
41
|
+
assert output == "", f"sklearn versioning is occuring in: \n{output}"
|