scikit-learn-intelex 2024.4.0__py312-none-win_amd64.whl → 2025.10.0__py312-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -28
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/neighbors/__init__.py +19 -19
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__init__.py +7 -3
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +128 -78
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +101 -32
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +38 -29
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/conftest.py +20 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +199 -21
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -17
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +288 -440
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +17 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +11 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +3 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +30 -62
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +56 -9
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +45 -101
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +63 -94
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +49 -25
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +6 -4
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +54 -8
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +9 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +3 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +1 -3
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +99 -117
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +55 -16
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +95 -113
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +51 -16
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +43 -20
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +5 -4
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +122 -75
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
- scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
- scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/WHEEL +1 -1
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_config.py +0 -110
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -250
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_utils.py +0 -109
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -130
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -143
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -335
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -56
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -113
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -316
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -385
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -117
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -91
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -133
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -185
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -164
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -39
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -227
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -99
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -20
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py +0 -97
- scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
- scikit_learn_intelex-2024.4.0.dist-info/METADATA +0 -230
- scikit_learn_intelex-2024.4.0.dist-info/RECORD +0 -101
- {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/top_level.txt +0 -0
scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright contributors to the oneDAL project
|
|
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 numpy.random as rand
|
|
19
|
+
import pytest
|
|
20
|
+
|
|
21
|
+
from daal4py.sklearn._utils import sklearn_check_version
|
|
22
|
+
from onedal.tests.utils._dataframes_support import (
|
|
23
|
+
_convert_to_dataframe,
|
|
24
|
+
get_dataframes_and_queues,
|
|
25
|
+
)
|
|
26
|
+
from sklearnex import config_context
|
|
27
|
+
from sklearnex.tests.utils import DummyEstimator, gen_dataset
|
|
28
|
+
from sklearnex.utils.validation import _check_sample_weight, validate_data
|
|
29
|
+
|
|
30
|
+
# array_api support starts in sklearn 1.2, and array_api_strict conformance starts in sklearn 1.3
|
|
31
|
+
_dataframes_supported = (
|
|
32
|
+
"numpy,pandas"
|
|
33
|
+
+ (",dpctl" if sklearn_check_version("1.2") else "")
|
|
34
|
+
+ (",array_api" if sklearn_check_version("1.3") else "")
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
39
|
+
@pytest.mark.parametrize(
|
|
40
|
+
"shape",
|
|
41
|
+
[
|
|
42
|
+
[16, 2048],
|
|
43
|
+
[2**16 + 3],
|
|
44
|
+
[1000, 1000],
|
|
45
|
+
],
|
|
46
|
+
)
|
|
47
|
+
@pytest.mark.parametrize("ensure_all_finite", ["allow-nan", True])
|
|
48
|
+
def test_sum_infinite_actually_finite(dtype, shape, ensure_all_finite):
|
|
49
|
+
est = DummyEstimator()
|
|
50
|
+
X = np.empty(shape, dtype=dtype)
|
|
51
|
+
X.fill(np.finfo(dtype).max)
|
|
52
|
+
X = np.atleast_2d(X)
|
|
53
|
+
X_array = validate_data(est, X, ensure_all_finite=ensure_all_finite)
|
|
54
|
+
assert type(X_array) == type(X)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
58
|
+
@pytest.mark.parametrize(
|
|
59
|
+
"shape",
|
|
60
|
+
[
|
|
61
|
+
[16, 2048],
|
|
62
|
+
[2**16 + 3],
|
|
63
|
+
[1000, 1000],
|
|
64
|
+
],
|
|
65
|
+
)
|
|
66
|
+
@pytest.mark.parametrize("ensure_all_finite", ["allow-nan", True])
|
|
67
|
+
@pytest.mark.parametrize("check", ["inf", "NaN", None])
|
|
68
|
+
@pytest.mark.parametrize("seed", [0, 123456])
|
|
69
|
+
@pytest.mark.parametrize(
|
|
70
|
+
"dataframe, queue",
|
|
71
|
+
get_dataframes_and_queues(_dataframes_supported),
|
|
72
|
+
)
|
|
73
|
+
def test_validate_data_random_location(
|
|
74
|
+
dataframe, queue, dtype, shape, ensure_all_finite, check, seed
|
|
75
|
+
):
|
|
76
|
+
est = DummyEstimator()
|
|
77
|
+
rand.seed(seed)
|
|
78
|
+
X = rand.uniform(high=np.finfo(dtype).max, size=shape).astype(dtype)
|
|
79
|
+
|
|
80
|
+
if check:
|
|
81
|
+
loc = rand.randint(0, X.size - 1)
|
|
82
|
+
X.reshape((-1,))[loc] = float(check)
|
|
83
|
+
|
|
84
|
+
# column heavy pandas inputs are very slow in sklearn's check_array even without
|
|
85
|
+
# the finite check, just transpose inputs to guarantee fast processing in tests
|
|
86
|
+
X = _convert_to_dataframe(
|
|
87
|
+
np.atleast_2d(X).T,
|
|
88
|
+
target_df=dataframe,
|
|
89
|
+
sycl_queue=queue,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
dispatch = {}
|
|
93
|
+
if sklearn_check_version("1.2") and dataframe != "pandas":
|
|
94
|
+
dispatch["array_api_dispatch"] = True
|
|
95
|
+
|
|
96
|
+
with config_context(**dispatch):
|
|
97
|
+
|
|
98
|
+
allow_nan = ensure_all_finite == "allow-nan"
|
|
99
|
+
if check is None or (allow_nan and check == "NaN"):
|
|
100
|
+
validate_data(est, X, ensure_all_finite=ensure_all_finite)
|
|
101
|
+
else:
|
|
102
|
+
type_err = "infinity" if allow_nan else "[NaN|infinity]"
|
|
103
|
+
msg_err = f"Input X contains {type_err}"
|
|
104
|
+
with pytest.raises(ValueError, match=msg_err):
|
|
105
|
+
validate_data(est, X, ensure_all_finite=ensure_all_finite)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
109
|
+
@pytest.mark.parametrize("ensure_all_finite", ["allow-nan", True])
|
|
110
|
+
@pytest.mark.parametrize("check", ["inf", "NaN", None])
|
|
111
|
+
@pytest.mark.parametrize("seed", [0, 123456])
|
|
112
|
+
@pytest.mark.parametrize(
|
|
113
|
+
"dataframe, queue",
|
|
114
|
+
get_dataframes_and_queues(_dataframes_supported),
|
|
115
|
+
)
|
|
116
|
+
def test_validate_data_random_shape_and_location(
|
|
117
|
+
dataframe, queue, dtype, ensure_all_finite, check, seed
|
|
118
|
+
):
|
|
119
|
+
est = DummyEstimator()
|
|
120
|
+
lb, ub = 32768, 1048576 # lb is a patching condition, ub 2^20
|
|
121
|
+
rand.seed(seed)
|
|
122
|
+
X = rand.uniform(high=np.finfo(dtype).max, size=rand.randint(lb, ub)).astype(dtype)
|
|
123
|
+
|
|
124
|
+
if check:
|
|
125
|
+
loc = rand.randint(0, X.size - 1)
|
|
126
|
+
X[loc] = float(check)
|
|
127
|
+
|
|
128
|
+
X = _convert_to_dataframe(
|
|
129
|
+
np.atleast_2d(X).T,
|
|
130
|
+
target_df=dataframe,
|
|
131
|
+
sycl_queue=queue,
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
dispatch = {}
|
|
135
|
+
if sklearn_check_version("1.2") and dataframe != "pandas":
|
|
136
|
+
dispatch["array_api_dispatch"] = True
|
|
137
|
+
|
|
138
|
+
with config_context(**dispatch):
|
|
139
|
+
|
|
140
|
+
allow_nan = ensure_all_finite == "allow-nan"
|
|
141
|
+
if check is None or (allow_nan and check == "NaN"):
|
|
142
|
+
validate_data(est, X, ensure_all_finite=ensure_all_finite)
|
|
143
|
+
else:
|
|
144
|
+
type_err = "infinity" if allow_nan else "[NaN|infinity]"
|
|
145
|
+
msg_err = f"Input X contains {type_err}."
|
|
146
|
+
with pytest.raises(ValueError, match=msg_err):
|
|
147
|
+
validate_data(est, X, ensure_all_finite=ensure_all_finite)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
151
|
+
@pytest.mark.parametrize("check", ["inf", "NaN", None])
|
|
152
|
+
@pytest.mark.parametrize("seed", [0, 123456])
|
|
153
|
+
@pytest.mark.parametrize(
|
|
154
|
+
"dataframe, queue",
|
|
155
|
+
get_dataframes_and_queues(_dataframes_supported),
|
|
156
|
+
)
|
|
157
|
+
def test__check_sample_weight_random_shape_and_location(
|
|
158
|
+
dataframe, queue, dtype, check, seed
|
|
159
|
+
):
|
|
160
|
+
# This testing assumes that array api inputs to validate_data will only occur
|
|
161
|
+
# with sklearn array_api support which began in sklearn 1.2. This would assume
|
|
162
|
+
# that somewhere upstream of the validate_data call, a data conversion of dpnp,
|
|
163
|
+
# dpctl, or array_api inputs to numpy inputs would have occurred.
|
|
164
|
+
|
|
165
|
+
lb, ub = 32768, 1048576 # lb is a patching condition, ub 2^20
|
|
166
|
+
rand.seed(seed)
|
|
167
|
+
shape = (rand.randint(lb, ub), 2)
|
|
168
|
+
X = rand.uniform(high=np.finfo(dtype).max, size=shape).astype(dtype)
|
|
169
|
+
sample_weight = rand.uniform(high=np.finfo(dtype).max, size=shape[0]).astype(dtype)
|
|
170
|
+
|
|
171
|
+
if check:
|
|
172
|
+
loc = rand.randint(0, shape[0] - 1)
|
|
173
|
+
sample_weight[loc] = float(check)
|
|
174
|
+
|
|
175
|
+
X = _convert_to_dataframe(
|
|
176
|
+
X,
|
|
177
|
+
target_df=dataframe,
|
|
178
|
+
sycl_queue=queue,
|
|
179
|
+
)
|
|
180
|
+
sample_weight = _convert_to_dataframe(
|
|
181
|
+
sample_weight,
|
|
182
|
+
target_df=dataframe,
|
|
183
|
+
sycl_queue=queue,
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
dispatch = {}
|
|
187
|
+
if sklearn_check_version("1.2") and dataframe != "pandas":
|
|
188
|
+
dispatch["array_api_dispatch"] = True
|
|
189
|
+
|
|
190
|
+
with config_context(**dispatch):
|
|
191
|
+
|
|
192
|
+
if check is None:
|
|
193
|
+
X_out = _check_sample_weight(sample_weight, X)
|
|
194
|
+
if dispatch:
|
|
195
|
+
assert type(X_out) == type(X)
|
|
196
|
+
else:
|
|
197
|
+
assert isinstance(X_out, np.ndarray)
|
|
198
|
+
else:
|
|
199
|
+
msg_err = "Input sample_weight contains [NaN|infinity]"
|
|
200
|
+
with pytest.raises(ValueError, match=msg_err):
|
|
201
|
+
X_out = _check_sample_weight(sample_weight, X)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
@pytest.mark.parametrize("dtype", [np.float32, np.float64])
|
|
205
|
+
@pytest.mark.parametrize(
|
|
206
|
+
"dataframe, queue",
|
|
207
|
+
get_dataframes_and_queues(_dataframes_supported),
|
|
208
|
+
)
|
|
209
|
+
def test_validate_data_output(dtype, dataframe, queue):
|
|
210
|
+
# This testing assumes that array api inputs to validate_data will only occur
|
|
211
|
+
# with sklearn array_api support which began in sklearn 1.2. This would assume
|
|
212
|
+
# that somewhere upstream of the validate_data call, a data conversion of dpnp,
|
|
213
|
+
# dpctl, or array_api inputs to numpy inputs would have occurred.
|
|
214
|
+
est = DummyEstimator()
|
|
215
|
+
X, y = gen_dataset(est, queue=queue, target_df=dataframe, dtype=dtype)[0]
|
|
216
|
+
|
|
217
|
+
dispatch = {}
|
|
218
|
+
if sklearn_check_version("1.2") and dataframe != "pandas":
|
|
219
|
+
dispatch["array_api_dispatch"] = True
|
|
220
|
+
|
|
221
|
+
with config_context(**dispatch):
|
|
222
|
+
X_out, y_out = validate_data(est, X, y)
|
|
223
|
+
# check sklearn validate_data operations work underneath
|
|
224
|
+
X_array = validate_data(est, X, reset=False)
|
|
225
|
+
|
|
226
|
+
for orig, first, second in ((X, X_out, X_array), (y, y_out, None)):
|
|
227
|
+
if dispatch:
|
|
228
|
+
assert type(orig) == type(
|
|
229
|
+
first
|
|
230
|
+
), f"validate_data converted {type(orig)} to {type(first)}"
|
|
231
|
+
if second is not None:
|
|
232
|
+
assert type(orig) == type(
|
|
233
|
+
second
|
|
234
|
+
), f"from_array converted {type(orig)} to {type(second)}"
|
|
235
|
+
else:
|
|
236
|
+
# array_api_strict from sklearn < 1.2 and pandas will convert to numpy arrays
|
|
237
|
+
assert isinstance(first, np.ndarray)
|
|
238
|
+
assert second is None or isinstance(second, np.ndarray)
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2022 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 math
|
|
18
|
+
import numbers
|
|
19
|
+
from collections.abc import Sequence
|
|
20
|
+
|
|
21
|
+
import scipy.sparse as sp
|
|
22
|
+
from sklearn.utils.validation import _assert_all_finite as _sklearn_assert_all_finite
|
|
23
|
+
from sklearn.utils.validation import _num_samples, check_array, check_non_negative
|
|
24
|
+
|
|
25
|
+
from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
26
|
+
from daal4py.sklearn.utils.validation import (
|
|
27
|
+
add_dispatcher_docstring,
|
|
28
|
+
check_feature_names,
|
|
29
|
+
check_n_features,
|
|
30
|
+
)
|
|
31
|
+
from onedal.utils.validation import is_contiguous
|
|
32
|
+
|
|
33
|
+
from ._array_api import get_namespace
|
|
34
|
+
|
|
35
|
+
if sklearn_check_version("1.6"):
|
|
36
|
+
from sklearn.utils.validation import validate_data as _sklearn_validate_data
|
|
37
|
+
|
|
38
|
+
_finite_keyword = "ensure_all_finite"
|
|
39
|
+
else:
|
|
40
|
+
from sklearn.base import BaseEstimator
|
|
41
|
+
|
|
42
|
+
_sklearn_validate_data = BaseEstimator._validate_data
|
|
43
|
+
_finite_keyword = "force_all_finite"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
if daal_check_version((2024, "P", 700)):
|
|
47
|
+
from onedal.utils.validation import _assert_all_finite as _onedal_assert_all_finite
|
|
48
|
+
|
|
49
|
+
def _onedal_supported_format(X, xp):
|
|
50
|
+
# data should be checked if contiguous, as oneDAL will only use contiguous
|
|
51
|
+
# data from sklearnex. Unlike other oneDAL offloading, copying the data is
|
|
52
|
+
# specifically avoided as it has a non-negligible impact on speed. In that
|
|
53
|
+
# case use native sklearn ``_assert_all_finite``
|
|
54
|
+
return X.dtype in [xp.float32, xp.float64] and is_contiguous(X)
|
|
55
|
+
|
|
56
|
+
else:
|
|
57
|
+
from daal4py.utils.validation import _assert_all_finite as _onedal_assert_all_finite
|
|
58
|
+
from onedal.utils._array_api import _is_numpy_namespace
|
|
59
|
+
|
|
60
|
+
def _onedal_supported_format(X, xp):
|
|
61
|
+
# daal4py _assert_all_finite only supports numpy namespaces, use internally-
|
|
62
|
+
# defined check to validate inputs, otherwise offload to sklearn
|
|
63
|
+
return X.dtype in [xp.float32, xp.float64] and _is_numpy_namespace(xp)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def _sklearnex_assert_all_finite(
|
|
67
|
+
X,
|
|
68
|
+
*,
|
|
69
|
+
allow_nan=False,
|
|
70
|
+
input_name="",
|
|
71
|
+
):
|
|
72
|
+
# size check is an initial match to daal4py for performance reasons, can be
|
|
73
|
+
# optimized later
|
|
74
|
+
xp, _ = get_namespace(X)
|
|
75
|
+
# this is a PyTorch-specific fix, as Tensor.size is a function. It replicates `.size`
|
|
76
|
+
too_small = math.prod(X.shape) < 32768
|
|
77
|
+
|
|
78
|
+
if too_small or not _onedal_supported_format(X, xp):
|
|
79
|
+
if sklearn_check_version("1.1"):
|
|
80
|
+
_sklearn_assert_all_finite(X, allow_nan=allow_nan, input_name=input_name)
|
|
81
|
+
else:
|
|
82
|
+
_sklearn_assert_all_finite(X, allow_nan=allow_nan)
|
|
83
|
+
else:
|
|
84
|
+
_onedal_assert_all_finite(X, allow_nan=allow_nan, input_name=input_name)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def assert_all_finite(
|
|
88
|
+
X,
|
|
89
|
+
*,
|
|
90
|
+
allow_nan=False,
|
|
91
|
+
input_name="",
|
|
92
|
+
):
|
|
93
|
+
_sklearnex_assert_all_finite(
|
|
94
|
+
X.data if sp.issparse(X) else X,
|
|
95
|
+
allow_nan=allow_nan,
|
|
96
|
+
input_name=input_name,
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
@add_dispatcher_docstring(_sklearn_validate_data)
|
|
101
|
+
def validate_data(
|
|
102
|
+
_estimator,
|
|
103
|
+
/,
|
|
104
|
+
X="no_validation",
|
|
105
|
+
y="no_validation",
|
|
106
|
+
**kwargs,
|
|
107
|
+
):
|
|
108
|
+
# force finite check to not occur in sklearn, default is True
|
|
109
|
+
# `ensure_all_finite` is the most up-to-date keyword name in sklearn
|
|
110
|
+
# _finite_keyword provides backward compatibility for `force_all_finite`
|
|
111
|
+
ensure_all_finite = kwargs.pop("ensure_all_finite", True)
|
|
112
|
+
kwargs[_finite_keyword] = False
|
|
113
|
+
|
|
114
|
+
out = _sklearn_validate_data(
|
|
115
|
+
_estimator,
|
|
116
|
+
X=X,
|
|
117
|
+
y=y,
|
|
118
|
+
**kwargs,
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
check_x = not isinstance(X, str) or X != "no_validation"
|
|
122
|
+
check_y = not (y is None or isinstance(y, str) and y == "no_validation")
|
|
123
|
+
|
|
124
|
+
if ensure_all_finite:
|
|
125
|
+
# run local finite check
|
|
126
|
+
allow_nan = ensure_all_finite == "allow-nan"
|
|
127
|
+
# the return object from validate_data can be a single
|
|
128
|
+
# element (either x or y) or both (as a tuple). An iterator along with
|
|
129
|
+
# check_x and check_y can go through the output properly without
|
|
130
|
+
# stacking layers of if statements to make sure the proper input_name
|
|
131
|
+
# is used
|
|
132
|
+
arg = iter(out if isinstance(out, tuple) else (out,))
|
|
133
|
+
if check_x:
|
|
134
|
+
assert_all_finite(next(arg), allow_nan=allow_nan, input_name="X")
|
|
135
|
+
if check_y:
|
|
136
|
+
assert_all_finite(next(arg), allow_nan=allow_nan, input_name="y")
|
|
137
|
+
|
|
138
|
+
if check_y and kwargs.get("y_numeric", False):
|
|
139
|
+
# validate_data does not do full dtype conversions, as it uses check_X_y
|
|
140
|
+
# oneDAL can make tables from [int32, float32, float64], requiring
|
|
141
|
+
# a dtype check and conversion. This will query the array_namespace and
|
|
142
|
+
# convert y as necessary. This is important especially for regressors.
|
|
143
|
+
outx, outy = out if check_x else (None, out)
|
|
144
|
+
yp, _ = get_namespace(outy)
|
|
145
|
+
|
|
146
|
+
# avoid using ``kwargs.get("dtype")`` as it will always set up the default
|
|
147
|
+
dtype = kwargs.get("dtype", (yp.float64, yp.float32, yp.int32))
|
|
148
|
+
if not isinstance(dtype, Sequence):
|
|
149
|
+
dtype = tuple(dtype)
|
|
150
|
+
|
|
151
|
+
if outy.dtype not in dtype:
|
|
152
|
+
# use asarray rather than astype because of numpy support
|
|
153
|
+
outy = yp.asarray(outy, dtype=dtype[0])
|
|
154
|
+
out = (outx, outy) if check_x else outy
|
|
155
|
+
|
|
156
|
+
return out
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def _check_sample_weight(
|
|
160
|
+
sample_weight, X, dtype=None, copy=False, ensure_non_negative=False
|
|
161
|
+
):
|
|
162
|
+
|
|
163
|
+
n_samples = _num_samples(X)
|
|
164
|
+
xp, _ = get_namespace(X)
|
|
165
|
+
|
|
166
|
+
if dtype is not None and dtype not in [xp.float32, xp.float64]:
|
|
167
|
+
dtype = xp.float64
|
|
168
|
+
|
|
169
|
+
if sample_weight is None:
|
|
170
|
+
if hasattr(X, "device"):
|
|
171
|
+
sample_weight = xp.ones(n_samples, dtype=dtype, device=X.device)
|
|
172
|
+
else:
|
|
173
|
+
sample_weight = xp.ones(n_samples, dtype=dtype)
|
|
174
|
+
elif isinstance(sample_weight, numbers.Number):
|
|
175
|
+
if hasattr(X, "device"):
|
|
176
|
+
sample_weight = xp.full(
|
|
177
|
+
n_samples, sample_weight, dtype=dtype, device=X.device
|
|
178
|
+
)
|
|
179
|
+
else:
|
|
180
|
+
sample_weight = xp.full(n_samples, sample_weight, dtype=dtype)
|
|
181
|
+
else:
|
|
182
|
+
if dtype is None:
|
|
183
|
+
dtype = [xp.float64, xp.float32]
|
|
184
|
+
|
|
185
|
+
params = {
|
|
186
|
+
"accept_sparse": False,
|
|
187
|
+
"ensure_2d": False,
|
|
188
|
+
"dtype": dtype,
|
|
189
|
+
"order": "C",
|
|
190
|
+
"copy": copy,
|
|
191
|
+
_finite_keyword: False,
|
|
192
|
+
}
|
|
193
|
+
if sklearn_check_version("1.1"):
|
|
194
|
+
params["input_name"] = "sample_weight"
|
|
195
|
+
|
|
196
|
+
sample_weight = check_array(sample_weight, **params)
|
|
197
|
+
assert_all_finite(sample_weight, input_name="sample_weight")
|
|
198
|
+
|
|
199
|
+
if sample_weight.ndim != 1:
|
|
200
|
+
raise ValueError("Sample weights must be 1D array or scalar")
|
|
201
|
+
|
|
202
|
+
if sample_weight.shape != (n_samples,):
|
|
203
|
+
raise ValueError(
|
|
204
|
+
"sample_weight.shape == {}, expected {}!".format(
|
|
205
|
+
sample_weight.shape, (n_samples,)
|
|
206
|
+
)
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
if ensure_non_negative:
|
|
210
|
+
check_non_negative(sample_weight, "`sample_weight`")
|
|
211
|
+
|
|
212
|
+
return sample_weight
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: scikit-learn-intelex
|
|
3
|
+
Version: 2025.10.0
|
|
4
|
+
Summary: Intel® Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application.
|
|
5
|
+
Home-page: https://github.com/intel/scikit-learn-intelex
|
|
6
|
+
Author: Intel Corporation
|
|
7
|
+
Author-email: onedal.maintainers@intel.com
|
|
8
|
+
Maintainer-email: onedal.maintainers@intel.com
|
|
9
|
+
License: Apache-2.0
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/uxlfoundation/scikit-learn-intelex/issues
|
|
11
|
+
Project-URL: Documentation, https://uxlfoundation.github.io/scikit-learn-intelex/
|
|
12
|
+
Project-URL: Source Code, https://github.com/uxlfoundation/scikit-learn-intelex
|
|
13
|
+
Keywords: machine learning,scikit-learn,data science,data analytics
|
|
14
|
+
Platform: UNKNOWN
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Classifier: Environment :: Console
|
|
17
|
+
Classifier: Intended Audience :: Developers
|
|
18
|
+
Classifier: Intended Audience :: Other Audience
|
|
19
|
+
Classifier: Intended Audience :: Science/Research
|
|
20
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
21
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
27
|
+
Classifier: Topic :: Scientific/Engineering
|
|
28
|
+
Classifier: Topic :: System
|
|
29
|
+
Classifier: Topic :: Software Development
|
|
30
|
+
Requires-Python: >=3.7
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
License-File: LICENSE.txt
|
|
33
|
+
Requires-Dist: daal ==2025.10.0
|
|
34
|
+
Requires-Dist: numpy >=1.19
|
|
35
|
+
Requires-Dist: scikit-learn >=0.22
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# Intel(R) Extension for Scikit-learn*
|
|
39
|
+
|
|
40
|
+
[](https://github.com/uxlfoundation/scikit-learn-intelex/discussions)
|
|
41
|
+
[](https://pypi.org/project/scikit-learn-intelex/)
|
|
42
|
+
[](https://anaconda.org/conda-forge/scikit-learn-intelex)
|
|
43
|
+
|
|
44
|
+
Extension for Scikit-learn is a **free software AI accelerator** designed to deliver over **10-100X** acceleration to your existing scikit-learn code.
|
|
45
|
+
The software acceleration is achieved with vector instructions, AI hardware-specific memory optimizations, threading, and optimizations.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
With Extension for Scikit-learn, you can:
|
|
49
|
+
|
|
50
|
+
* Speed up training and inference by up to 100x with equivalent mathematical accuracy
|
|
51
|
+
* Benefit from performance improvements across different hardware configurations, including [GPUs](https://uxlfoundation.github.io/scikit-learn-intelex/latest/oneapi-gpu.html) and [multi-GPU](https://uxlfoundation.github.io/scikit-learn-intelex/latest/distributed-mode.html) configurations
|
|
52
|
+
* Integrate the extension into your existing Scikit-learn applications without code modifications
|
|
53
|
+
* Continue to use the open-source scikit-learn API
|
|
54
|
+
* Enable and disable the extension with a couple of lines of code or at the command line
|
|
55
|
+
|
|
56
|
+
# 🛠 Installation
|
|
57
|
+
Intel(R) Extension for Scikit-learn is available at the [Python Package Index](https://pypi.org/project/scikit-learn-intelex/),
|
|
58
|
+
in [Conda-Forge](https://anaconda.org/conda-forge/scikit-learn-intelex) and in [Intel's conda channel](https://software.repos.intel.com/python/conda/).
|
|
59
|
+
Intel(R) Extension for Scikit-learn is also available as a part of [Intel® oneAPI AI Analytics Toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/ai-analytics-toolkit.html) (AI Kit).
|
|
60
|
+
|
|
61
|
+
To install through `pip`:
|
|
62
|
+
|
|
63
|
+
```shell
|
|
64
|
+
pip install scikit-learn-intelex
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
See the [documentation](https://uxlfoundation.github.io/scikit-learn-intelex/latest/quick-start.html#installation) for more details about
|
|
68
|
+
supported platforms and other ways of installing it.
|
|
69
|
+
|
|
70
|
+
You can [build the package from sources](https://github.com/uxlfoundation/scikit-learn-intelex/blob/master/INSTALL.md) as well.
|
|
71
|
+
|
|
72
|
+
# ⚡️ Get Started
|
|
73
|
+
|
|
74
|
+
Easiest way to benefit from accelerations from the extension is by patching scikit-learn with it:
|
|
75
|
+
|
|
76
|
+
- **Enable CPU optimizations**
|
|
77
|
+
|
|
78
|
+
```py
|
|
79
|
+
import numpy as np
|
|
80
|
+
from sklearnex import patch_sklearn
|
|
81
|
+
patch_sklearn()
|
|
82
|
+
|
|
83
|
+
from sklearn.cluster import DBSCAN
|
|
84
|
+
|
|
85
|
+
X = np.array([[1., 2.], [2., 2.], [2., 3.],
|
|
86
|
+
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
|
|
87
|
+
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
- **Enable GPU optimizations**
|
|
91
|
+
|
|
92
|
+
_Note: executing on GPU has [additional system software requirements](https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-dpcpp-system-requirements.html) - see [details](https://uxlfoundation.github.io/scikit-learn-intelex/latest/oneapi-gpu.html)._
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
```py
|
|
96
|
+
import numpy as np
|
|
97
|
+
from sklearnex import patch_sklearn, config_context
|
|
98
|
+
patch_sklearn()
|
|
99
|
+
|
|
100
|
+
from sklearn.cluster import DBSCAN
|
|
101
|
+
|
|
102
|
+
X = np.array([[1., 2.], [2., 2.], [2., 3.],
|
|
103
|
+
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
|
|
104
|
+
with config_context(target_offload="gpu:0"):
|
|
105
|
+
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Usage without patching
|
|
109
|
+
|
|
110
|
+
Alternatively, all functionalities are also available under a separate module which can be imported directly, without involving any patching.
|
|
111
|
+
|
|
112
|
+
* To run on CPU:
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
import numpy as np
|
|
116
|
+
from sklearnex.cluster import DBSCAN
|
|
117
|
+
|
|
118
|
+
X = np.array([[1., 2.], [2., 2.], [2., 3.],
|
|
119
|
+
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
|
|
120
|
+
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
* To run on GPU:
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
import numpy as np
|
|
127
|
+
from sklearnex import config_context
|
|
128
|
+
from sklearnex.cluster import DBSCAN
|
|
129
|
+
|
|
130
|
+
X = np.array([[1., 2.], [2., 2.], [2., 3.],
|
|
131
|
+
[8., 7.], [8., 8.], [25., 80.]], dtype=np.float32)
|
|
132
|
+
with config_context(target_offload="gpu:0"):
|
|
133
|
+
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
# 🚀 Scikit-learn patching
|
|
137
|
+
|
|
138
|
+

|
|
139
|
+
Configurations:
|
|
140
|
+
- HW: c5.24xlarge AWS EC2 Instance using an Intel Xeon Platinum 8275CL with 2 sockets and 24 cores per socket
|
|
141
|
+
- SW: scikit-learn version 0.24.2, scikit-learn-intelex version 2021.2.3, Python 3.8
|
|
142
|
+
|
|
143
|
+
[Benchmarks code](https://github.com/IntelPython/scikit-learn_bench)
|
|
144
|
+
|
|
145
|
+
Intel(R) Extension for Scikit-learn patching affects performance of specific Scikit-learn functionality. Refer to the [list of supported algorithms and parameters](https://uxlfoundation.github.io/scikit-learn-intelex/latest/algorithms.html) for details. In cases when unsupported parameters are used, the package fallbacks into original Scikit-learn. If the patching does not cover your scenarios, [submit an issue on GitHub](https://github.com/uxlfoundation/scikit-learn-intelex/issues).
|
|
146
|
+
|
|
147
|
+
Read more about it in the documentation for [scikit-learn patching](https://uxlfoundation.github.io/scikit-learn-intelex/latest/quick-start.html#patching).
|
|
148
|
+
|
|
149
|
+
## 👀 Follow us on Medium
|
|
150
|
+
|
|
151
|
+
We publish blogs on Medium, so [follow us](https://medium.com/intel-analytics-software/tagged/machine-learning) to learn tips and tricks for more efficient data analysis with the help of Intel(R) Extension for Scikit-learn. Here are our latest blogs:
|
|
152
|
+
|
|
153
|
+
- [Save Time and Money with Intel Extension for Scikit-learn](https://medium.com/intel-analytics-software/save-time-and-money-with-intel-extension-for-scikit-learn-33627425ae4)
|
|
154
|
+
- [Superior Machine Learning Performance on the Latest Intel Xeon Scalable Processors](https://medium.com/intel-analytics-software/superior-machine-learning-performance-on-the-latest-intel-xeon-scalable-processor-efdec279f5a3)
|
|
155
|
+
- [Leverage Intel Optimizations in Scikit-Learn](https://medium.com/intel-analytics-software/leverage-intel-optimizations-in-scikit-learn-f562cb9d5544)
|
|
156
|
+
- [Intel Gives Scikit-Learn the Performance Boost Data Scientists Need](https://medium.com/intel-analytics-software/intel-gives-scikit-learn-the-performance-boost-data-scientists-need-42eb47c80b18)
|
|
157
|
+
- [From Hours to Minutes: 600x Faster SVM](https://medium.com/intel-analytics-software/from-hours-to-minutes-600x-faster-svm-647f904c31ae)
|
|
158
|
+
- [Improve the Performance of XGBoost and LightGBM Inference](https://medium.com/intel-analytics-software/improving-the-performance-of-xgboost-and-lightgbm-inference-3b542c03447e)
|
|
159
|
+
- [Accelerate Kaggle Challenges Using Intel AI Analytics Toolkit](https://medium.com/intel-analytics-software/accelerate-kaggle-challenges-using-intel-ai-analytics-toolkit-beb148f66d5a)
|
|
160
|
+
- [Accelerate Your scikit-learn Applications](https://medium.com/intel-analytics-software/improving-the-performance-of-xgboost-and-lightgbm-inference-3b542c03447e)
|
|
161
|
+
- [Accelerate Linear Models for Machine Learning](https://medium.com/intel-analytics-software/accelerating-linear-models-for-machine-learning-5a75ff50a0fe)
|
|
162
|
+
- [Accelerate K-Means Clustering](https://medium.com/intel-analytics-software/accelerate-k-means-clustering-6385088788a1)
|
|
163
|
+
|
|
164
|
+
## 🔗 Important links
|
|
165
|
+
- [Notebook examples](https://github.com/uxlfoundation/scikit-learn-intelex/tree/master/examples/notebooks)
|
|
166
|
+
- [Documentation](https://uxlfoundation.github.io/scikit-learn-intelex/)
|
|
167
|
+
- [scikit-learn API and patching](https://uxlfoundation.github.io/scikit-learn-intelex/)
|
|
168
|
+
- [Benchmark code](https://github.com/IntelPython/scikit-learn_bench)
|
|
169
|
+
- [Building from Sources](https://github.com/uxlfoundation/scikit-learn-intelex/blob/master/INSTALL.md)
|
|
170
|
+
- [About Intel(R) oneAPI Data Analytics Library](https://github.com/uxlfoundation/oneDAL)
|
|
171
|
+
|
|
172
|
+
## 💬 Support
|
|
173
|
+
|
|
174
|
+
Report issues, ask questions, and provide suggestions using:
|
|
175
|
+
|
|
176
|
+
- [GitHub Issues](https://github.com/uxlfoundation/scikit-learn-intelex/issues)
|
|
177
|
+
- [GitHub Discussions](https://github.com/uxlfoundation/scikit-learn-intelex/discussions)
|
|
178
|
+
- [Forum](https://community.intel.com/t5/Intel-Distribution-for-Python/bd-p/distribution-python)
|
|
179
|
+
|
|
180
|
+
You may reach out to project maintainers privately at onedal.maintainers@intel.com
|
|
181
|
+
|
|
182
|
+
|