scikit-learn-intelex 2025.4.0__py313-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of scikit-learn-intelex might be problematic. Click here for more details.
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +248 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +196 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +337 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +208 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +236 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +696 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/__init__.py +83 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_config.py +54 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_device_offload.py +204 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +175 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +242 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +105 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +557 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +112 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_policy.py +55 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +125 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +76 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +128 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +122 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +161 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +121 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +126 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +475 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +214 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +285 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +736 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +292 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +325 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +247 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +259 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +763 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +152 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +176 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/tests/test_common.py +57 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +162 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +102 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +81 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +56 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/onedal/utils/validation.py +464 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/__init__.py +66 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/__main__.py +58 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_config.py +116 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +126 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/_utils.py +177 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +261 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +352 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +455 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +197 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +397 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +38 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +405 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +287 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +427 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +58 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/dispatcher.py +534 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +424 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +2029 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +140 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/glob/__main__.py +72 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/glob/dispatcher.py +101 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +30 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +495 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +432 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +346 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +415 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +390 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +142 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +134 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/manifold/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +26 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +250 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/metrics/__init__.py +23 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/metrics/pairwise.py +22 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/metrics/ranking.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +39 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/model_selection/__init__.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/model_selection/split.py +22 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +34 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/neighbors/__init__.py +27 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +236 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/neighbors/common.py +310 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +231 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +207 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +178 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +82 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/preview/__init__.py +17 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +142 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +66 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +244 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +336 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/__init__.py +25 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +306 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +30 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +50 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +173 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +71 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +331 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +25 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/svm/__init__.py +29 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +339 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/svm/nusvc.py +371 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/svm/nusvr.py +170 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/svm/svc.py +399 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/svm/svr.py +167 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +93 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +491 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +43 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +347 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +269 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +48 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +377 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +326 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +436 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +19 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +82 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +59 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
- scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +208 -0
- scikit_learn_intelex-2025.4.0.dist-info/LICENSE.txt +202 -0
- scikit_learn_intelex-2025.4.0.dist-info/METADATA +192 -0
- scikit_learn_intelex-2025.4.0.dist-info/RECORD +259 -0
- scikit_learn_intelex-2025.4.0.dist-info/WHEEL +5 -0
- scikit_learn_intelex-2025.4.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# Copyright 2020 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 logging
|
|
18
|
+
from collections.abc import Sequence
|
|
19
|
+
from functools import partial
|
|
20
|
+
|
|
21
|
+
import numpy as np
|
|
22
|
+
from scipy import sparse as sp
|
|
23
|
+
from sklearn.metrics._base import _average_binary_score
|
|
24
|
+
from sklearn.metrics._ranking import _binary_roc_auc_score
|
|
25
|
+
from sklearn.metrics._ranking import _multiclass_roc_auc_score as multiclass_roc_auc_score
|
|
26
|
+
from sklearn.preprocessing import label_binarize
|
|
27
|
+
from sklearn.utils import check_array
|
|
28
|
+
from sklearn.utils.multiclass import is_multilabel
|
|
29
|
+
|
|
30
|
+
import daal4py as d4p
|
|
31
|
+
|
|
32
|
+
from .._utils import PatchingConditionsChain, get_patch_message, sklearn_check_version
|
|
33
|
+
from ..utils.validation import _assert_all_finite
|
|
34
|
+
|
|
35
|
+
if sklearn_check_version("1.3"):
|
|
36
|
+
from sklearn.utils._param_validation import (
|
|
37
|
+
Interval,
|
|
38
|
+
Real,
|
|
39
|
+
StrOptions,
|
|
40
|
+
validate_params,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
try:
|
|
44
|
+
import pandas as pd
|
|
45
|
+
|
|
46
|
+
pandas_is_imported = True
|
|
47
|
+
except ImportError:
|
|
48
|
+
pandas_is_imported = False
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def _daal_type_of_target(y):
|
|
52
|
+
valid = (
|
|
53
|
+
isinstance(y, Sequence) or sp.isspmatrix(y) or hasattr(y, "__array__")
|
|
54
|
+
) and not isinstance(y, str)
|
|
55
|
+
|
|
56
|
+
if not valid:
|
|
57
|
+
raise ValueError(
|
|
58
|
+
"Expected array-like (array or non-string sequence), " "got %r" % y
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
sparse_pandas = y.__class__.__name__ in ["SparseSeries", "SparseArray"]
|
|
62
|
+
if sparse_pandas:
|
|
63
|
+
raise ValueError("y cannot be class 'SparseSeries' or 'SparseArray'")
|
|
64
|
+
|
|
65
|
+
if is_multilabel(y):
|
|
66
|
+
return "multilabel-indicator"
|
|
67
|
+
|
|
68
|
+
try:
|
|
69
|
+
y = np.asarray(y)
|
|
70
|
+
except ValueError:
|
|
71
|
+
# Known to fail in numpy 1.3 for array of arrays
|
|
72
|
+
return "unknown"
|
|
73
|
+
|
|
74
|
+
# The old sequence of sequences format
|
|
75
|
+
try:
|
|
76
|
+
if (
|
|
77
|
+
not hasattr(y[0], "__array__")
|
|
78
|
+
and isinstance(y[0], Sequence)
|
|
79
|
+
and not isinstance(y[0], str)
|
|
80
|
+
):
|
|
81
|
+
raise ValueError(
|
|
82
|
+
"You appear to be using a legacy multi-label data"
|
|
83
|
+
" representation. Sequence of sequences are no"
|
|
84
|
+
" longer supported; use a binary array or sparse"
|
|
85
|
+
" matrix instead - the MultiLabelBinarizer"
|
|
86
|
+
" transformer can convert to this format."
|
|
87
|
+
)
|
|
88
|
+
except IndexError:
|
|
89
|
+
pass
|
|
90
|
+
|
|
91
|
+
# Invalid inputs
|
|
92
|
+
if y.ndim > 2 or (
|
|
93
|
+
y.dtype == object and len(y) != 0 and not isinstance(y.flat[0], str)
|
|
94
|
+
):
|
|
95
|
+
return "unknown" # [[[1, 2]]] or [obj_1] and not ["label_1"]
|
|
96
|
+
|
|
97
|
+
if y.ndim == 2 and y.shape[1] == 0:
|
|
98
|
+
return "unknown" # [[]]
|
|
99
|
+
|
|
100
|
+
if y.ndim == 2 and y.shape[1] > 1:
|
|
101
|
+
suffix = "-multioutput" # [[1, 2], [1, 2]]
|
|
102
|
+
else:
|
|
103
|
+
suffix = "" # [1, 2, 3] or [[1], [2], [3]]
|
|
104
|
+
|
|
105
|
+
# check float and contains non-integer float values
|
|
106
|
+
if y.dtype.kind == "f" and np.any(y != y.astype(int)):
|
|
107
|
+
# [.1, .2, 3] or [[.1, .2, 3]] or [[1., .2]] and not [1., 2., 3.]
|
|
108
|
+
_assert_all_finite(y)
|
|
109
|
+
return "continuous" + suffix
|
|
110
|
+
|
|
111
|
+
unique = np.sort(pd.unique(y.ravel())) if pandas_is_imported else np.unique(y)
|
|
112
|
+
|
|
113
|
+
if (len(unique) > 2) or (y.ndim >= 2 and len(y[0]) > 1):
|
|
114
|
+
# [1, 2, 3] or [[1., 2., 3]] or [[1, 2]]
|
|
115
|
+
result = ("multiclass" + suffix, None)
|
|
116
|
+
else:
|
|
117
|
+
result = ("binary", unique) # [1, 2] or [["a"], ["b"]]
|
|
118
|
+
return result
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def roc_auc_score(
|
|
122
|
+
y_true,
|
|
123
|
+
y_score,
|
|
124
|
+
*,
|
|
125
|
+
average="macro",
|
|
126
|
+
sample_weight=None,
|
|
127
|
+
max_fpr=None,
|
|
128
|
+
multi_class="raise",
|
|
129
|
+
labels=None,
|
|
130
|
+
):
|
|
131
|
+
y_type = _daal_type_of_target(y_true)
|
|
132
|
+
y_true = check_array(y_true, ensure_2d=False, dtype=None)
|
|
133
|
+
y_score = check_array(y_score, ensure_2d=False)
|
|
134
|
+
|
|
135
|
+
_patching_status = PatchingConditionsChain("sklearn.metrics.roc_auc_score")
|
|
136
|
+
_dal_ready = _patching_status.and_conditions(
|
|
137
|
+
[
|
|
138
|
+
(
|
|
139
|
+
y_type[0] == "binary"
|
|
140
|
+
and not (y_score.ndim == 2 and y_score.shape[1] > 2),
|
|
141
|
+
"y_true type is not one-dimensional binary.",
|
|
142
|
+
)
|
|
143
|
+
]
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
_patching_status.write_log()
|
|
147
|
+
if y_type[0] == "multiclass" or (
|
|
148
|
+
y_type[0] == "binary" and y_score.ndim == 2 and y_score.shape[1] > 2
|
|
149
|
+
):
|
|
150
|
+
# do not support partial ROC computation for multiclass
|
|
151
|
+
if max_fpr is not None and max_fpr != 1.0:
|
|
152
|
+
raise ValueError(
|
|
153
|
+
"Partial AUC computation not available in "
|
|
154
|
+
"multiclass setting, 'max_fpr' must be"
|
|
155
|
+
" set to `None`, received `max_fpr={0}` "
|
|
156
|
+
"instead".format(max_fpr)
|
|
157
|
+
)
|
|
158
|
+
if multi_class == "raise":
|
|
159
|
+
raise ValueError("multi_class must be in ('ovo', 'ovr')")
|
|
160
|
+
|
|
161
|
+
return multiclass_roc_auc_score(
|
|
162
|
+
y_true, y_score, labels, multi_class, average, sample_weight
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
if y_type[0] == "binary":
|
|
166
|
+
labels = y_type[1]
|
|
167
|
+
_dal_ready = _patching_status.and_conditions(
|
|
168
|
+
[
|
|
169
|
+
(len(labels) == 2, "Number of unique labels is not equal to 2."),
|
|
170
|
+
(max_fpr is None, "Maximum false-positive rate is not supported."),
|
|
171
|
+
(sample_weight is None, "Sample weights are not supported."),
|
|
172
|
+
]
|
|
173
|
+
)
|
|
174
|
+
if _dal_ready:
|
|
175
|
+
if not np.array_equal(labels, [0, 1]) or labels.dtype == bool:
|
|
176
|
+
y_true = label_binarize(y_true, classes=labels)[:, 0]
|
|
177
|
+
if hasattr(y_score, "dtype") and y_score.dtype == bool:
|
|
178
|
+
y_score = label_binarize(y_score, classes=labels)[:, 0]
|
|
179
|
+
result = d4p.daal_roc_auc_score(y_true.reshape(-1, 1), y_score.reshape(-1, 1))
|
|
180
|
+
if result != -1:
|
|
181
|
+
return result
|
|
182
|
+
logging.info(
|
|
183
|
+
"sklearn.metrics.roc_auc_score: "
|
|
184
|
+
+ get_patch_message("sklearn_after_daal")
|
|
185
|
+
)
|
|
186
|
+
# return to sklearn implementation
|
|
187
|
+
y_true = label_binarize(y_true, classes=labels)[:, 0]
|
|
188
|
+
|
|
189
|
+
return _average_binary_score(
|
|
190
|
+
partial(_binary_roc_auc_score, max_fpr=max_fpr),
|
|
191
|
+
y_true,
|
|
192
|
+
y_score,
|
|
193
|
+
average,
|
|
194
|
+
sample_weight=sample_weight,
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
if sklearn_check_version("1.3"):
|
|
199
|
+
roc_auc_score = validate_params(
|
|
200
|
+
{
|
|
201
|
+
"y_true": ["array-like"],
|
|
202
|
+
"y_score": ["array-like"],
|
|
203
|
+
"average": [StrOptions({"micro", "macro", "samples", "weighted"}), None],
|
|
204
|
+
"sample_weight": ["array-like", None],
|
|
205
|
+
"max_fpr": [Interval(Real, 0.0, 1, closed="right"), None],
|
|
206
|
+
"multi_class": [StrOptions({"raise", "ovr", "ovo"})],
|
|
207
|
+
"labels": ["array-like", None],
|
|
208
|
+
},
|
|
209
|
+
prefer_skip_nested_validation=True,
|
|
210
|
+
)(roc_auc_score)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2014 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ===============================================================================
|
|
16
|
+
|
|
17
|
+
from ._split import train_test_split
|
|
18
|
+
|
|
19
|
+
__all__ = ["train_test_split"]
|
scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2014 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 platform
|
|
18
|
+
|
|
19
|
+
import numpy as np
|
|
20
|
+
from sklearn.model_selection import ShuffleSplit, StratifiedShuffleSplit
|
|
21
|
+
from sklearn.model_selection._split import _validate_shuffle_split
|
|
22
|
+
from sklearn.utils import indexable
|
|
23
|
+
from sklearn.utils.validation import _num_samples
|
|
24
|
+
|
|
25
|
+
import daal4py as d4p
|
|
26
|
+
from daal4py.sklearn._utils import PatchingConditionsChain
|
|
27
|
+
|
|
28
|
+
from .._utils import sklearn_check_version
|
|
29
|
+
|
|
30
|
+
try:
|
|
31
|
+
from sklearn.utils import _safe_indexing as safe_indexing
|
|
32
|
+
except ImportError:
|
|
33
|
+
from sklearn.utils import safe_indexing
|
|
34
|
+
|
|
35
|
+
try:
|
|
36
|
+
import mkl_random
|
|
37
|
+
|
|
38
|
+
mkl_random_is_imported = True
|
|
39
|
+
except (ImportError, ModuleNotFoundError):
|
|
40
|
+
mkl_random_is_imported = False
|
|
41
|
+
|
|
42
|
+
try:
|
|
43
|
+
import pandas as pd
|
|
44
|
+
|
|
45
|
+
pandas_is_imported = True
|
|
46
|
+
except (ImportError, ModuleNotFoundError):
|
|
47
|
+
pandas_is_imported = False
|
|
48
|
+
|
|
49
|
+
if sklearn_check_version("1.3"):
|
|
50
|
+
import numbers
|
|
51
|
+
|
|
52
|
+
from sklearn.utils._param_validation import Interval, RealNotInt, validate_params
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def get_dtypes(data):
|
|
56
|
+
if hasattr(data, "dtype"):
|
|
57
|
+
return [data.dtype]
|
|
58
|
+
if hasattr(data, "dtypes"):
|
|
59
|
+
return list(data.dtypes)
|
|
60
|
+
if hasattr(data, "values"):
|
|
61
|
+
return [data.values.dtype]
|
|
62
|
+
return None
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def train_test_split(*arrays, **options):
|
|
66
|
+
n_arrays = len(arrays)
|
|
67
|
+
if n_arrays == 0:
|
|
68
|
+
raise ValueError("At least one array required as input")
|
|
69
|
+
test_size = options.pop("test_size", None)
|
|
70
|
+
train_size = options.pop("train_size", None)
|
|
71
|
+
random_state = options.pop("random_state", None)
|
|
72
|
+
stratify = options.pop("stratify", None)
|
|
73
|
+
shuffle = options.pop("shuffle", True)
|
|
74
|
+
rng = options.pop("rng", "OPTIMIZED_MT19937")
|
|
75
|
+
|
|
76
|
+
available_rngs = [
|
|
77
|
+
"default",
|
|
78
|
+
"MT19937",
|
|
79
|
+
"SFMT19937",
|
|
80
|
+
"MT2203",
|
|
81
|
+
"R250",
|
|
82
|
+
"WH",
|
|
83
|
+
"MCG31",
|
|
84
|
+
"MCG59",
|
|
85
|
+
"MRG32K3A",
|
|
86
|
+
"PHILOX4X32X10",
|
|
87
|
+
"NONDETERM",
|
|
88
|
+
"OPTIMIZED_MT19937",
|
|
89
|
+
]
|
|
90
|
+
if rng not in available_rngs:
|
|
91
|
+
raise ValueError(
|
|
92
|
+
"Wrong random numbers generator is chosen. "
|
|
93
|
+
"Available generators: %s" % str(available_rngs)[1:-1]
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
if options:
|
|
97
|
+
raise TypeError("Invalid parameters passed: %s" % str(options))
|
|
98
|
+
|
|
99
|
+
arrays = indexable(*arrays)
|
|
100
|
+
|
|
101
|
+
n_samples = _num_samples(arrays[0])
|
|
102
|
+
n_train, n_test = _validate_shuffle_split(
|
|
103
|
+
n_samples, test_size, train_size, default_test_size=0.25
|
|
104
|
+
)
|
|
105
|
+
if shuffle is False:
|
|
106
|
+
if stratify is not None:
|
|
107
|
+
raise ValueError(
|
|
108
|
+
"Stratified train/test split is not implemented for shuffle=False"
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
train = np.arange(n_train)
|
|
112
|
+
test = np.arange(n_train, n_train + n_test)
|
|
113
|
+
else:
|
|
114
|
+
if stratify is not None:
|
|
115
|
+
cv = StratifiedShuffleSplit(
|
|
116
|
+
test_size=n_test, train_size=n_train, random_state=random_state
|
|
117
|
+
)
|
|
118
|
+
train, test = next(cv.split(X=arrays[0], y=stratify))
|
|
119
|
+
else:
|
|
120
|
+
if (
|
|
121
|
+
mkl_random_is_imported
|
|
122
|
+
and rng not in ["default", "OPTIMIZED_MT19937"]
|
|
123
|
+
and (isinstance(random_state, int) or random_state is None)
|
|
124
|
+
):
|
|
125
|
+
random_state = mkl_random.RandomState(random_state, rng)
|
|
126
|
+
indexes = random_state.permutation(n_samples)
|
|
127
|
+
test, train = indexes[:n_test], indexes[n_test : (n_test + n_train)]
|
|
128
|
+
elif (
|
|
129
|
+
rng == "OPTIMIZED_MT19937"
|
|
130
|
+
and (isinstance(random_state, int) or random_state is None)
|
|
131
|
+
and platform.system() != "Windows"
|
|
132
|
+
):
|
|
133
|
+
indexes = np.empty(
|
|
134
|
+
shape=(n_samples,),
|
|
135
|
+
dtype=np.int64 if n_train + n_test > 2**31 - 1 else np.int32,
|
|
136
|
+
)
|
|
137
|
+
random_state = np.random.RandomState(random_state)
|
|
138
|
+
random_state = random_state.get_state()[1]
|
|
139
|
+
d4p.daal_generate_shuffled_indices([indexes], [random_state])
|
|
140
|
+
test, train = indexes[:n_test], indexes[n_test : (n_test + n_train)]
|
|
141
|
+
else:
|
|
142
|
+
cv = ShuffleSplit(
|
|
143
|
+
test_size=n_test, train_size=n_train, random_state=random_state
|
|
144
|
+
)
|
|
145
|
+
train, test = next(cv.split(X=arrays[0], y=stratify))
|
|
146
|
+
|
|
147
|
+
res = []
|
|
148
|
+
for arr in arrays:
|
|
149
|
+
_patching_status = PatchingConditionsChain(
|
|
150
|
+
"sklearn.model_selection.train_test_split"
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
# input format check
|
|
154
|
+
_patching_status.and_conditions(
|
|
155
|
+
[(isinstance(arr, np.ndarray), "The input is not a np.ndarray object.")]
|
|
156
|
+
)
|
|
157
|
+
if pandas_is_imported:
|
|
158
|
+
_patching_status.or_conditions(
|
|
159
|
+
[
|
|
160
|
+
(
|
|
161
|
+
isinstance(arr, pd.core.frame.DataFrame),
|
|
162
|
+
"The input is not a pd.DataFrame object.",
|
|
163
|
+
),
|
|
164
|
+
(
|
|
165
|
+
isinstance(arr, pd.core.series.Series),
|
|
166
|
+
"The input is not a pd.Series object.",
|
|
167
|
+
),
|
|
168
|
+
],
|
|
169
|
+
conditions_merging=any,
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
# dimensions check
|
|
173
|
+
_dal_ready = _patching_status.and_conditions(
|
|
174
|
+
[(hasattr(arr, "ndim"), "The input does not have 'ndim' attribute.")]
|
|
175
|
+
)
|
|
176
|
+
if hasattr(arr, "ndim"):
|
|
177
|
+
_patching_status.and_conditions(
|
|
178
|
+
[(arr.ndim <= 2, "The input has more than 2 dimensions.")]
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
# data types check
|
|
182
|
+
dtypes = get_dtypes(arr)
|
|
183
|
+
_dal_ready = _patching_status.and_conditions(
|
|
184
|
+
[(dtypes is not None, "Unable to parse input data types.")]
|
|
185
|
+
)
|
|
186
|
+
if dtypes is not None:
|
|
187
|
+
incorrect_dtype = None
|
|
188
|
+
for i, dtype in enumerate(dtypes):
|
|
189
|
+
if str(dtype) not in ["float32", "float64"] and "int" not in str(dtype):
|
|
190
|
+
incorrect_dtype = str(dtype)
|
|
191
|
+
break
|
|
192
|
+
_dal_ready = _patching_status.and_conditions(
|
|
193
|
+
[
|
|
194
|
+
(
|
|
195
|
+
incorrect_dtype is None,
|
|
196
|
+
f"Input has incorrect data type '{incorrect_dtype}'. "
|
|
197
|
+
"Only integer and 32/64-bits floating point types are supported.",
|
|
198
|
+
)
|
|
199
|
+
]
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
_patching_status.write_log()
|
|
203
|
+
if not _dal_ready:
|
|
204
|
+
res.append(safe_indexing(arr, train))
|
|
205
|
+
res.append(safe_indexing(arr, test))
|
|
206
|
+
else:
|
|
207
|
+
if len(arr.shape) == 2:
|
|
208
|
+
n_cols = arr.shape[1]
|
|
209
|
+
reshape_later = False
|
|
210
|
+
else:
|
|
211
|
+
n_cols = 1
|
|
212
|
+
reshape_later = True
|
|
213
|
+
|
|
214
|
+
arr_copy = d4p.get_data(arr)
|
|
215
|
+
if not isinstance(arr_copy, list):
|
|
216
|
+
arr_copy = arr_copy.reshape(
|
|
217
|
+
(arr_copy.shape[0], n_cols),
|
|
218
|
+
order="A",
|
|
219
|
+
)
|
|
220
|
+
if isinstance(arr_copy, np.ndarray):
|
|
221
|
+
order = "C" if arr_copy.flags["C_CONTIGUOUS"] else "F"
|
|
222
|
+
train_arr = np.empty(
|
|
223
|
+
shape=(n_train, n_cols),
|
|
224
|
+
dtype=arr_copy.dtype,
|
|
225
|
+
order=order,
|
|
226
|
+
)
|
|
227
|
+
test_arr = np.empty(
|
|
228
|
+
shape=(n_test, n_cols),
|
|
229
|
+
dtype=arr_copy.dtype,
|
|
230
|
+
order=order,
|
|
231
|
+
)
|
|
232
|
+
d4p.daal_train_test_split(arr_copy, train_arr, test_arr, [train], [test])
|
|
233
|
+
if reshape_later:
|
|
234
|
+
train_arr, test_arr = train_arr.reshape((n_train,)), test_arr.reshape(
|
|
235
|
+
(n_test,)
|
|
236
|
+
)
|
|
237
|
+
elif isinstance(arr_copy, list):
|
|
238
|
+
train_arr = [
|
|
239
|
+
np.empty(
|
|
240
|
+
shape=(n_train,),
|
|
241
|
+
dtype=el.dtype,
|
|
242
|
+
order="C" if el.flags["C_CONTIGUOUS"] else "F",
|
|
243
|
+
)
|
|
244
|
+
for el in arr_copy
|
|
245
|
+
]
|
|
246
|
+
test_arr = [
|
|
247
|
+
np.empty(
|
|
248
|
+
shape=(n_test,),
|
|
249
|
+
dtype=el.dtype,
|
|
250
|
+
order="C" if el.flags["C_CONTIGUOUS"] else "F",
|
|
251
|
+
)
|
|
252
|
+
for el in arr_copy
|
|
253
|
+
]
|
|
254
|
+
d4p.daal_train_test_split(arr_copy, train_arr, test_arr, [train], [test])
|
|
255
|
+
train_arr = {col: train_arr[i] for i, col in enumerate(arr.columns)}
|
|
256
|
+
test_arr = {col: test_arr[i] for i, col in enumerate(arr.columns)}
|
|
257
|
+
else:
|
|
258
|
+
raise ValueError("Array can't be converted to needed format")
|
|
259
|
+
|
|
260
|
+
if pandas_is_imported:
|
|
261
|
+
if isinstance(arr, pd.core.frame.DataFrame):
|
|
262
|
+
train_arr, test_arr = pd.DataFrame(
|
|
263
|
+
train_arr, columns=arr.columns
|
|
264
|
+
), pd.DataFrame(test_arr, columns=arr.columns)
|
|
265
|
+
if isinstance(arr, pd.core.series.Series):
|
|
266
|
+
train_arr, test_arr = train_arr.reshape(n_train), test_arr.reshape(
|
|
267
|
+
n_test
|
|
268
|
+
)
|
|
269
|
+
train_arr, test_arr = pd.Series(train_arr, name=arr.name), pd.Series(
|
|
270
|
+
test_arr, name=arr.name
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
if hasattr(arr, "index"):
|
|
274
|
+
train_arr.index = train
|
|
275
|
+
test_arr.index = test
|
|
276
|
+
|
|
277
|
+
if hasattr(arr, "columns"):
|
|
278
|
+
train_arr.columns = arr.columns
|
|
279
|
+
test_arr.columns = arr.columns
|
|
280
|
+
|
|
281
|
+
if hasattr(arr, "name"):
|
|
282
|
+
train_arr.name = arr.name
|
|
283
|
+
test_arr.name = arr.name
|
|
284
|
+
|
|
285
|
+
res.append(train_arr)
|
|
286
|
+
res.append(test_arr)
|
|
287
|
+
|
|
288
|
+
return res
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
if sklearn_check_version("1.3"):
|
|
292
|
+
train_test_split = validate_params(
|
|
293
|
+
{
|
|
294
|
+
"test_size": [
|
|
295
|
+
Interval(RealNotInt, 0, 1, closed="neither"),
|
|
296
|
+
Interval(numbers.Integral, 1, None, closed="left"),
|
|
297
|
+
None,
|
|
298
|
+
],
|
|
299
|
+
"train_size": [
|
|
300
|
+
Interval(RealNotInt, 0, 1, closed="neither"),
|
|
301
|
+
Interval(numbers.Integral, 1, None, closed="left"),
|
|
302
|
+
None,
|
|
303
|
+
],
|
|
304
|
+
"random_state": ["random_state"],
|
|
305
|
+
"shuffle": ["boolean"],
|
|
306
|
+
"stratify": ["array-like", None],
|
|
307
|
+
},
|
|
308
|
+
prefer_skip_nested_validation=True,
|
|
309
|
+
)(train_test_split)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright 2021 Intel Corporation
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
# ===============================================================================
|
|
16
|
+
|
|
17
|
+
import numpy as np
|
|
18
|
+
import pytest
|
|
19
|
+
from sklearn.datasets import make_classification
|
|
20
|
+
from sklearn.model_selection import train_test_split as skl_train_test_split
|
|
21
|
+
|
|
22
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
23
|
+
from daal4py.sklearn.model_selection import train_test_split as d4p_train_test_split
|
|
24
|
+
|
|
25
|
+
N_SAMPLES = [2**i + 1 for i in range(2, 17)]
|
|
26
|
+
RANDOM_STATE = 777
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@pytest.mark.skipif(
|
|
30
|
+
not daal_check_version((2021, "P", 400)),
|
|
31
|
+
reason="train_test_split has bugfix since 2021.4 release",
|
|
32
|
+
)
|
|
33
|
+
@pytest.mark.parametrize("n_samples", N_SAMPLES)
|
|
34
|
+
def test_results_similarity(n_samples):
|
|
35
|
+
x, y = make_classification(
|
|
36
|
+
n_samples=n_samples, n_features=4, random_state=RANDOM_STATE
|
|
37
|
+
)
|
|
38
|
+
d4p_res = d4p_train_test_split(
|
|
39
|
+
x,
|
|
40
|
+
y,
|
|
41
|
+
test_size=n_samples // 2 - 1,
|
|
42
|
+
train_size=n_samples // 2 - 1,
|
|
43
|
+
random_state=RANDOM_STATE,
|
|
44
|
+
)
|
|
45
|
+
skl_res = skl_train_test_split(
|
|
46
|
+
x,
|
|
47
|
+
y,
|
|
48
|
+
test_size=n_samples // 2 - 1,
|
|
49
|
+
train_size=n_samples // 2 - 1,
|
|
50
|
+
random_state=RANDOM_STATE,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
assert len(d4p_res) == len(skl_res), "train_test_splits have different output size"
|
|
54
|
+
|
|
55
|
+
for i, _ in enumerate(d4p_res):
|
|
56
|
+
assert np.all(d4p_res[i] == skl_res[i]), "train_test_splits have different output"
|
scikit_learn_intelex-2025.4.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py
ADDED
|
File without changes
|