scikit-learn-intelex 2024.6.0__py310-none-win_amd64.whl → 2025.0.0__py310-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +242 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +241 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +318 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +196 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +155 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -2
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +87 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +118 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
- {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/__init__.py +83 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_config.py +53 -0
- {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal}/_device_offload.py +104 -132
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +560 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +116 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +75 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +95 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +235 -0
- {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +720 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +149 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +778 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/test_common.py +41 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +168 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +91 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/validation.py +432 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/_config.py +3 -15
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +121 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +140 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +5 -5
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +251 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +1 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -1
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +383 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +153 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +68 -17
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +46 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +25 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +113 -9
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +9 -36
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +9 -12
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +2 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +13 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +5 -6
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +418 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +2 -34
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +79 -59
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +24 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +13 -10
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +28 -3
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +46 -3
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +21 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +5 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +5 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +11 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +45 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +1 -20
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +1 -20
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +31 -7
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +8 -8
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +2 -2
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +19 -17
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +419 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +166 -0
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +19 -21
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +1 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +1 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +12 -20
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/_utils.py +143 -20
- scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/tests/_utils_spmd.py +198 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +4 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +2 -1
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +12 -4
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +16 -14
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +33 -20
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +1 -2
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +5 -20
- {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/METADATA +3 -2
- scikit_learn_intelex-2025.0.0.dist-info/RECORD +255 -0
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
- scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
- scikit_learn_intelex-2024.6.0.dist-info/RECORD +0 -108
- {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -0
- {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
- {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/top_level.txt +0 -0
|
@@ -16,13 +16,19 @@
|
|
|
16
16
|
|
|
17
17
|
import numpy as np
|
|
18
18
|
import pytest
|
|
19
|
+
from numpy.linalg import slogdet
|
|
19
20
|
from numpy.testing import assert_allclose
|
|
21
|
+
from scipy.linalg import pinvh
|
|
20
22
|
from sklearn.covariance.tests.test_covariance import (
|
|
21
23
|
test_covariance,
|
|
22
24
|
test_EmpiricalCovariance_validates_mahalanobis,
|
|
23
25
|
)
|
|
26
|
+
from sklearn.datasets import load_diabetes
|
|
27
|
+
from sklearn.decomposition import PCA
|
|
24
28
|
|
|
29
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
25
30
|
from onedal.tests.utils._dataframes_support import (
|
|
31
|
+
_as_numpy,
|
|
26
32
|
_convert_to_dataframe,
|
|
27
33
|
get_dataframes_and_queues,
|
|
28
34
|
)
|
|
@@ -32,6 +38,11 @@ from onedal.tests.utils._dataframes_support import (
|
|
|
32
38
|
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
33
39
|
@pytest.mark.parametrize("assume_centered", [True, False])
|
|
34
40
|
def test_sklearnex_partial_fit_on_gold_data(dataframe, queue, dtype, assume_centered):
|
|
41
|
+
is_gpu = queue is not None and queue.sycl_device.is_gpu
|
|
42
|
+
if assume_centered and is_gpu and not daal_check_version((2025, "P", 0)):
|
|
43
|
+
pytest.skip(
|
|
44
|
+
"Due to a bug on oneDAL side, means are not set to zero when assume_centered=True"
|
|
45
|
+
)
|
|
35
46
|
from sklearnex.covariance import IncrementalEmpiricalCovariance
|
|
36
47
|
|
|
37
48
|
X = np.array([[0, 1], [0, 1]])
|
|
@@ -138,6 +149,11 @@ def test_sklearnex_partial_fit_on_random_data(
|
|
|
138
149
|
def test_sklearnex_fit_on_random_data(
|
|
139
150
|
dataframe, queue, num_batches, row_count, column_count, dtype, assume_centered
|
|
140
151
|
):
|
|
152
|
+
is_gpu = queue is not None and queue.sycl_device.is_gpu
|
|
153
|
+
if assume_centered and is_gpu and not daal_check_version((2025, "P", 0)):
|
|
154
|
+
pytest.skip(
|
|
155
|
+
"Due to a bug on oneDAL side, means are not set to zero when assume_centered=True"
|
|
156
|
+
)
|
|
141
157
|
from sklearnex.covariance import IncrementalEmpiricalCovariance
|
|
142
158
|
|
|
143
159
|
seed = 77
|
|
@@ -163,6 +179,36 @@ def test_sklearnex_fit_on_random_data(
|
|
|
163
179
|
assert_allclose(expected_means, result.location_, atol=1e-6)
|
|
164
180
|
|
|
165
181
|
|
|
182
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
183
|
+
def test_whitened_toy_score(dataframe, queue):
|
|
184
|
+
from sklearnex.covariance import IncrementalEmpiricalCovariance
|
|
185
|
+
|
|
186
|
+
# Load a sklearn toy dataset with sufficient data
|
|
187
|
+
X, _ = load_diabetes(return_X_y=True)
|
|
188
|
+
n = X.shape[1]
|
|
189
|
+
|
|
190
|
+
# Transform the data into uncorrelated, unity variance components
|
|
191
|
+
X = PCA(whiten=True).fit_transform(X)
|
|
192
|
+
|
|
193
|
+
# change dataframe
|
|
194
|
+
X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
|
|
195
|
+
|
|
196
|
+
# fit data
|
|
197
|
+
est = IncrementalEmpiricalCovariance()
|
|
198
|
+
est.fit(X_df)
|
|
199
|
+
# location_ attribute approximately zero (10,), covariance_ identity (10,10)
|
|
200
|
+
|
|
201
|
+
# The log-likelihood can be calculated simply due to covariance_
|
|
202
|
+
# use of scipy.linalg.pinvh, np.linalg.sloget and np.cov for estimator
|
|
203
|
+
# independence
|
|
204
|
+
expected_result = (
|
|
205
|
+
-(n - slogdet(pinvh(np.cov(X.T, bias=1)))[1] + n * np.log(2 * np.pi)) / 2
|
|
206
|
+
)
|
|
207
|
+
# expected_result = -14.1780602988
|
|
208
|
+
result = _as_numpy(est.score(X_df))
|
|
209
|
+
assert_allclose(expected_result, result, atol=1e-6)
|
|
210
|
+
|
|
211
|
+
|
|
166
212
|
# Monkeypatch IncrementalEmpiricalCovariance into relevant sklearn.covariance tests
|
|
167
213
|
@pytest.mark.allow_sklearn_fallback
|
|
168
214
|
@pytest.mark.parametrize(
|
|
@@ -32,6 +32,7 @@ if daal_check_version((2024, "P", 100)):
|
|
|
32
32
|
|
|
33
33
|
from .._device_offload import dispatch, wrap_output_data
|
|
34
34
|
from .._utils import PatchingConditionsChain
|
|
35
|
+
from ..utils._array_api import get_namespace
|
|
35
36
|
|
|
36
37
|
if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
|
|
37
38
|
from sklearn.utils import check_scalar
|
|
@@ -42,7 +43,6 @@ if daal_check_version((2024, "P", 100)):
|
|
|
42
43
|
from sklearn.decomposition import PCA as sklearn_PCA
|
|
43
44
|
|
|
44
45
|
from onedal.decomposition import PCA as onedal_PCA
|
|
45
|
-
from sklearnex.utils import get_namespace
|
|
46
46
|
|
|
47
47
|
@control_n_jobs(decorated_methods=["fit", "transform", "fit_transform"])
|
|
48
48
|
class PCA(sklearn_PCA):
|
|
@@ -210,6 +210,29 @@ if daal_check_version((2024, "P", 100)):
|
|
|
210
210
|
# Scikit-learn PCA["covariance_eigh"] was fit
|
|
211
211
|
return self._transform(X_fit, xp, x_is_centered=x_is_centered)
|
|
212
212
|
|
|
213
|
+
@wrap_output_data
|
|
214
|
+
def inverse_transform(self, X):
|
|
215
|
+
xp, _ = get_namespace(X)
|
|
216
|
+
|
|
217
|
+
mean = self.mean_
|
|
218
|
+
if self.whiten:
|
|
219
|
+
components = (
|
|
220
|
+
xp.sqrt(self.explained_variance_[:, np.newaxis]) * self.components_
|
|
221
|
+
)
|
|
222
|
+
else:
|
|
223
|
+
components = self.components_
|
|
224
|
+
|
|
225
|
+
if "numpy" not in xp.__name__:
|
|
226
|
+
# DPCtl and dpnp require inputs to be on the same device for
|
|
227
|
+
# matrix multiplication and division. The type and location
|
|
228
|
+
# of the components and mean are dependent on the sklearn
|
|
229
|
+
# version, this makes sure it is of the same type and on the
|
|
230
|
+
# same device as the data (compute follows data).
|
|
231
|
+
components = xp.asarray(components, device=X.device)
|
|
232
|
+
mean = xp.asarray(mean, device=X.device)
|
|
233
|
+
|
|
234
|
+
return X @ components + mean
|
|
235
|
+
|
|
213
236
|
def _onedal_supported(self, method_name, X):
|
|
214
237
|
class_name = self.__class__.__name__
|
|
215
238
|
patching_status = PatchingConditionsChain(
|
|
@@ -381,6 +404,7 @@ if daal_check_version((2024, "P", 100)):
|
|
|
381
404
|
fit.__doc__ = sklearn_PCA.fit.__doc__
|
|
382
405
|
transform.__doc__ = sklearn_PCA.transform.__doc__
|
|
383
406
|
fit_transform.__doc__ = sklearn_PCA.fit_transform.__doc__
|
|
407
|
+
inverse_transform.__doc__ = sklearn_PCA.inverse_transform.__doc__
|
|
384
408
|
|
|
385
409
|
else:
|
|
386
410
|
from daal4py.sklearn.decomposition import PCA
|
|
@@ -48,25 +48,17 @@ def get_patch_map_core(preview=False):
|
|
|
48
48
|
import sklearn.decomposition as decomposition_module
|
|
49
49
|
|
|
50
50
|
# Preview classes for patching
|
|
51
|
-
from .preview.cluster import KMeans as KMeans_sklearnex
|
|
52
51
|
from .preview.covariance import (
|
|
53
52
|
EmpiricalCovariance as EmpiricalCovariance_sklearnex,
|
|
54
53
|
)
|
|
55
54
|
from .preview.decomposition import IncrementalPCA as IncrementalPCA_sklearnex
|
|
55
|
+
from .preview.linear_model import Ridge as Ridge_sklearnex
|
|
56
56
|
|
|
57
57
|
# Since the state of the lru_cache without preview cannot be
|
|
58
58
|
# guaranteed to not have already enabled sklearnex algorithms
|
|
59
59
|
# when preview is used, setting the mapping element[1] to None
|
|
60
60
|
# should NOT be done. This may lose track of the unpatched
|
|
61
61
|
# sklearn estimator or function.
|
|
62
|
-
# KMeans
|
|
63
|
-
cluster_module, _, _ = mapping["kmeans"][0][0]
|
|
64
|
-
sklearn_obj = mapping["kmeans"][0][1]
|
|
65
|
-
mapping.pop("kmeans")
|
|
66
|
-
mapping["kmeans"] = [
|
|
67
|
-
[(cluster_module, "KMeans", KMeans_sklearnex), sklearn_obj]
|
|
68
|
-
]
|
|
69
|
-
|
|
70
62
|
# Covariance
|
|
71
63
|
mapping["empiricalcovariance"] = [
|
|
72
64
|
[
|
|
@@ -90,6 +82,15 @@ def get_patch_map_core(preview=False):
|
|
|
90
82
|
None,
|
|
91
83
|
]
|
|
92
84
|
]
|
|
85
|
+
|
|
86
|
+
# Ridge
|
|
87
|
+
linear_model_module, _, _ = mapping["ridge"][0][0]
|
|
88
|
+
sklearn_obj = mapping["ridge"][0][1]
|
|
89
|
+
mapping.pop("ridge")
|
|
90
|
+
mapping["ridge"] = [
|
|
91
|
+
[(linear_model_module, "Ridge", Ridge_sklearnex), sklearn_obj]
|
|
92
|
+
]
|
|
93
|
+
|
|
93
94
|
return mapping
|
|
94
95
|
|
|
95
96
|
from daal4py.sklearn.monkeypatch.dispatcher import _get_map_of_algorithms
|
|
@@ -111,6 +112,9 @@ def get_patch_map_core(preview=False):
|
|
|
111
112
|
import sklearn.decomposition as decomposition_module
|
|
112
113
|
import sklearn.ensemble as ensemble_module
|
|
113
114
|
import sklearn.linear_model as linear_model_module
|
|
115
|
+
import sklearn.manifold as manifold_module
|
|
116
|
+
import sklearn.metrics as metrics_module
|
|
117
|
+
import sklearn.model_selection as model_selection_module
|
|
114
118
|
import sklearn.neighbors as neighbors_module
|
|
115
119
|
import sklearn.svm as svm_module
|
|
116
120
|
|
|
@@ -130,6 +134,7 @@ def get_patch_map_core(preview=False):
|
|
|
130
134
|
from .utils.parallel import _FuncWrapperOld as _FuncWrapper_sklearnex
|
|
131
135
|
|
|
132
136
|
from .cluster import DBSCAN as DBSCAN_sklearnex
|
|
137
|
+
from .cluster import KMeans as KMeans_sklearnex
|
|
133
138
|
from .covariance import (
|
|
134
139
|
IncrementalEmpiricalCovariance as IncrementalEmpiricalCovariance_sklearnex,
|
|
135
140
|
)
|
|
@@ -138,11 +143,19 @@ def get_patch_map_core(preview=False):
|
|
|
138
143
|
from .ensemble import ExtraTreesRegressor as ExtraTreesRegressor_sklearnex
|
|
139
144
|
from .ensemble import RandomForestClassifier as RandomForestClassifier_sklearnex
|
|
140
145
|
from .ensemble import RandomForestRegressor as RandomForestRegressor_sklearnex
|
|
146
|
+
from .linear_model import ElasticNet as ElasticNet_sklearnex
|
|
141
147
|
from .linear_model import (
|
|
142
148
|
IncrementalLinearRegression as IncrementalLinearRegression_sklearnex,
|
|
143
149
|
)
|
|
150
|
+
from .linear_model import IncrementalRidge as IncrementalRidge_sklearnex
|
|
151
|
+
from .linear_model import Lasso as Lasso_sklearnex
|
|
144
152
|
from .linear_model import LinearRegression as LinearRegression_sklearnex
|
|
145
153
|
from .linear_model import LogisticRegression as LogisticRegression_sklearnex
|
|
154
|
+
from .linear_model import Ridge as Ridge_sklearnex
|
|
155
|
+
from .manifold import TSNE as TSNE_sklearnex
|
|
156
|
+
from .metrics import pairwise_distances as pairwise_distances_sklearnex
|
|
157
|
+
from .metrics import roc_auc_score as roc_auc_score_sklearnex
|
|
158
|
+
from .model_selection import train_test_split as train_test_split_sklearnex
|
|
146
159
|
from .neighbors import KNeighborsClassifier as KNeighborsClassifier_sklearnex
|
|
147
160
|
from .neighbors import KNeighborsRegressor as KNeighborsRegressor_sklearnex
|
|
148
161
|
from .neighbors import LocalOutlierFactor as LocalOutlierFactor_sklearnex
|
|
@@ -156,6 +169,10 @@ def get_patch_map_core(preview=False):
|
|
|
156
169
|
mapping.pop("dbscan")
|
|
157
170
|
mapping["dbscan"] = [[(cluster_module, "DBSCAN", DBSCAN_sklearnex), None]]
|
|
158
171
|
|
|
172
|
+
# KMeans
|
|
173
|
+
mapping.pop("kmeans")
|
|
174
|
+
mapping["kmeans"] = [[(cluster_module, "KMeans", KMeans_sklearnex), None]]
|
|
175
|
+
|
|
159
176
|
# PCA
|
|
160
177
|
mapping.pop("pca")
|
|
161
178
|
mapping["pca"] = [[(decomposition_module, "PCA", PCA_sklearnex), None]]
|
|
@@ -168,6 +185,32 @@ def get_patch_map_core(preview=False):
|
|
|
168
185
|
mapping["nusvr"] = [[(svm_module, "NuSVR", NuSVR_sklearnex), None]]
|
|
169
186
|
mapping["nusvc"] = [[(svm_module, "NuSVC", NuSVC_sklearnex), None]]
|
|
170
187
|
|
|
188
|
+
# ElasticNet
|
|
189
|
+
mapping.pop("elasticnet")
|
|
190
|
+
mapping["elasticnet"] = [
|
|
191
|
+
[
|
|
192
|
+
(
|
|
193
|
+
linear_model_module,
|
|
194
|
+
"ElasticNet",
|
|
195
|
+
ElasticNet_sklearnex,
|
|
196
|
+
),
|
|
197
|
+
None,
|
|
198
|
+
]
|
|
199
|
+
]
|
|
200
|
+
|
|
201
|
+
# Lasso
|
|
202
|
+
mapping.pop("lasso")
|
|
203
|
+
mapping["lasso"] = [
|
|
204
|
+
[
|
|
205
|
+
(
|
|
206
|
+
linear_model_module,
|
|
207
|
+
"Lasso",
|
|
208
|
+
Lasso_sklearnex,
|
|
209
|
+
),
|
|
210
|
+
None,
|
|
211
|
+
]
|
|
212
|
+
]
|
|
213
|
+
|
|
171
214
|
# Linear Regression
|
|
172
215
|
mapping.pop("linear")
|
|
173
216
|
mapping.pop("linearregression")
|
|
@@ -201,6 +244,54 @@ def get_patch_map_core(preview=False):
|
|
|
201
244
|
]
|
|
202
245
|
mapping["logisticregression"] = mapping["log_reg"]
|
|
203
246
|
|
|
247
|
+
# Ridge
|
|
248
|
+
mapping.pop("ridge")
|
|
249
|
+
mapping["ridge"] = [
|
|
250
|
+
[
|
|
251
|
+
(
|
|
252
|
+
linear_model_module,
|
|
253
|
+
"Ridge",
|
|
254
|
+
Ridge_sklearnex,
|
|
255
|
+
),
|
|
256
|
+
None,
|
|
257
|
+
]
|
|
258
|
+
]
|
|
259
|
+
|
|
260
|
+
# manifold
|
|
261
|
+
mapping.pop("tsne")
|
|
262
|
+
mapping["tsne"] = [
|
|
263
|
+
[
|
|
264
|
+
(manifold_module, "TSNE", TSNE_sklearnex),
|
|
265
|
+
None,
|
|
266
|
+
]
|
|
267
|
+
]
|
|
268
|
+
|
|
269
|
+
# metrics
|
|
270
|
+
mapping.pop("distances")
|
|
271
|
+
mapping.pop("roc_auc_score")
|
|
272
|
+
mapping["distances"] = [
|
|
273
|
+
[
|
|
274
|
+
(metrics_module, "pairwise_distances", pairwise_distances_sklearnex),
|
|
275
|
+
None,
|
|
276
|
+
]
|
|
277
|
+
]
|
|
278
|
+
mapping["pairwise_distances"] = mapping["distances"]
|
|
279
|
+
mapping["roc_auc_score"] = [
|
|
280
|
+
[
|
|
281
|
+
(metrics_module, "roc_auc_score", roc_auc_score_sklearnex),
|
|
282
|
+
None,
|
|
283
|
+
]
|
|
284
|
+
]
|
|
285
|
+
|
|
286
|
+
# model_selection
|
|
287
|
+
mapping.pop("train_test_split")
|
|
288
|
+
mapping["train_test_split"] = [
|
|
289
|
+
[
|
|
290
|
+
(model_selection_module, "train_test_split", train_test_split_sklearnex),
|
|
291
|
+
None,
|
|
292
|
+
]
|
|
293
|
+
]
|
|
294
|
+
|
|
204
295
|
# kNN
|
|
205
296
|
mapping.pop("knn_classifier")
|
|
206
297
|
mapping.pop("kneighborsclassifier")
|
|
@@ -318,6 +409,19 @@ def get_patch_map_core(preview=False):
|
|
|
318
409
|
]
|
|
319
410
|
]
|
|
320
411
|
|
|
412
|
+
if daal_check_version((2024, "P", 600)):
|
|
413
|
+
# IncrementalRidge
|
|
414
|
+
mapping["incrementalridge"] = [
|
|
415
|
+
[
|
|
416
|
+
(
|
|
417
|
+
linear_model_module,
|
|
418
|
+
"IncrementalRidge",
|
|
419
|
+
IncrementalRidge_sklearnex,
|
|
420
|
+
),
|
|
421
|
+
None,
|
|
422
|
+
]
|
|
423
|
+
]
|
|
424
|
+
|
|
321
425
|
# Configs
|
|
322
426
|
mapping["set_config"] = [
|
|
323
427
|
[(base_module, "set_config", set_config_sklearnex), None]
|
|
@@ -38,7 +38,12 @@ from sklearn.tree import (
|
|
|
38
38
|
)
|
|
39
39
|
from sklearn.tree._tree import Tree
|
|
40
40
|
from sklearn.utils import check_random_state, deprecated
|
|
41
|
-
from sklearn.utils.validation import
|
|
41
|
+
from sklearn.utils.validation import (
|
|
42
|
+
_check_sample_weight,
|
|
43
|
+
check_array,
|
|
44
|
+
check_is_fitted,
|
|
45
|
+
check_X_y,
|
|
46
|
+
)
|
|
42
47
|
|
|
43
48
|
from daal4py.sklearn._n_jobs_support import control_n_jobs
|
|
44
49
|
from daal4py.sklearn._utils import (
|
|
@@ -52,10 +57,10 @@ from onedal.ensemble import RandomForestClassifier as onedal_RandomForestClassif
|
|
|
52
57
|
from onedal.ensemble import RandomForestRegressor as onedal_RandomForestRegressor
|
|
53
58
|
from onedal.primitives import get_tree_state_cls, get_tree_state_reg
|
|
54
59
|
from onedal.utils import _num_features, _num_samples
|
|
55
|
-
from sklearnex.utils import get_namespace
|
|
56
60
|
|
|
57
61
|
from .._device_offload import dispatch, wrap_output_data
|
|
58
62
|
from .._utils import PatchingConditionsChain
|
|
63
|
+
from ..utils._array_api import get_namespace
|
|
59
64
|
|
|
60
65
|
if sklearn_check_version("1.2"):
|
|
61
66
|
from sklearn.utils._param_validation import Interval
|
|
@@ -70,7 +75,7 @@ class BaseForest(ABC):
|
|
|
70
75
|
X, y = self._validate_data(
|
|
71
76
|
X,
|
|
72
77
|
y,
|
|
73
|
-
multi_output=
|
|
78
|
+
multi_output=True,
|
|
74
79
|
accept_sparse=False,
|
|
75
80
|
dtype=[np.float64, np.float32],
|
|
76
81
|
force_all_finite=False,
|
|
@@ -78,7 +83,7 @@ class BaseForest(ABC):
|
|
|
78
83
|
)
|
|
79
84
|
|
|
80
85
|
if sample_weight is not None:
|
|
81
|
-
sample_weight =
|
|
86
|
+
sample_weight = _check_sample_weight(sample_weight, X)
|
|
82
87
|
|
|
83
88
|
if y.ndim == 2 and y.shape[1] == 1:
|
|
84
89
|
warnings.warn(
|
|
@@ -289,38 +294,6 @@ class BaseForest(ABC):
|
|
|
289
294
|
"min_bin_size must be integral number but was " "%r" % self.min_bin_size
|
|
290
295
|
)
|
|
291
296
|
|
|
292
|
-
def check_sample_weight(self, sample_weight, X, dtype=None):
|
|
293
|
-
n_samples = _num_samples(X)
|
|
294
|
-
|
|
295
|
-
if dtype is not None and dtype not in [np.float32, np.float64]:
|
|
296
|
-
dtype = np.float64
|
|
297
|
-
|
|
298
|
-
if sample_weight is None:
|
|
299
|
-
sample_weight = np.ones(n_samples, dtype=dtype)
|
|
300
|
-
elif isinstance(sample_weight, numbers.Number):
|
|
301
|
-
sample_weight = np.full(n_samples, sample_weight, dtype=dtype)
|
|
302
|
-
else:
|
|
303
|
-
if dtype is None:
|
|
304
|
-
dtype = [np.float64, np.float32]
|
|
305
|
-
sample_weight = check_array(
|
|
306
|
-
sample_weight,
|
|
307
|
-
accept_sparse=False,
|
|
308
|
-
ensure_2d=False,
|
|
309
|
-
dtype=dtype,
|
|
310
|
-
order="C",
|
|
311
|
-
force_all_finite=False,
|
|
312
|
-
)
|
|
313
|
-
if sample_weight.ndim != 1:
|
|
314
|
-
raise ValueError("Sample weights must be 1D array or scalar")
|
|
315
|
-
|
|
316
|
-
if sample_weight.shape != (n_samples,):
|
|
317
|
-
raise ValueError(
|
|
318
|
-
"sample_weight.shape == {}, expected {}!".format(
|
|
319
|
-
sample_weight.shape, (n_samples,)
|
|
320
|
-
)
|
|
321
|
-
)
|
|
322
|
-
return sample_weight
|
|
323
|
-
|
|
324
297
|
@property
|
|
325
298
|
def estimators_(self):
|
|
326
299
|
if hasattr(self, "_cached_estimators_"):
|
|
@@ -46,11 +46,10 @@ def test_sklearnex_import_rf_classifier(dataframe, queue):
|
|
|
46
46
|
assert_allclose([1], _as_numpy(rf.predict([[0, 0, 0, 0]])))
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
@pytest.mark.parametrize(
|
|
51
|
-
"dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
|
|
52
|
-
)
|
|
49
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
53
50
|
def test_sklearnex_import_rf_regression(dataframe, queue):
|
|
51
|
+
if queue and queue.sycl_device.is_gpu:
|
|
52
|
+
pytest.skip("RF regressor predict for the GPU sycl_queue is buggy.")
|
|
54
53
|
from sklearnex.ensemble import RandomForestRegressor
|
|
55
54
|
|
|
56
55
|
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)
|
|
@@ -69,11 +68,10 @@ def test_sklearnex_import_rf_regression(dataframe, queue):
|
|
|
69
68
|
assert_allclose([-6.839], pred, atol=1e-2)
|
|
70
69
|
|
|
71
70
|
|
|
72
|
-
|
|
73
|
-
@pytest.mark.parametrize(
|
|
74
|
-
"dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
|
|
75
|
-
)
|
|
71
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
76
72
|
def test_sklearnex_import_et_classifier(dataframe, queue):
|
|
73
|
+
if queue and queue.sycl_device.is_gpu:
|
|
74
|
+
pytest.skip("ET classifier predict for the GPU sycl_queue is buggy.")
|
|
77
75
|
from sklearnex.ensemble import ExtraTreesClassifier
|
|
78
76
|
|
|
79
77
|
X, y = make_classification(
|
|
@@ -93,11 +91,10 @@ def test_sklearnex_import_et_classifier(dataframe, queue):
|
|
|
93
91
|
assert_allclose([1], _as_numpy(rf.predict([[0, 0, 0, 0]])))
|
|
94
92
|
|
|
95
93
|
|
|
96
|
-
|
|
97
|
-
@pytest.mark.parametrize(
|
|
98
|
-
"dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
|
|
99
|
-
)
|
|
94
|
+
@pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
|
|
100
95
|
def test_sklearnex_import_et_regression(dataframe, queue):
|
|
96
|
+
if queue and queue.sycl_device.is_gpu:
|
|
97
|
+
pytest.skip("ET regressor predict for the GPU sycl_queue is buggy.")
|
|
101
98
|
from sklearnex.ensemble import ExtraTreesRegressor
|
|
102
99
|
|
|
103
100
|
X, y = make_regression(n_features=1, random_state=0, shuffle=False)
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
from .coordinate_descent import ElasticNet, Lasso
|
|
18
18
|
from .incremental_linear import IncrementalLinearRegression
|
|
19
|
+
from .incremental_ridge import IncrementalRidge
|
|
19
20
|
from .linear import LinearRegression
|
|
20
21
|
from .logistic_regression import LogisticRegression
|
|
21
22
|
from .ridge import Ridge
|
|
@@ -23,6 +24,7 @@ from .ridge import Ridge
|
|
|
23
24
|
__all__ = [
|
|
24
25
|
"ElasticNet",
|
|
25
26
|
"IncrementalLinearRegression",
|
|
27
|
+
"IncrementalRidge",
|
|
26
28
|
"Lasso",
|
|
27
29
|
"LinearRegression",
|
|
28
30
|
"LogisticRegression",
|
|
@@ -15,3 +15,16 @@
|
|
|
15
15
|
# ===============================================================================
|
|
16
16
|
|
|
17
17
|
from daal4py.sklearn.linear_model import ElasticNet, Lasso
|
|
18
|
+
from onedal._device_offload import support_input_format
|
|
19
|
+
|
|
20
|
+
# Note: `sklearnex.linear_model.ElasticNet` only has functional
|
|
21
|
+
# sycl GPU support. No GPU device will be offloaded.
|
|
22
|
+
ElasticNet.fit = support_input_format(queue_param=False)(ElasticNet.fit)
|
|
23
|
+
ElasticNet.predict = support_input_format(queue_param=False)(ElasticNet.predict)
|
|
24
|
+
ElasticNet.score = support_input_format(queue_param=False)(ElasticNet.score)
|
|
25
|
+
|
|
26
|
+
# Note: `sklearnex.linear_model.Lasso` only has functional
|
|
27
|
+
# sycl GPU support. No GPU device will be offloaded.
|
|
28
|
+
Lasso.fit = support_input_format(queue_param=False)(Lasso.fit)
|
|
29
|
+
Lasso.predict = support_input_format(queue_param=False)(Lasso.predict)
|
|
30
|
+
Lasso.score = support_input_format(queue_param=False)(Lasso.score)
|
|
@@ -147,7 +147,7 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
|
|
|
147
147
|
assert hasattr(self, "_onedal_estimator")
|
|
148
148
|
if self._need_to_finalize:
|
|
149
149
|
self._onedal_finalize_fit()
|
|
150
|
-
return self._onedal_estimator.predict(X, queue)
|
|
150
|
+
return self._onedal_estimator.predict(X, queue=queue)
|
|
151
151
|
|
|
152
152
|
def _onedal_score(self, X, y, sample_weight=None, queue=None):
|
|
153
153
|
return r2_score(
|
|
@@ -194,17 +194,17 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
|
|
|
194
194
|
onedal_params = {"fit_intercept": self.fit_intercept, "copy_X": self.copy_X}
|
|
195
195
|
if not hasattr(self, "_onedal_estimator"):
|
|
196
196
|
self._onedal_estimator = self._onedal_incremental_linear(**onedal_params)
|
|
197
|
-
self._onedal_estimator.partial_fit(X, y, queue)
|
|
197
|
+
self._onedal_estimator.partial_fit(X, y, queue=queue)
|
|
198
198
|
self._need_to_finalize = True
|
|
199
199
|
|
|
200
|
-
def _onedal_finalize_fit(self):
|
|
200
|
+
def _onedal_finalize_fit(self, queue=None):
|
|
201
201
|
assert hasattr(self, "_onedal_estimator")
|
|
202
202
|
is_underdetermined = self.n_samples_seen_ < self.n_features_in_ + int(
|
|
203
203
|
self.fit_intercept
|
|
204
204
|
)
|
|
205
205
|
if is_underdetermined:
|
|
206
206
|
raise ValueError("Not enough samples to finalize")
|
|
207
|
-
self._onedal_estimator.finalize_fit()
|
|
207
|
+
self._onedal_estimator.finalize_fit(queue=queue)
|
|
208
208
|
self._need_to_finalize = False
|
|
209
209
|
|
|
210
210
|
def _onedal_fit(self, X, y, queue=None):
|
|
@@ -263,8 +263,7 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
|
|
|
263
263
|
"Only one sample available. You may want to reshape your data array"
|
|
264
264
|
)
|
|
265
265
|
|
|
266
|
-
self._onedal_finalize_fit()
|
|
267
|
-
|
|
266
|
+
self._onedal_finalize_fit(queue=queue)
|
|
268
267
|
return self
|
|
269
268
|
|
|
270
269
|
def get_intercept_(self):
|