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,121 @@
|
|
|
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
|
+
from abc import ABCMeta
|
|
17
|
+
|
|
18
|
+
import numpy as np
|
|
19
|
+
|
|
20
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
21
|
+
from onedal._device_offload import supports_queue
|
|
22
|
+
from onedal.common._backend import bind_default_backend
|
|
23
|
+
|
|
24
|
+
from .._config import _get_config
|
|
25
|
+
from ..common.hyperparameters import get_hyperparameters
|
|
26
|
+
from ..datatypes import from_table, to_table
|
|
27
|
+
from ..utils._array_api import _get_sycl_namespace
|
|
28
|
+
from ..utils.validation import _check_array
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class BaseEmpiricalCovariance(metaclass=ABCMeta):
|
|
32
|
+
def __init__(self, method="dense", bias=False, assume_centered=False):
|
|
33
|
+
self.method = method
|
|
34
|
+
self.bias = bias
|
|
35
|
+
self.assume_centered = assume_centered
|
|
36
|
+
|
|
37
|
+
@bind_default_backend("covariance")
|
|
38
|
+
def compute(self, *args, **kwargs): ...
|
|
39
|
+
|
|
40
|
+
def _get_onedal_params(self, dtype=np.float32):
|
|
41
|
+
params = {
|
|
42
|
+
"fptype": dtype,
|
|
43
|
+
"method": self.method,
|
|
44
|
+
}
|
|
45
|
+
if daal_check_version((2024, "P", 1)):
|
|
46
|
+
params["bias"] = self.bias
|
|
47
|
+
if daal_check_version((2024, "P", 400)):
|
|
48
|
+
params["assumeCentered"] = self.assume_centered
|
|
49
|
+
|
|
50
|
+
return params
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class EmpiricalCovariance(BaseEmpiricalCovariance):
|
|
54
|
+
"""Covariance estimator.
|
|
55
|
+
|
|
56
|
+
Computes sample covariance matrix.
|
|
57
|
+
|
|
58
|
+
Parameters
|
|
59
|
+
----------
|
|
60
|
+
method : str, default="dense"
|
|
61
|
+
Specifies computation method. Available methods: "dense".
|
|
62
|
+
|
|
63
|
+
bias : bool, default=False
|
|
64
|
+
If True biased estimation of covariance is computed which equals to
|
|
65
|
+
the unbiased one multiplied by (n_samples - 1) / n_samples.
|
|
66
|
+
|
|
67
|
+
assume_centered : bool, default=False
|
|
68
|
+
If True, data are not centered before computation.
|
|
69
|
+
Useful when working with data whose mean is almost, but not exactly
|
|
70
|
+
zero.
|
|
71
|
+
If False (default), data are centered before computation.
|
|
72
|
+
|
|
73
|
+
Attributes
|
|
74
|
+
----------
|
|
75
|
+
location_ : ndarray of shape (n_features,)
|
|
76
|
+
Estimated location, i.e., the estimated mean.
|
|
77
|
+
|
|
78
|
+
covariance_ : ndarray of shape (n_features, n_features)
|
|
79
|
+
Estimated covariance matrix
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
@supports_queue
|
|
83
|
+
def fit(self, X, y=None, queue=None):
|
|
84
|
+
"""Fit the sample covariance matrix of X.
|
|
85
|
+
|
|
86
|
+
Parameters
|
|
87
|
+
----------
|
|
88
|
+
X : array-like of shape (n_samples, n_features)
|
|
89
|
+
Training data, where `n_samples` is the number of samples, and
|
|
90
|
+
`n_features` is the number of features.
|
|
91
|
+
|
|
92
|
+
y : Ignored
|
|
93
|
+
Not used, present for API consistency by convention.
|
|
94
|
+
|
|
95
|
+
queue : dpctl.SyclQueue
|
|
96
|
+
If not None, use this queue for computations.
|
|
97
|
+
|
|
98
|
+
Returns
|
|
99
|
+
-------
|
|
100
|
+
self : object
|
|
101
|
+
Returns the instance itself.
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
X_table = to_table(X, queue=queue)
|
|
105
|
+
|
|
106
|
+
params = self._get_onedal_params(X_table.dtype)
|
|
107
|
+
hparams = get_hyperparameters("covariance", "compute")
|
|
108
|
+
if hparams is not None and not hparams.is_default:
|
|
109
|
+
result = self.compute(params, hparams.backend, X_table)
|
|
110
|
+
else:
|
|
111
|
+
result = self.compute(params, X_table)
|
|
112
|
+
if daal_check_version((2024, "P", 1)) or (not self.bias):
|
|
113
|
+
self.covariance_ = from_table(result.cov_matrix, like=X)
|
|
114
|
+
else:
|
|
115
|
+
self.covariance_ = (
|
|
116
|
+
from_table(result.cov_matrix, like=X) * (X.shape[0] - 1) / X.shape[0]
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
self.location_ = from_table(result.means, like=X)[0, ...]
|
|
120
|
+
|
|
121
|
+
return self
|
|
@@ -0,0 +1,151 @@
|
|
|
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
|
+
|
|
19
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
20
|
+
|
|
21
|
+
from .._config import _get_config
|
|
22
|
+
from .._device_offload import supports_queue
|
|
23
|
+
from ..common._backend import bind_default_backend
|
|
24
|
+
from ..datatypes import from_table, return_type_constructor, to_table
|
|
25
|
+
from ..utils import _sycl_queue_manager as QM
|
|
26
|
+
from ..utils._array_api import _get_sycl_namespace
|
|
27
|
+
from ..utils.validation import _check_array
|
|
28
|
+
from .covariance import BaseEmpiricalCovariance
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
|
|
32
|
+
"""Covariance estimator based on oneDAL implementation.
|
|
33
|
+
|
|
34
|
+
Computes sample covariance matrix.
|
|
35
|
+
|
|
36
|
+
Parameters
|
|
37
|
+
----------
|
|
38
|
+
method : str, default="dense"
|
|
39
|
+
Specifies computation method. Available methods: "dense".
|
|
40
|
+
|
|
41
|
+
bias : bool, default=False
|
|
42
|
+
If True biased estimation of covariance is computed which equals to
|
|
43
|
+
the unbiased one multiplied by (n_samples - 1) / n_samples.
|
|
44
|
+
|
|
45
|
+
assume_centered : bool, default=False
|
|
46
|
+
If True, data are not centered before computation.
|
|
47
|
+
Useful when working with data whose mean is almost, but not exactly
|
|
48
|
+
zero.
|
|
49
|
+
If False (default), data are centered before computation.
|
|
50
|
+
|
|
51
|
+
Attributes
|
|
52
|
+
----------
|
|
53
|
+
location_ : ndarray of shape (n_features,)
|
|
54
|
+
Estimated location, i.e., the estimated mean.
|
|
55
|
+
|
|
56
|
+
covariance_ : ndarray of shape (n_features, n_features)
|
|
57
|
+
Estimated covariance matrix
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
def __init__(self, method="dense", bias=False, assume_centered=False):
|
|
61
|
+
super().__init__(method, bias, assume_centered)
|
|
62
|
+
self._reset()
|
|
63
|
+
self._queue = None
|
|
64
|
+
|
|
65
|
+
@bind_default_backend("covariance")
|
|
66
|
+
def partial_compute(self, params, partial_result, X_table): ...
|
|
67
|
+
|
|
68
|
+
@bind_default_backend("covariance")
|
|
69
|
+
def partial_compute_result(self): ...
|
|
70
|
+
|
|
71
|
+
@bind_default_backend("covariance")
|
|
72
|
+
def finalize_compute(self, params, partial_result): ...
|
|
73
|
+
|
|
74
|
+
def _reset(self):
|
|
75
|
+
self._need_to_finalize = False
|
|
76
|
+
self._queue = None
|
|
77
|
+
self._outtype = None
|
|
78
|
+
self._partial_result = self.partial_compute_result()
|
|
79
|
+
|
|
80
|
+
def __getstate__(self):
|
|
81
|
+
# Since finalize_fit can't be dispatched without directly provided queue
|
|
82
|
+
# and the dispatching policy can't be serialized, the computation is finalized
|
|
83
|
+
# here and the policy is not saved in serialized data.
|
|
84
|
+
|
|
85
|
+
self.finalize_fit()
|
|
86
|
+
data = self.__dict__.copy()
|
|
87
|
+
data.pop("_queue", None)
|
|
88
|
+
|
|
89
|
+
return data
|
|
90
|
+
|
|
91
|
+
@supports_queue
|
|
92
|
+
def partial_fit(self, X, y=None, queue=None):
|
|
93
|
+
"""Generate partial covariance from batch data in `_partial_result`.
|
|
94
|
+
|
|
95
|
+
Parameters
|
|
96
|
+
----------
|
|
97
|
+
X : array-like of shape (n_samples, n_features)
|
|
98
|
+
Training data batch, where `n_samples` is the number of samples
|
|
99
|
+
in the batch, and `n_features` is the number of features.
|
|
100
|
+
|
|
101
|
+
y : Ignored
|
|
102
|
+
Not used, present for API consistency by convention.
|
|
103
|
+
|
|
104
|
+
queue : SyclQueue or None, default=None
|
|
105
|
+
If not None, use this queue for computation.
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
self : object
|
|
110
|
+
Returns the instance itself.
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
self._queue = queue
|
|
114
|
+
if not self._outtype:
|
|
115
|
+
self._outtype = return_type_constructor(X)
|
|
116
|
+
X_table = to_table(X, queue=queue)
|
|
117
|
+
|
|
118
|
+
if not hasattr(self, "_dtype"):
|
|
119
|
+
self._dtype = X_table.dtype
|
|
120
|
+
|
|
121
|
+
params = self._get_onedal_params(self._dtype)
|
|
122
|
+
self._partial_result = self.partial_compute(params, self._partial_result, X_table)
|
|
123
|
+
self._need_to_finalize = True
|
|
124
|
+
|
|
125
|
+
def finalize_fit(self):
|
|
126
|
+
"""Finalize covariance matrix from the current `_partial_result`.
|
|
127
|
+
|
|
128
|
+
Results are stored in `location_` and `covariance_` attributes.
|
|
129
|
+
|
|
130
|
+
Returns
|
|
131
|
+
-------
|
|
132
|
+
self : object
|
|
133
|
+
Returns the instance itself.
|
|
134
|
+
"""
|
|
135
|
+
if self._need_to_finalize:
|
|
136
|
+
params = self._get_onedal_params(self._dtype)
|
|
137
|
+
with QM.manage_global_queue(self._queue):
|
|
138
|
+
result = self.finalize_compute(params, self._partial_result)
|
|
139
|
+
|
|
140
|
+
self.covariance_ = from_table(result.cov_matrix, like=self._outtype)
|
|
141
|
+
|
|
142
|
+
if self.bias and not daal_check_version((2024, "P", 1)):
|
|
143
|
+
n_rows = self._partial_result.partial_n_rows
|
|
144
|
+
self.covariance_ *= (n_rows - 1) / n_rows
|
|
145
|
+
|
|
146
|
+
self.location_ = from_table(result.means, like=self._outtype)[0, ...]
|
|
147
|
+
self._outtype = None
|
|
148
|
+
|
|
149
|
+
self._need_to_finalize = False
|
|
150
|
+
|
|
151
|
+
return self
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2023 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ===============================================================================
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from numpy.testing import assert_allclose
|
|
20
|
+
|
|
21
|
+
from onedal.tests.utils._device_selection import get_queues
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
25
|
+
def test_onedal_import_covariance(queue):
|
|
26
|
+
from onedal.covariance import EmpiricalCovariance
|
|
27
|
+
|
|
28
|
+
X = np.array([[0, 1], [0, 1]], dtype=np.float64)
|
|
29
|
+
result = EmpiricalCovariance().fit(X, queue=queue)
|
|
30
|
+
expected_covariance = np.array([[0, 0], [0, 0]])
|
|
31
|
+
expected_means = np.array([0, 1])
|
|
32
|
+
|
|
33
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
34
|
+
assert_allclose(expected_means, result.location_)
|
|
35
|
+
|
|
36
|
+
X = np.array([[1, 2], [3, 6]], dtype=np.float64)
|
|
37
|
+
result = EmpiricalCovariance().fit(X, queue=queue)
|
|
38
|
+
expected_covariance = np.array([[2, 4], [4, 8]])
|
|
39
|
+
expected_means = np.array([2, 4])
|
|
40
|
+
|
|
41
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
42
|
+
assert_allclose(expected_means, result.location_)
|
|
43
|
+
|
|
44
|
+
X = np.array([[1, 2], [3, 6]], dtype=np.float64)
|
|
45
|
+
result = EmpiricalCovariance(bias=True).fit(X, queue=queue)
|
|
46
|
+
expected_covariance = np.array([[1, 2], [2, 4]])
|
|
47
|
+
expected_means = np.array([2, 4])
|
|
48
|
+
|
|
49
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
50
|
+
assert_allclose(expected_means, result.location_)
|
|
@@ -0,0 +1,190 @@
|
|
|
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.datatypes import from_table
|
|
22
|
+
from onedal.tests.utils._device_selection import get_queues
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
26
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
27
|
+
def test_on_gold_data_unbiased(queue, dtype):
|
|
28
|
+
from onedal.covariance import IncrementalEmpiricalCovariance
|
|
29
|
+
|
|
30
|
+
X = np.array([[0, 1], [0, 1]])
|
|
31
|
+
X = X.astype(dtype)
|
|
32
|
+
X_split = np.array_split(X, 2)
|
|
33
|
+
inccov = IncrementalEmpiricalCovariance()
|
|
34
|
+
|
|
35
|
+
for i in range(2):
|
|
36
|
+
inccov.partial_fit(X_split[i], queue=queue)
|
|
37
|
+
result = inccov.finalize_fit()
|
|
38
|
+
|
|
39
|
+
expected_covariance = np.array([[0, 0], [0, 0]])
|
|
40
|
+
expected_means = np.array([0, 1])
|
|
41
|
+
|
|
42
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
43
|
+
assert_allclose(expected_means, result.location_)
|
|
44
|
+
|
|
45
|
+
X = np.array([[1, 2], [3, 6]])
|
|
46
|
+
X = X.astype(dtype)
|
|
47
|
+
X_split = np.array_split(X, 2)
|
|
48
|
+
inccov = IncrementalEmpiricalCovariance()
|
|
49
|
+
|
|
50
|
+
for i in range(2):
|
|
51
|
+
inccov.partial_fit(X_split[i], queue=queue)
|
|
52
|
+
result = inccov.finalize_fit()
|
|
53
|
+
|
|
54
|
+
expected_covariance = np.array([[2, 4], [4, 8]])
|
|
55
|
+
expected_means = np.array([2, 4])
|
|
56
|
+
|
|
57
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
58
|
+
assert_allclose(expected_means, result.location_)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
62
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
63
|
+
def test_on_gold_data_biased(queue, dtype):
|
|
64
|
+
from onedal.covariance import IncrementalEmpiricalCovariance
|
|
65
|
+
|
|
66
|
+
X = np.array([[0, 1], [0, 1]])
|
|
67
|
+
X = X.astype(dtype)
|
|
68
|
+
X_split = np.array_split(X, 2)
|
|
69
|
+
inccov = IncrementalEmpiricalCovariance(bias=True)
|
|
70
|
+
|
|
71
|
+
for i in range(2):
|
|
72
|
+
inccov.partial_fit(X_split[i], queue=queue)
|
|
73
|
+
result = inccov.finalize_fit()
|
|
74
|
+
|
|
75
|
+
expected_covariance = np.array([[0, 0], [0, 0]])
|
|
76
|
+
expected_means = np.array([0, 1])
|
|
77
|
+
|
|
78
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
79
|
+
assert_allclose(expected_means, result.location_)
|
|
80
|
+
|
|
81
|
+
X = np.array([[1, 2], [3, 6]])
|
|
82
|
+
X = X.astype(dtype)
|
|
83
|
+
X_split = np.array_split(X, 2)
|
|
84
|
+
inccov = IncrementalEmpiricalCovariance(bias=True)
|
|
85
|
+
|
|
86
|
+
for i in range(2):
|
|
87
|
+
inccov.partial_fit(X_split[i], queue=queue)
|
|
88
|
+
result = inccov.finalize_fit()
|
|
89
|
+
|
|
90
|
+
expected_covariance = np.array([[1, 2], [2, 4]])
|
|
91
|
+
expected_means = np.array([2, 4])
|
|
92
|
+
|
|
93
|
+
assert_allclose(expected_covariance, result.covariance_)
|
|
94
|
+
assert_allclose(expected_means, result.location_)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
98
|
+
@pytest.mark.parametrize("num_batches", [2, 4, 6, 8, 10])
|
|
99
|
+
@pytest.mark.parametrize("row_count", [100, 1000, 2000])
|
|
100
|
+
@pytest.mark.parametrize("column_count", [10, 100, 200])
|
|
101
|
+
@pytest.mark.parametrize("bias", [True, False])
|
|
102
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
103
|
+
def test_partial_fit_on_random_data(
|
|
104
|
+
queue, num_batches, row_count, column_count, bias, dtype
|
|
105
|
+
):
|
|
106
|
+
from onedal.covariance import IncrementalEmpiricalCovariance
|
|
107
|
+
|
|
108
|
+
seed = 77
|
|
109
|
+
gen = np.random.default_rng(seed)
|
|
110
|
+
X = gen.uniform(low=-0.3, high=+0.7, size=(row_count, column_count))
|
|
111
|
+
X = X.astype(dtype)
|
|
112
|
+
X_split = np.array_split(X, num_batches)
|
|
113
|
+
inccov = IncrementalEmpiricalCovariance(bias=bias)
|
|
114
|
+
|
|
115
|
+
for i in range(num_batches):
|
|
116
|
+
inccov.partial_fit(X_split[i], queue=queue)
|
|
117
|
+
result = inccov.finalize_fit()
|
|
118
|
+
|
|
119
|
+
expected_covariance = np.cov(X.T, bias=bias)
|
|
120
|
+
expected_means = np.mean(X, axis=0)
|
|
121
|
+
|
|
122
|
+
assert_allclose(expected_covariance, result.covariance_, atol=1e-6)
|
|
123
|
+
assert_allclose(expected_means, result.location_, atol=1e-6)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
@pytest.mark.parametrize("queue", get_queues())
|
|
127
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
128
|
+
def test_incremental_estimator_pickle(queue, dtype):
|
|
129
|
+
import pickle
|
|
130
|
+
|
|
131
|
+
from onedal.covariance import IncrementalEmpiricalCovariance
|
|
132
|
+
|
|
133
|
+
inccov = IncrementalEmpiricalCovariance()
|
|
134
|
+
|
|
135
|
+
# Check that estimator can be serialized without any data.
|
|
136
|
+
dump = pickle.dumps(inccov)
|
|
137
|
+
inccov_loaded = pickle.loads(dump)
|
|
138
|
+
seed = 77
|
|
139
|
+
gen = np.random.default_rng(seed)
|
|
140
|
+
X = gen.uniform(low=-0.3, high=+0.7, size=(10, 10))
|
|
141
|
+
X = X.astype(dtype)
|
|
142
|
+
X_split = np.array_split(X, 2)
|
|
143
|
+
inccov.partial_fit(X_split[0], queue=queue)
|
|
144
|
+
inccov_loaded.partial_fit(X_split[0], queue=queue)
|
|
145
|
+
|
|
146
|
+
assert inccov._need_to_finalize == True
|
|
147
|
+
assert inccov_loaded._need_to_finalize == True
|
|
148
|
+
|
|
149
|
+
# Check that estimator can be serialized after partial_fit call.
|
|
150
|
+
dump = pickle.dumps(inccov)
|
|
151
|
+
inccov_loaded = pickle.loads(dump)
|
|
152
|
+
|
|
153
|
+
assert inccov._need_to_finalize == False
|
|
154
|
+
# Finalize is called during serialization to make sure partial results are finalized correctly.
|
|
155
|
+
assert inccov_loaded._need_to_finalize == False
|
|
156
|
+
|
|
157
|
+
partial_n_rows = from_table(inccov._partial_result.partial_n_rows)
|
|
158
|
+
partial_n_rows_loaded = from_table(inccov_loaded._partial_result.partial_n_rows)
|
|
159
|
+
assert_allclose(partial_n_rows, partial_n_rows_loaded)
|
|
160
|
+
|
|
161
|
+
partial_crossproduct = from_table(inccov._partial_result.partial_crossproduct)
|
|
162
|
+
partial_crossproduct_loaded = from_table(
|
|
163
|
+
inccov_loaded._partial_result.partial_crossproduct
|
|
164
|
+
)
|
|
165
|
+
assert_allclose(partial_crossproduct, partial_crossproduct_loaded)
|
|
166
|
+
|
|
167
|
+
partial_sums = from_table(inccov._partial_result.partial_sums)
|
|
168
|
+
partial_sums_loaded = from_table(inccov_loaded._partial_result.partial_sums)
|
|
169
|
+
assert_allclose(partial_sums, partial_sums_loaded)
|
|
170
|
+
|
|
171
|
+
inccov.partial_fit(X_split[1], queue=queue)
|
|
172
|
+
inccov_loaded.partial_fit(X_split[1], queue=queue)
|
|
173
|
+
assert inccov._need_to_finalize == True
|
|
174
|
+
assert inccov_loaded._need_to_finalize == True
|
|
175
|
+
|
|
176
|
+
dump = pickle.dumps(inccov_loaded)
|
|
177
|
+
inccov_loaded = pickle.loads(dump)
|
|
178
|
+
|
|
179
|
+
assert inccov._need_to_finalize == True
|
|
180
|
+
assert inccov_loaded._need_to_finalize == False
|
|
181
|
+
|
|
182
|
+
inccov.finalize_fit()
|
|
183
|
+
inccov_loaded.finalize_fit()
|
|
184
|
+
|
|
185
|
+
# Check that finalized estimator can be serialized.
|
|
186
|
+
dump = pickle.dumps(inccov_loaded)
|
|
187
|
+
inccov_loaded = pickle.loads(dump)
|
|
188
|
+
|
|
189
|
+
assert_allclose(inccov.location_, inccov_loaded.location_, atol=1e-6)
|
|
190
|
+
assert_allclose(inccov.covariance_, inccov_loaded.covariance_, atol=1e-6)
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
from ._data_conversion import from_table, return_type_constructor, to_table
|
|
18
|
+
from ._dlpack import dlpack_to_numpy, get_torch_queue
|
|
19
|
+
from ._sycl_usm import copy_to_dpnp, copy_to_usm
|
|
20
|
+
|
|
21
|
+
__all__ = [
|
|
22
|
+
"copy_to_dpnp",
|
|
23
|
+
"copy_to_usm",
|
|
24
|
+
"dlpack_to_numpy",
|
|
25
|
+
"from_table",
|
|
26
|
+
"get_torch_queue",
|
|
27
|
+
"to_table",
|
|
28
|
+
"return_type_constructor",
|
|
29
|
+
]
|