scikit-learn-intelex 2025.10.0__py313-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.cp313-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.cp313-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-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +19 -0
- 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-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
- 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-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
- 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-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
- 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-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
- 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-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
- 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.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -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-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/__init__.py +20 -0
- 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-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/__init__.py +69 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__main__.py +58 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +338 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +455 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +38 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
- 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/__init__.py +19 -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-2025.10.0.data/data/Lib/site-packages/sklearnex/dispatcher.py +572 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +629 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1799 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/__main__.py +72 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/dispatcher.py +101 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +28 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/__init__.py +23 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/pairwise.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/ranking.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +39 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/split.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +34 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +189 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/common.py +313 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +189 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +167 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +170 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +82 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/__init__.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
- 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/__init__.py +25 -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-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +30 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +21 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +23 -0
- 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/__init__.py +19 -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-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
- 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/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvc.py +278 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvr.py +158 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svc.py +306 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svr.py +155 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +124 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +269 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +48 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +418 -0
- 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-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +19 -0
- 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/LICENSE.txt +202 -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-2025.10.0.dist-info/WHEEL +5 -0
- scikit_learn_intelex-2025.10.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,390 @@
|
|
|
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 numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
import scipy.sparse as sp
|
|
20
|
+
from numpy.testing import assert_allclose
|
|
21
|
+
from sklearn.base import clone
|
|
22
|
+
from sklearn.datasets import load_iris
|
|
23
|
+
|
|
24
|
+
from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
25
|
+
from onedal.tests.utils._dataframes_support import (
|
|
26
|
+
_as_numpy,
|
|
27
|
+
_convert_to_dataframe,
|
|
28
|
+
get_dataframes_and_queues,
|
|
29
|
+
)
|
|
30
|
+
from sklearnex.preview.decomposition import IncrementalPCA
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
34
|
+
def test_sklearnex_import(dataframe, queue):
|
|
35
|
+
X = [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]
|
|
36
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
37
|
+
incpca = IncrementalPCA(n_components=2)
|
|
38
|
+
result = incpca.fit(X)
|
|
39
|
+
assert "sklearnex" in incpca.__module__
|
|
40
|
+
assert hasattr(incpca, "_onedal_estimator")
|
|
41
|
+
assert_allclose(_as_numpy(result.singular_values_), [6.30061232, 0.54980396])
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def check_pca_on_gold_data(incpca, dtype, whiten, transformed_data):
|
|
45
|
+
expected_n_samples_seen_ = 6
|
|
46
|
+
expected_n_features_in_ = 2
|
|
47
|
+
expected_n_components_ = 2
|
|
48
|
+
expected_components_ = np.array([[0.83849224, 0.54491354], [-0.54491354, 0.83849224]])
|
|
49
|
+
expected_singular_values_ = np.array([6.30061232, 0.54980396])
|
|
50
|
+
expected_mean_ = np.array([0, 0])
|
|
51
|
+
expected_var_ = np.array([5.6, 2.4])
|
|
52
|
+
expected_explained_variance_ = np.array([7.93954312, 0.06045688])
|
|
53
|
+
expected_explained_variance_ratio_ = np.array([0.99244289, 0.00755711])
|
|
54
|
+
expected_noise_variance_ = 0.0
|
|
55
|
+
expected_transformed_data = (
|
|
56
|
+
np.array(
|
|
57
|
+
[
|
|
58
|
+
[-0.49096647, -1.19399271],
|
|
59
|
+
[-0.78854479, 1.02218579],
|
|
60
|
+
[-1.27951125, -0.17180692],
|
|
61
|
+
[0.49096647, 1.19399271],
|
|
62
|
+
[0.78854479, -1.02218579],
|
|
63
|
+
[1.27951125, 0.17180692],
|
|
64
|
+
]
|
|
65
|
+
)
|
|
66
|
+
if whiten
|
|
67
|
+
else np.array(
|
|
68
|
+
[
|
|
69
|
+
[-1.38340578, -0.2935787],
|
|
70
|
+
[-2.22189802, 0.25133484],
|
|
71
|
+
[-3.6053038, -0.04224385],
|
|
72
|
+
[1.38340578, 0.2935787],
|
|
73
|
+
[2.22189802, -0.25133484],
|
|
74
|
+
[3.6053038, 0.04224385],
|
|
75
|
+
]
|
|
76
|
+
)
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
tol = 1e-7
|
|
80
|
+
if dtype == np.float32:
|
|
81
|
+
tol = 7e-6 if whiten else 1e-6
|
|
82
|
+
|
|
83
|
+
assert incpca.n_samples_seen_ == expected_n_samples_seen_
|
|
84
|
+
assert incpca.n_features_in_ == expected_n_features_in_
|
|
85
|
+
assert incpca.n_components_ == expected_n_components_
|
|
86
|
+
|
|
87
|
+
assert_allclose(incpca.singular_values_, expected_singular_values_, atol=tol)
|
|
88
|
+
assert_allclose(incpca.mean_, expected_mean_, atol=tol)
|
|
89
|
+
assert_allclose(incpca.var_, expected_var_, atol=tol)
|
|
90
|
+
assert_allclose(incpca.explained_variance_, expected_explained_variance_, atol=tol)
|
|
91
|
+
assert_allclose(
|
|
92
|
+
incpca.explained_variance_ratio_, expected_explained_variance_ratio_, atol=tol
|
|
93
|
+
)
|
|
94
|
+
assert np.abs(incpca.noise_variance_ - expected_noise_variance_) < tol
|
|
95
|
+
if daal_check_version((2024, "P", 500)):
|
|
96
|
+
assert_allclose(incpca.components_, expected_components_, atol=tol)
|
|
97
|
+
assert_allclose(_as_numpy(transformed_data), expected_transformed_data, atol=tol)
|
|
98
|
+
else:
|
|
99
|
+
for i in range(incpca.n_components_):
|
|
100
|
+
abs_dot_product = np.abs(
|
|
101
|
+
np.dot(incpca.components_[i], expected_components_[i])
|
|
102
|
+
)
|
|
103
|
+
assert np.abs(abs_dot_product - 1.0) < tol
|
|
104
|
+
|
|
105
|
+
if np.dot(incpca.components_[i], expected_components_[i]) < 0:
|
|
106
|
+
assert_allclose(
|
|
107
|
+
_as_numpy(-transformed_data[i]),
|
|
108
|
+
expected_transformed_data[i],
|
|
109
|
+
atol=tol,
|
|
110
|
+
)
|
|
111
|
+
else:
|
|
112
|
+
assert_allclose(
|
|
113
|
+
_as_numpy(transformed_data[i]), expected_transformed_data[i], atol=tol
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def check_pca(incpca, dtype, whiten, data, transformed_data):
|
|
118
|
+
tol = 3e-3 if dtype == np.float32 else 2e-6
|
|
119
|
+
|
|
120
|
+
n_components = incpca.n_components_
|
|
121
|
+
|
|
122
|
+
expected_n_samples_seen = data.shape[0]
|
|
123
|
+
expected_n_features_in = data.shape[1]
|
|
124
|
+
n_samples_seen = incpca.n_samples_seen_
|
|
125
|
+
n_features_in = incpca.n_features_in_
|
|
126
|
+
assert n_samples_seen == expected_n_samples_seen
|
|
127
|
+
assert n_features_in == expected_n_features_in
|
|
128
|
+
|
|
129
|
+
components = incpca.components_
|
|
130
|
+
singular_values = incpca.singular_values_
|
|
131
|
+
centered_data = data - np.mean(data, axis=0)
|
|
132
|
+
cov_eigenvalues, cov_eigenvectors = np.linalg.eig(
|
|
133
|
+
centered_data.T @ centered_data / (n_samples_seen - 1)
|
|
134
|
+
)
|
|
135
|
+
cov_eigenvalues = np.nan_to_num(cov_eigenvalues)
|
|
136
|
+
cov_eigenvalues[cov_eigenvalues < 0] = 0
|
|
137
|
+
eigenvalues_order = np.argsort(cov_eigenvalues)[::-1]
|
|
138
|
+
sorted_eigenvalues = cov_eigenvalues[eigenvalues_order]
|
|
139
|
+
sorted_eigenvectors = cov_eigenvectors[:, eigenvalues_order]
|
|
140
|
+
expected_singular_values = np.sqrt(sorted_eigenvalues * (n_samples_seen - 1))[
|
|
141
|
+
:n_components
|
|
142
|
+
]
|
|
143
|
+
expected_components = sorted_eigenvectors.T[:n_components]
|
|
144
|
+
|
|
145
|
+
assert_allclose(singular_values, expected_singular_values, atol=tol)
|
|
146
|
+
for i in range(n_components):
|
|
147
|
+
component_length = np.dot(components[i], components[i])
|
|
148
|
+
assert np.abs(component_length - 1.0) < tol
|
|
149
|
+
abs_dot_product = np.abs(np.dot(components[i], expected_components[i]))
|
|
150
|
+
assert np.abs(abs_dot_product - 1.0) < tol
|
|
151
|
+
|
|
152
|
+
expected_mean = np.mean(data, axis=0)
|
|
153
|
+
assert_allclose(incpca.mean_, expected_mean, atol=tol)
|
|
154
|
+
|
|
155
|
+
expected_var = np.var(_as_numpy(data), ddof=1, axis=0)
|
|
156
|
+
assert_allclose(incpca.var_, expected_var, atol=tol)
|
|
157
|
+
|
|
158
|
+
expected_explained_variance = sorted_eigenvalues[:n_components]
|
|
159
|
+
assert_allclose(incpca.explained_variance_, expected_explained_variance, atol=tol)
|
|
160
|
+
|
|
161
|
+
expected_explained_variance_ratio = expected_explained_variance / np.sum(
|
|
162
|
+
sorted_eigenvalues
|
|
163
|
+
)
|
|
164
|
+
assert_allclose(
|
|
165
|
+
incpca.explained_variance_ratio_, expected_explained_variance_ratio, atol=tol
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
expected_noise_variance = (
|
|
169
|
+
np.mean(sorted_eigenvalues[n_components:])
|
|
170
|
+
if len(sorted_eigenvalues) > n_components
|
|
171
|
+
else 0.0
|
|
172
|
+
)
|
|
173
|
+
# TODO Fix noise variance computation (It is necessary to update C++ side)
|
|
174
|
+
# assert np.abs(incpca.noise_variance_ - expected_noise_variance) < tol
|
|
175
|
+
|
|
176
|
+
expected_transformed_data = centered_data @ components.T
|
|
177
|
+
if whiten:
|
|
178
|
+
scale = np.sqrt(incpca.explained_variance_)
|
|
179
|
+
min_scale = np.finfo(scale.dtype).eps
|
|
180
|
+
scale[scale < min_scale] = np.inf
|
|
181
|
+
expected_transformed_data /= scale
|
|
182
|
+
|
|
183
|
+
if not (whiten and n_components == n_samples_seen):
|
|
184
|
+
assert_allclose(_as_numpy(transformed_data), expected_transformed_data, atol=tol)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
188
|
+
@pytest.mark.parametrize("whiten", [True, False])
|
|
189
|
+
@pytest.mark.parametrize("num_blocks", [1, 2, 3])
|
|
190
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
191
|
+
def test_sklearnex_partial_fit_on_gold_data(dataframe, queue, whiten, num_blocks, dtype):
|
|
192
|
+
|
|
193
|
+
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
|
|
194
|
+
X = X.astype(dtype=dtype)
|
|
195
|
+
X_split = np.array_split(X, num_blocks)
|
|
196
|
+
incpca = IncrementalPCA(whiten=whiten)
|
|
197
|
+
|
|
198
|
+
for i in range(num_blocks):
|
|
199
|
+
X_split_df = _convert_to_dataframe(
|
|
200
|
+
X_split[i], sycl_queue=queue, target_df=dataframe
|
|
201
|
+
)
|
|
202
|
+
incpca.partial_fit(X_split_df)
|
|
203
|
+
|
|
204
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
205
|
+
transformed_data = incpca.transform(X_df)
|
|
206
|
+
check_pca_on_gold_data(incpca, dtype, whiten, transformed_data)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
210
|
+
@pytest.mark.parametrize("whiten", [True, False])
|
|
211
|
+
@pytest.mark.parametrize("num_blocks", [1, 2, 3])
|
|
212
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
213
|
+
def test_sklearnex_fit_on_gold_data(dataframe, queue, whiten, num_blocks, dtype):
|
|
214
|
+
|
|
215
|
+
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
|
|
216
|
+
X = X.astype(dtype=dtype)
|
|
217
|
+
incpca = IncrementalPCA(whiten=whiten, batch_size=X.shape[0] // num_blocks)
|
|
218
|
+
|
|
219
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
220
|
+
incpca.fit(X_df)
|
|
221
|
+
transformed_data = incpca.transform(X_df)
|
|
222
|
+
|
|
223
|
+
check_pca_on_gold_data(incpca, dtype, whiten, transformed_data)
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
227
|
+
@pytest.mark.parametrize("whiten", [True, False])
|
|
228
|
+
@pytest.mark.parametrize("num_blocks", [1, 2, 3])
|
|
229
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
230
|
+
def test_sklearnex_fit_transform_on_gold_data(
|
|
231
|
+
dataframe, queue, whiten, num_blocks, dtype
|
|
232
|
+
):
|
|
233
|
+
|
|
234
|
+
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
|
|
235
|
+
X = X.astype(dtype=dtype)
|
|
236
|
+
incpca = IncrementalPCA(whiten=whiten, batch_size=X.shape[0] // num_blocks)
|
|
237
|
+
|
|
238
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
239
|
+
transformed_data = incpca.fit_transform(X_df)
|
|
240
|
+
|
|
241
|
+
check_pca_on_gold_data(incpca, dtype, whiten, transformed_data)
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
245
|
+
@pytest.mark.parametrize("n_components", [None, 1, 5])
|
|
246
|
+
@pytest.mark.parametrize("whiten", [True, False])
|
|
247
|
+
@pytest.mark.parametrize("num_blocks", [1, 10])
|
|
248
|
+
@pytest.mark.parametrize("row_count", [100, 1000])
|
|
249
|
+
@pytest.mark.parametrize("column_count", [10, 100])
|
|
250
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
251
|
+
def test_sklearnex_partial_fit_on_random_data(
|
|
252
|
+
dataframe, queue, n_components, whiten, num_blocks, row_count, column_count, dtype
|
|
253
|
+
):
|
|
254
|
+
seed = 81
|
|
255
|
+
gen = np.random.default_rng(seed)
|
|
256
|
+
X = gen.uniform(low=-0.3, high=+0.7, size=(row_count, column_count))
|
|
257
|
+
X = X.astype(dtype=dtype)
|
|
258
|
+
X_split = np.array_split(X, num_blocks)
|
|
259
|
+
incpca = IncrementalPCA(n_components=n_components, whiten=whiten)
|
|
260
|
+
|
|
261
|
+
for i in range(num_blocks):
|
|
262
|
+
X_split_df = _convert_to_dataframe(
|
|
263
|
+
X_split[i], sycl_queue=queue, target_df=dataframe
|
|
264
|
+
)
|
|
265
|
+
incpca.partial_fit(X_split_df)
|
|
266
|
+
|
|
267
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
268
|
+
transformed_data = incpca.transform(X_df)
|
|
269
|
+
check_pca(incpca, dtype, whiten, X, transformed_data)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
273
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
274
|
+
def test_sklearnex_incremental_estimatior_pickle(dataframe, queue, dtype):
|
|
275
|
+
import pickle
|
|
276
|
+
|
|
277
|
+
incpca = IncrementalPCA()
|
|
278
|
+
|
|
279
|
+
# Check that estimator can be serialized without any data.
|
|
280
|
+
dump = pickle.dumps(incpca)
|
|
281
|
+
incpca_loaded = pickle.loads(dump)
|
|
282
|
+
|
|
283
|
+
seed = 77
|
|
284
|
+
gen = np.random.default_rng(seed)
|
|
285
|
+
X = gen.uniform(low=-0.3, high=+0.7, size=(10, 10))
|
|
286
|
+
X = X.astype(dtype)
|
|
287
|
+
X_split = np.array_split(X, 2)
|
|
288
|
+
X_split_df = _convert_to_dataframe(X_split[0], sycl_queue=queue, target_df=dataframe)
|
|
289
|
+
incpca.partial_fit(X_split_df)
|
|
290
|
+
incpca_loaded.partial_fit(X_split_df)
|
|
291
|
+
dump = pickle.dumps(incpca_loaded)
|
|
292
|
+
incpca_loaded = pickle.loads(dump)
|
|
293
|
+
assert incpca.batch_size == incpca_loaded.batch_size
|
|
294
|
+
assert incpca.n_features_in_ == incpca_loaded.n_features_in_
|
|
295
|
+
assert incpca.n_samples_seen_ == incpca_loaded.n_samples_seen_
|
|
296
|
+
if hasattr(incpca, "_parameter_constraints"):
|
|
297
|
+
assert incpca._parameter_constraints == incpca_loaded._parameter_constraints
|
|
298
|
+
assert incpca.n_jobs == incpca_loaded.n_jobs
|
|
299
|
+
X_split_df = _convert_to_dataframe(X_split[1], sycl_queue=queue, target_df=dataframe)
|
|
300
|
+
incpca.partial_fit(X_split_df)
|
|
301
|
+
incpca_loaded.partial_fit(X_split_df)
|
|
302
|
+
|
|
303
|
+
# Check that estimator can be serialized after partial_fit call.
|
|
304
|
+
dump = pickle.dumps(incpca)
|
|
305
|
+
incpca_loaded = pickle.loads(dump)
|
|
306
|
+
|
|
307
|
+
assert_allclose(incpca.singular_values_, incpca_loaded.singular_values_, atol=1e-6)
|
|
308
|
+
assert_allclose(incpca.n_samples_seen_, incpca_loaded.n_samples_seen_, atol=1e-6)
|
|
309
|
+
assert_allclose(incpca.n_features_in_, incpca_loaded.n_features_in_, atol=1e-6)
|
|
310
|
+
assert_allclose(incpca.mean_, incpca_loaded.mean_, atol=1e-6)
|
|
311
|
+
assert_allclose(incpca.var_, incpca_loaded.var_, atol=1e-6)
|
|
312
|
+
assert_allclose(
|
|
313
|
+
incpca.explained_variance_, incpca_loaded.explained_variance_, atol=1e-6
|
|
314
|
+
)
|
|
315
|
+
assert_allclose(incpca.components_, incpca_loaded.components_, atol=1e-6)
|
|
316
|
+
assert_allclose(
|
|
317
|
+
incpca.explained_variance_ratio_,
|
|
318
|
+
incpca_loaded.explained_variance_ratio_,
|
|
319
|
+
atol=1e-6,
|
|
320
|
+
)
|
|
321
|
+
|
|
322
|
+
# Check that finalized estimator can be serialized.
|
|
323
|
+
dump = pickle.dumps(incpca_loaded)
|
|
324
|
+
incpca_loaded = pickle.loads(dump)
|
|
325
|
+
|
|
326
|
+
assert_allclose(incpca.singular_values_, incpca_loaded.singular_values_, atol=1e-6)
|
|
327
|
+
assert_allclose(incpca.n_samples_seen_, incpca_loaded.n_samples_seen_, atol=1e-6)
|
|
328
|
+
assert_allclose(incpca.n_features_in_, incpca_loaded.n_features_in_, atol=1e-6)
|
|
329
|
+
assert_allclose(incpca.mean_, incpca_loaded.mean_, atol=1e-6)
|
|
330
|
+
assert_allclose(incpca.var_, incpca_loaded.var_, atol=1e-6)
|
|
331
|
+
assert_allclose(
|
|
332
|
+
incpca.explained_variance_, incpca_loaded.explained_variance_, atol=1e-6
|
|
333
|
+
)
|
|
334
|
+
assert_allclose(incpca.components_, incpca_loaded.components_, atol=1e-6)
|
|
335
|
+
assert_allclose(
|
|
336
|
+
incpca.explained_variance_ratio_,
|
|
337
|
+
incpca_loaded.explained_variance_ratio_,
|
|
338
|
+
atol=1e-6,
|
|
339
|
+
)
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues("numpy,dpctl"))
|
|
343
|
+
def test_changed_estimated_attributes(with_array_api, dataframe, queue):
|
|
344
|
+
# check that attributes necessary for the PCA onedal estimator match
|
|
345
|
+
# changes occurring in the sklearnex estimator
|
|
346
|
+
X, y = load_iris(return_X_y=True)
|
|
347
|
+
|
|
348
|
+
X_0 = _convert_to_dataframe(X[y == 0], sycl_queue=queue, target_df=dataframe)
|
|
349
|
+
X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
350
|
+
|
|
351
|
+
est0 = IncrementalPCA(n_components=4).fit(X_0)
|
|
352
|
+
est = clone(est0)
|
|
353
|
+
assert not hasattr(est, "_onedal_estimator")
|
|
354
|
+
est.fit(X)
|
|
355
|
+
assert not np.array_equal(_as_numpy(est.transform(X)), _as_numpy(est0.transform(X)))
|
|
356
|
+
|
|
357
|
+
# copy over parameters necessary for transform
|
|
358
|
+
est.mean_ = est0.mean_
|
|
359
|
+
est.components_ = est0.components_
|
|
360
|
+
est.explained_variance_ = est0.explained_variance_
|
|
361
|
+
est.n_components_ = est0.n_components_ # is trivial but exercises the logic
|
|
362
|
+
|
|
363
|
+
assert np.array_equal(_as_numpy(est.transform(X)), _as_numpy(est0.transform(X)))
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
@pytest.mark.skipif(
|
|
367
|
+
not sklearn_check_version("1.5"),
|
|
368
|
+
reason='svd_solver="auto" does not support sparse inputs',
|
|
369
|
+
)
|
|
370
|
+
@pytest.mark.allow_sklearn_fallback
|
|
371
|
+
def test_create_model_behavior():
|
|
372
|
+
# verify that fit fallbacks does not break ``transform`` as the oneDAL
|
|
373
|
+
# model is generated JIT
|
|
374
|
+
|
|
375
|
+
X, _ = load_iris(return_X_y=True)
|
|
376
|
+
# generate a onedal estimator
|
|
377
|
+
est = IncrementalPCA(n_components=3)
|
|
378
|
+
X_trans = est.fit_transform(X)
|
|
379
|
+
|
|
380
|
+
# force data to sparse for a fallback to sklearn
|
|
381
|
+
X_sp = sp.csr_matrix(X)
|
|
382
|
+
est.fit(X_sp)
|
|
383
|
+
# In the case of a fallback, the model should be set to none by clobbered
|
|
384
|
+
# fitted attributes
|
|
385
|
+
assert est._onedal_estimator._onedal_model is None
|
|
386
|
+
|
|
387
|
+
X_trans_sparse = est.transform(X)
|
|
388
|
+
# use allclose as data was fit with sklearn and onedal on the same data
|
|
389
|
+
# but using different backends
|
|
390
|
+
assert_allclose(X_trans, X_trans_sparse)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2023 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
__all__ = [
|
|
18
|
+
"basic_statistics",
|
|
19
|
+
"cluster",
|
|
20
|
+
"covariance",
|
|
21
|
+
"decomposition",
|
|
22
|
+
"ensemble",
|
|
23
|
+
"linear_model",
|
|
24
|
+
"neighbors",
|
|
25
|
+
]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2023 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
from .basic_statistics import BasicStatistics
|
|
18
|
+
from .incremental_basic_statistics import IncrementalBasicStatistics
|
|
19
|
+
|
|
20
|
+
__all__ = ["BasicStatistics", "IncrementalBasicStatistics"]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2023 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ==============================================================================
|
|
16
|
+
|
|
17
|
+
from onedal.spmd.basic_statistics import BasicStatistics as onedal_BasicStatistics
|
|
18
|
+
|
|
19
|
+
from ...basic_statistics import BasicStatistics as BasicStatistics_Batch
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class BasicStatistics(BasicStatistics_Batch):
|
|
23
|
+
__doc__ = BasicStatistics_Batch.__doc__
|
|
24
|
+
_onedal_basic_statistics = staticmethod(onedal_BasicStatistics)
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
|
|
18
|
+
from onedal.spmd.basic_statistics import (
|
|
19
|
+
IncrementalBasicStatistics as onedalSPMD_IncrementalBasicStatistics,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
from ...basic_statistics import (
|
|
23
|
+
IncrementalBasicStatistics as base_IncrementalBasicStatistics,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class IncrementalBasicStatistics(base_IncrementalBasicStatistics):
|
|
28
|
+
_onedal_incremental_basic_statistics = staticmethod(
|
|
29
|
+
onedalSPMD_IncrementalBasicStatistics
|
|
30
|
+
)
|
|
@@ -0,0 +1,117 @@
|
|
|
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 numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from numpy.testing import assert_allclose
|
|
20
|
+
|
|
21
|
+
from onedal.basic_statistics.tests.utils import options_and_tests
|
|
22
|
+
from onedal.tests.utils._dataframes_support import (
|
|
23
|
+
_as_numpy,
|
|
24
|
+
_convert_to_dataframe,
|
|
25
|
+
get_dataframes_and_queues,
|
|
26
|
+
)
|
|
27
|
+
from sklearnex import config_context
|
|
28
|
+
from sklearnex.tests.utils.spmd import (
|
|
29
|
+
_generate_statistic_data,
|
|
30
|
+
_get_local_tensor,
|
|
31
|
+
_mpi_libs_and_gpu_available,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@pytest.mark.skipif(
|
|
36
|
+
not _mpi_libs_and_gpu_available,
|
|
37
|
+
reason="GPU device and MPI libs required for test",
|
|
38
|
+
)
|
|
39
|
+
@pytest.mark.parametrize(
|
|
40
|
+
"dataframe,queue",
|
|
41
|
+
get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
|
|
42
|
+
)
|
|
43
|
+
@pytest.mark.mpi
|
|
44
|
+
def test_basic_stats_spmd_gold(dataframe, queue):
|
|
45
|
+
# Import spmd and batch algo
|
|
46
|
+
from onedal.basic_statistics import BasicStatistics as BasicStatistics_Batch
|
|
47
|
+
from sklearnex.spmd.basic_statistics import BasicStatistics as BasicStatistics_SPMD
|
|
48
|
+
|
|
49
|
+
# Create gold data and convert to dataframe
|
|
50
|
+
data = np.array(
|
|
51
|
+
[
|
|
52
|
+
[0.0, 0.0, 0.0],
|
|
53
|
+
[0.0, 1.0, 2.0],
|
|
54
|
+
[0.0, 2.0, 4.0],
|
|
55
|
+
[0.0, 3.0, 8.0],
|
|
56
|
+
[0.0, 4.0, 16.0],
|
|
57
|
+
[0.0, 5.0, 32.0],
|
|
58
|
+
[0.0, 6.0, 64.0],
|
|
59
|
+
]
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
local_dpt_data = _convert_to_dataframe(
|
|
63
|
+
_get_local_tensor(data), sycl_queue=queue, target_df=dataframe
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# Ensure results of batch algo match spmd
|
|
67
|
+
spmd = BasicStatistics_SPMD()
|
|
68
|
+
spmd_result = spmd.fit(local_dpt_data)
|
|
69
|
+
batch_result = BasicStatistics_Batch().fit(data)
|
|
70
|
+
|
|
71
|
+
for option in options_and_tests:
|
|
72
|
+
attr = option + "_"
|
|
73
|
+
assert_allclose(getattr(spmd_result, attr), getattr(batch_result, attr))
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
@pytest.mark.skipif(
|
|
77
|
+
not _mpi_libs_and_gpu_available,
|
|
78
|
+
reason="GPU device and MPI libs required for test",
|
|
79
|
+
)
|
|
80
|
+
@pytest.mark.parametrize("n_samples", [100, 10000])
|
|
81
|
+
@pytest.mark.parametrize("n_features", [10, 100])
|
|
82
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
83
|
+
@pytest.mark.parametrize(
|
|
84
|
+
"dataframe,queue",
|
|
85
|
+
get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
|
|
86
|
+
)
|
|
87
|
+
@pytest.mark.parametrize("use_raw_input", [True, False])
|
|
88
|
+
@pytest.mark.mpi
|
|
89
|
+
def test_basic_stats_spmd_synthetic(
|
|
90
|
+
n_samples, n_features, dataframe, queue, dtype, use_raw_input
|
|
91
|
+
):
|
|
92
|
+
# Import spmd and batch algo
|
|
93
|
+
from onedal.basic_statistics import BasicStatistics as BasicStatistics_Batch
|
|
94
|
+
from sklearnex.spmd.basic_statistics import BasicStatistics as BasicStatistics_SPMD
|
|
95
|
+
|
|
96
|
+
# Generate data and convert to dataframe
|
|
97
|
+
data = _generate_statistic_data(n_samples, n_features, dtype=dtype)
|
|
98
|
+
|
|
99
|
+
local_dpt_data = _convert_to_dataframe(
|
|
100
|
+
_get_local_tensor(data), sycl_queue=queue, target_df=dataframe
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
# Ensure results of batch algo match spmd
|
|
104
|
+
# Configure raw input status for spmd estimator
|
|
105
|
+
with config_context(use_raw_input=use_raw_input):
|
|
106
|
+
spmd_result = BasicStatistics_SPMD().fit(local_dpt_data)
|
|
107
|
+
batch_result = BasicStatistics_Batch().fit(data)
|
|
108
|
+
|
|
109
|
+
tol = 1e-5 if dtype == np.float32 else 1e-7
|
|
110
|
+
for option in options_and_tests:
|
|
111
|
+
attr = option + "_"
|
|
112
|
+
assert_allclose(
|
|
113
|
+
_as_numpy(getattr(spmd_result, attr)),
|
|
114
|
+
_as_numpy(getattr(batch_result, attr)),
|
|
115
|
+
atol=tol,
|
|
116
|
+
rtol=tol,
|
|
117
|
+
)
|