scikit-learn-intelex 2025.10.0__py313-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__init__.py +69 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__main__.py +58 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +338 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +455 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +199 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +38 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dispatcher.py +572 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +629 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1799 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/__main__.py +72 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/dispatcher.py +101 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +28 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/__init__.py +23 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/pairwise.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/ranking.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +39 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/split.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +34 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/__init__.py +27 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +189 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/common.py +313 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +189 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +167 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +170 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +82 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/__init__.py +17 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/__init__.py +25 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +30 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +23 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +24 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/__init__.py +29 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvc.py +278 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvr.py +158 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svc.py +306 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svr.py +155 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +124 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +269 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +48 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +418 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +19 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
- scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
- scikit_learn_intelex-2025.10.0.dist-info/LICENSE.txt +202 -0
- scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
- scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
- scikit_learn_intelex-2025.10.0.dist-info/WHEEL +5 -0
- scikit_learn_intelex-2025.10.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,561 @@
|
|
|
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 numbers
|
|
18
|
+
|
|
19
|
+
import numpy as np
|
|
20
|
+
import scipy.optimize as optimize
|
|
21
|
+
import scipy.sparse as sparse
|
|
22
|
+
import sklearn.linear_model._logistic as logistic_module
|
|
23
|
+
from sklearn.linear_model._logistic import _LOGISTIC_SOLVER_CONVERGENCE_MSG
|
|
24
|
+
from sklearn.linear_model._logistic import (
|
|
25
|
+
LogisticRegression as LogisticRegression_original,
|
|
26
|
+
)
|
|
27
|
+
from sklearn.linear_model._logistic import _check_solver
|
|
28
|
+
from sklearn.utils import check_array, check_consistent_length, check_random_state
|
|
29
|
+
from sklearn.utils.optimize import _check_optimize_result, _newton_cg
|
|
30
|
+
from sklearn.utils.validation import check_is_fitted
|
|
31
|
+
|
|
32
|
+
import daal4py as d4p
|
|
33
|
+
|
|
34
|
+
from .._n_jobs_support import control_n_jobs
|
|
35
|
+
from .._utils import PatchingConditionsChain, getFPType, sklearn_check_version
|
|
36
|
+
from ..utils.validation import check_feature_names
|
|
37
|
+
from .logistic_loss import (
|
|
38
|
+
_daal4py_cross_entropy_loss_extra_args,
|
|
39
|
+
_daal4py_grad_,
|
|
40
|
+
_daal4py_grad_hess_,
|
|
41
|
+
_daal4py_logistic_loss_extra_args,
|
|
42
|
+
_daal4py_loss_,
|
|
43
|
+
_daal4py_loss_and_grad,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
if sklearn_check_version("1.7.1"):
|
|
47
|
+
from sklearn.utils.fixes import _get_additional_lbfgs_options_dict
|
|
48
|
+
else:
|
|
49
|
+
# From https://github.com/scikit-learn/scikit-learn/blob/760edca5fb5cc3538b98ebc55171806e2a6e3e84/sklearn/utils/fixes.py#L408
|
|
50
|
+
# This should be removed if SciPy>=1.15 becomes the minimum required at some point
|
|
51
|
+
def _get_additional_lbfgs_options_dict(k, v):
|
|
52
|
+
return {k: v}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
from sklearn.linear_model._logistic import _logistic_regression_path as lr_path_original
|
|
56
|
+
from sklearn.preprocessing import LabelBinarizer, LabelEncoder
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# This code is a patch for sklearn 1.8, which is related to https://github.com/scikit-learn/scikit-learn/pull/32073
|
|
60
|
+
# where the multi_class keyword is deprecated and this aspect is removed.
|
|
61
|
+
def _check_multi_class(multi_class, solver, n_classes):
|
|
62
|
+
"""Computes the multi class type, either "multinomial" or "ovr".
|
|
63
|
+
For `n_classes` > 2 and a solver that supports it, returns "multinomial".
|
|
64
|
+
For all other cases, in particular binary classification, return "ovr".
|
|
65
|
+
"""
|
|
66
|
+
if multi_class == "auto":
|
|
67
|
+
if solver in ("liblinear",):
|
|
68
|
+
multi_class = "ovr"
|
|
69
|
+
elif n_classes > 2:
|
|
70
|
+
multi_class = "multinomial"
|
|
71
|
+
else:
|
|
72
|
+
multi_class = "ovr"
|
|
73
|
+
if multi_class == "multinomial" and solver in ("liblinear",):
|
|
74
|
+
raise ValueError("Solver %s does not support a multinomial backend." % solver)
|
|
75
|
+
return multi_class
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# Code adapted from sklearn.linear_model.logistic version 0.21
|
|
79
|
+
def __logistic_regression_path(
|
|
80
|
+
X,
|
|
81
|
+
y,
|
|
82
|
+
pos_class=None,
|
|
83
|
+
Cs=10,
|
|
84
|
+
fit_intercept=True,
|
|
85
|
+
max_iter=100,
|
|
86
|
+
tol=1e-4,
|
|
87
|
+
verbose=0,
|
|
88
|
+
solver="lbfgs",
|
|
89
|
+
coef=None,
|
|
90
|
+
class_weight=None,
|
|
91
|
+
dual=False,
|
|
92
|
+
penalty="l2",
|
|
93
|
+
intercept_scaling=1.0,
|
|
94
|
+
multi_class="auto",
|
|
95
|
+
random_state=None,
|
|
96
|
+
check_input=True,
|
|
97
|
+
max_squared_sum=None,
|
|
98
|
+
sample_weight=None,
|
|
99
|
+
l1_ratio=None,
|
|
100
|
+
n_threads=1,
|
|
101
|
+
):
|
|
102
|
+
|
|
103
|
+
# Comment 2025-08-04: this file might have dead code paths from unsupported solvers.
|
|
104
|
+
# It appears to have initially been a copy-paste of scikit-learn with a few additions
|
|
105
|
+
# for varying levels of offloading to oneDAL, but later on a check was added that
|
|
106
|
+
# calls 'lr_path_original' early on when it won't end up offloading anything to oneDAL.
|
|
107
|
+
# Some parts of the file have been selectively updated since the initial copy-paste
|
|
108
|
+
# to reflect newer additions to sklearn, but they are not synch. The rest of the file
|
|
109
|
+
# remains as it was before the early offload conditions, so some sections might have
|
|
110
|
+
# become unreachable.
|
|
111
|
+
|
|
112
|
+
if isinstance(Cs, numbers.Integral):
|
|
113
|
+
Cs = np.logspace(-4, 4, Cs)
|
|
114
|
+
|
|
115
|
+
solver = _check_solver(solver, penalty, dual)
|
|
116
|
+
|
|
117
|
+
# Preprocessing.
|
|
118
|
+
if check_input:
|
|
119
|
+
X = check_array(
|
|
120
|
+
X,
|
|
121
|
+
accept_sparse=False,
|
|
122
|
+
dtype=np.float64,
|
|
123
|
+
accept_large_sparse=False,
|
|
124
|
+
)
|
|
125
|
+
y = check_array(y, ensure_2d=False, dtype=None)
|
|
126
|
+
check_consistent_length(X, y)
|
|
127
|
+
_, n_features = X.shape
|
|
128
|
+
|
|
129
|
+
classes = np.unique(y)
|
|
130
|
+
random_state = check_random_state(random_state)
|
|
131
|
+
|
|
132
|
+
multi_class = _check_multi_class(multi_class, solver, len(classes))
|
|
133
|
+
if pos_class is None and multi_class != "multinomial":
|
|
134
|
+
if classes.size > 2:
|
|
135
|
+
raise ValueError("To fit OvR, use the pos_class argument")
|
|
136
|
+
# np.unique(y) gives labels in sorted order.
|
|
137
|
+
pos_class = classes[1]
|
|
138
|
+
|
|
139
|
+
le = LabelEncoder()
|
|
140
|
+
|
|
141
|
+
# For doing a ovr, we need to mask the labels first. for the
|
|
142
|
+
# multinomial case this is not necessary.
|
|
143
|
+
if multi_class == "ovr":
|
|
144
|
+
y_bin = (y == pos_class).astype(X.dtype)
|
|
145
|
+
w0 = np.zeros(n_features + 1, dtype=X.dtype)
|
|
146
|
+
else:
|
|
147
|
+
Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
|
|
148
|
+
w0 = np.zeros((classes.size, n_features + 1), order="C", dtype=X.dtype)
|
|
149
|
+
|
|
150
|
+
# Adoption of https://github.com/scikit-learn/scikit-learn/pull/26721
|
|
151
|
+
sw_sum = len(X)
|
|
152
|
+
|
|
153
|
+
if coef is not None:
|
|
154
|
+
# it must work both giving the bias term and not
|
|
155
|
+
if multi_class == "ovr":
|
|
156
|
+
if coef.size not in (n_features, w0.size):
|
|
157
|
+
raise ValueError(
|
|
158
|
+
"Initialization coef is of shape %d, expected shape "
|
|
159
|
+
"%d or %d" % (coef.size, n_features, w0.size)
|
|
160
|
+
)
|
|
161
|
+
w0[-coef.size :] = np.roll(coef, 1, -1) if coef.size != n_features else coef
|
|
162
|
+
else:
|
|
163
|
+
# For binary problems coef.shape[0] should be 1, otherwise it
|
|
164
|
+
# should be classes.size.
|
|
165
|
+
n_classes = classes.size
|
|
166
|
+
if n_classes == 2:
|
|
167
|
+
n_classes = 1
|
|
168
|
+
|
|
169
|
+
if coef.shape[0] != n_classes or coef.shape[1] not in (
|
|
170
|
+
n_features,
|
|
171
|
+
n_features + 1,
|
|
172
|
+
):
|
|
173
|
+
raise ValueError(
|
|
174
|
+
"Initialization coef is of shape (%d, %d), expected "
|
|
175
|
+
"shape (%d, %d) or (%d, %d)"
|
|
176
|
+
% (
|
|
177
|
+
coef.shape[0],
|
|
178
|
+
coef.shape[1],
|
|
179
|
+
classes.size,
|
|
180
|
+
n_features,
|
|
181
|
+
classes.size,
|
|
182
|
+
n_features + 1,
|
|
183
|
+
)
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
w0[:, -coef.shape[1] :] = (
|
|
187
|
+
np.roll(coef, 1, -1) if coef.shape[1] != n_features else coef
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
C_daal_multiplier = 1
|
|
191
|
+
|
|
192
|
+
if multi_class == "multinomial":
|
|
193
|
+
# fmin_l_bfgs_b and newton-cg accepts only ravelled parameters.
|
|
194
|
+
if classes.size == 2:
|
|
195
|
+
w0 = w0[-1:, :]
|
|
196
|
+
w0 = w0.ravel(order="C")
|
|
197
|
+
target = Y_multi
|
|
198
|
+
|
|
199
|
+
# Note: scikit-learn does a theoretically incorrect procedure when using
|
|
200
|
+
# multi_class='multinomial' with two classes. This converts the problem
|
|
201
|
+
# into an equivalent problem for binary logistic regression.
|
|
202
|
+
if solver == "lbfgs":
|
|
203
|
+
if classes.size == 2:
|
|
204
|
+
C_daal_multiplier = 2
|
|
205
|
+
w0 *= 2
|
|
206
|
+
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
207
|
+
else:
|
|
208
|
+
daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
|
|
209
|
+
func = _daal4py_loss_and_grad
|
|
210
|
+
|
|
211
|
+
elif solver == "newton-cg":
|
|
212
|
+
if classes.size == 2:
|
|
213
|
+
C_daal_multiplier = 2
|
|
214
|
+
w0 *= 2
|
|
215
|
+
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
216
|
+
else:
|
|
217
|
+
daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
|
|
218
|
+
func = _daal4py_loss_
|
|
219
|
+
grad = _daal4py_grad_
|
|
220
|
+
hess = _daal4py_grad_hess_
|
|
221
|
+
else:
|
|
222
|
+
target = y_bin
|
|
223
|
+
if solver == "lbfgs":
|
|
224
|
+
func = _daal4py_loss_and_grad
|
|
225
|
+
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
226
|
+
elif solver == "newton-cg":
|
|
227
|
+
daal_extra_args_func = _daal4py_logistic_loss_extra_args
|
|
228
|
+
func = _daal4py_loss_
|
|
229
|
+
grad = _daal4py_grad_
|
|
230
|
+
hess = _daal4py_grad_hess_
|
|
231
|
+
|
|
232
|
+
coefs = list()
|
|
233
|
+
n_iter = np.zeros(len(Cs), dtype=np.int32)
|
|
234
|
+
for i, C in enumerate(Cs):
|
|
235
|
+
if solver == "lbfgs":
|
|
236
|
+
extra_args = daal_extra_args_func(
|
|
237
|
+
classes.size,
|
|
238
|
+
w0,
|
|
239
|
+
X,
|
|
240
|
+
target,
|
|
241
|
+
0.0,
|
|
242
|
+
1.0 / (2 * C * C_daal_multiplier * sw_sum),
|
|
243
|
+
fit_intercept,
|
|
244
|
+
value=True,
|
|
245
|
+
gradient=True,
|
|
246
|
+
hessian=False,
|
|
247
|
+
)
|
|
248
|
+
|
|
249
|
+
iprint = [-1, 50, 1, 100, 101][
|
|
250
|
+
np.searchsorted(np.array([0, 1, 2, 3]), verbose)
|
|
251
|
+
]
|
|
252
|
+
# Note: this uses more correction pairs than the implementation in scikit-learn,
|
|
253
|
+
# which means better approximation of the Hessian at the expense of slower updates.
|
|
254
|
+
# This is beneficial for high-dimensional convex problems without bound constraints
|
|
255
|
+
# like the logistic regression being fitted here. For larger problems with sparse
|
|
256
|
+
# data (currently not supported), it might benefit from increasing the number further.
|
|
257
|
+
opt_res = optimize.minimize(
|
|
258
|
+
func,
|
|
259
|
+
w0,
|
|
260
|
+
method="L-BFGS-B",
|
|
261
|
+
jac=True,
|
|
262
|
+
args=extra_args,
|
|
263
|
+
options={
|
|
264
|
+
"maxiter": max_iter,
|
|
265
|
+
"maxcor": 50,
|
|
266
|
+
"maxls": 50,
|
|
267
|
+
"gtol": tol,
|
|
268
|
+
"ftol": 64 * np.finfo(float).eps,
|
|
269
|
+
**_get_additional_lbfgs_options_dict("iprint", iprint),
|
|
270
|
+
},
|
|
271
|
+
)
|
|
272
|
+
n_iter_i = _check_optimize_result(
|
|
273
|
+
solver,
|
|
274
|
+
opt_res,
|
|
275
|
+
max_iter,
|
|
276
|
+
extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG,
|
|
277
|
+
)
|
|
278
|
+
w0, loss = opt_res.x, opt_res.fun
|
|
279
|
+
if C_daal_multiplier == 2:
|
|
280
|
+
w0 /= 2
|
|
281
|
+
elif solver == "newton-cg":
|
|
282
|
+
|
|
283
|
+
def make_ncg_funcs(f, value=False, gradient=False, hessian=False):
|
|
284
|
+
daal_penaltyL2 = 1.0 / (2 * C * C_daal_multiplier * sw_sum)
|
|
285
|
+
_obj_, X_, y_, n_samples = daal_extra_args_func(
|
|
286
|
+
classes.size,
|
|
287
|
+
w0,
|
|
288
|
+
X,
|
|
289
|
+
target,
|
|
290
|
+
0.0,
|
|
291
|
+
daal_penaltyL2,
|
|
292
|
+
fit_intercept,
|
|
293
|
+
value=value,
|
|
294
|
+
gradient=gradient,
|
|
295
|
+
hessian=hessian,
|
|
296
|
+
)
|
|
297
|
+
|
|
298
|
+
def _func_(x, *args):
|
|
299
|
+
return f(x, _obj_, *args)
|
|
300
|
+
|
|
301
|
+
return _func_, (X_, y_, n_samples, daal_penaltyL2)
|
|
302
|
+
|
|
303
|
+
loss_func, extra_args = make_ncg_funcs(func, value=True)
|
|
304
|
+
grad_func, _ = make_ncg_funcs(grad, gradient=True)
|
|
305
|
+
grad_hess_func, _ = make_ncg_funcs(hess, gradient=True)
|
|
306
|
+
w0, n_iter_i = _newton_cg(
|
|
307
|
+
grad_hess_func,
|
|
308
|
+
loss_func,
|
|
309
|
+
grad_func,
|
|
310
|
+
w0,
|
|
311
|
+
args=extra_args,
|
|
312
|
+
maxiter=max_iter,
|
|
313
|
+
tol=tol,
|
|
314
|
+
)
|
|
315
|
+
if C_daal_multiplier == 2:
|
|
316
|
+
w0 /= 2
|
|
317
|
+
|
|
318
|
+
else:
|
|
319
|
+
raise ValueError(
|
|
320
|
+
"solver must be one of {'lbfgs', 'newton-cg'}, got '%s' instead" % solver
|
|
321
|
+
)
|
|
322
|
+
|
|
323
|
+
if multi_class == "multinomial":
|
|
324
|
+
if classes.size == 2:
|
|
325
|
+
multi_w0 = w0[np.newaxis, :]
|
|
326
|
+
else:
|
|
327
|
+
multi_w0 = np.reshape(w0, (classes.size, -1))
|
|
328
|
+
coefs.append(multi_w0.copy())
|
|
329
|
+
else:
|
|
330
|
+
coefs.append(w0.copy())
|
|
331
|
+
|
|
332
|
+
n_iter[i] = n_iter_i
|
|
333
|
+
|
|
334
|
+
if fit_intercept:
|
|
335
|
+
for i, ci in enumerate(coefs):
|
|
336
|
+
coefs[i] = np.roll(ci, -1, -1)
|
|
337
|
+
else:
|
|
338
|
+
for i, ci in enumerate(coefs):
|
|
339
|
+
coefs[i] = np.delete(ci, 0, axis=-1)
|
|
340
|
+
|
|
341
|
+
return np.array(coefs), np.array(Cs), n_iter
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
def daal4py_fit(self, X, y, sample_weight=None):
|
|
345
|
+
which, what = logistic_module, "_logistic_regression_path"
|
|
346
|
+
replacer = logistic_regression_path
|
|
347
|
+
descriptor = getattr(which, what, None)
|
|
348
|
+
setattr(which, what, replacer)
|
|
349
|
+
try:
|
|
350
|
+
clf = LogisticRegression_original.fit(self, X, y, sample_weight)
|
|
351
|
+
finally:
|
|
352
|
+
setattr(which, what, descriptor)
|
|
353
|
+
return clf
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
def daal4py_predict(self, X, resultsToEvaluate):
|
|
357
|
+
check_is_fitted(self)
|
|
358
|
+
check_feature_names(self, X, reset=False)
|
|
359
|
+
X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
|
|
360
|
+
try:
|
|
361
|
+
fptype = getFPType(X)
|
|
362
|
+
except ValueError:
|
|
363
|
+
fptype = None
|
|
364
|
+
|
|
365
|
+
if resultsToEvaluate == "computeClassLabels":
|
|
366
|
+
_function_name = "predict"
|
|
367
|
+
elif resultsToEvaluate == "computeClassProbabilities":
|
|
368
|
+
_function_name = "predict_proba"
|
|
369
|
+
elif resultsToEvaluate == "computeClassLogProbabilities":
|
|
370
|
+
_function_name = "predict_log_proba"
|
|
371
|
+
else:
|
|
372
|
+
raise ValueError(
|
|
373
|
+
"resultsToEvaluate must be in [computeClassLabels, \
|
|
374
|
+
computeClassProbabilities, computeClassLogProbabilities]"
|
|
375
|
+
)
|
|
376
|
+
|
|
377
|
+
_patching_status = PatchingConditionsChain(
|
|
378
|
+
f"sklearn.linear_model.LogisticRegression.{_function_name}"
|
|
379
|
+
)
|
|
380
|
+
if _function_name != "predict":
|
|
381
|
+
multi_class = getattr(self, "multi_class", "auto")
|
|
382
|
+
_patching_status.and_conditions(
|
|
383
|
+
[
|
|
384
|
+
(
|
|
385
|
+
self.classes_.size == 2
|
|
386
|
+
or _check_multi_class(
|
|
387
|
+
multi_class if multi_class != "deprecated" else "auto",
|
|
388
|
+
self.solver,
|
|
389
|
+
self.classes_.size,
|
|
390
|
+
)
|
|
391
|
+
!= "ovr",
|
|
392
|
+
f"selected multiclass option is not supported for n_classes > 2.",
|
|
393
|
+
),
|
|
394
|
+
(
|
|
395
|
+
not (self.classes_.size == 2 and multi_class == "multinomial"),
|
|
396
|
+
"multi_class='multinomial' not supported with binary data",
|
|
397
|
+
),
|
|
398
|
+
],
|
|
399
|
+
)
|
|
400
|
+
|
|
401
|
+
_dal_ready = _patching_status.and_conditions(
|
|
402
|
+
[
|
|
403
|
+
(not sparse.issparse(X), "X is sparse. Sparse input is not supported."),
|
|
404
|
+
(
|
|
405
|
+
not sparse.issparse(self.coef_),
|
|
406
|
+
"self.coef_ is sparse. Sparse coefficients are not supported.",
|
|
407
|
+
),
|
|
408
|
+
(fptype is not None, "Unable to get dtype."),
|
|
409
|
+
]
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
_patching_status.write_log()
|
|
413
|
+
if _dal_ready:
|
|
414
|
+
n_features = self.coef_.shape[1]
|
|
415
|
+
if X.shape[1] != n_features:
|
|
416
|
+
raise ValueError(
|
|
417
|
+
f"X has {X.shape[1]} features, "
|
|
418
|
+
f"but LogisticRegression is expecting {n_features} features as input"
|
|
419
|
+
)
|
|
420
|
+
builder = d4p.logistic_regression_model_builder(X.shape[1], len(self.classes_))
|
|
421
|
+
builder.set_beta(self.coef_, self.intercept_)
|
|
422
|
+
predict = d4p.logistic_regression_prediction(
|
|
423
|
+
nClasses=len(self.classes_),
|
|
424
|
+
fptype=fptype,
|
|
425
|
+
method="defaultDense",
|
|
426
|
+
resultsToEvaluate=resultsToEvaluate,
|
|
427
|
+
)
|
|
428
|
+
res = predict.compute(X, builder.model)
|
|
429
|
+
if resultsToEvaluate == "computeClassLabels":
|
|
430
|
+
res = res.prediction
|
|
431
|
+
if (
|
|
432
|
+
not np.array_equal(self.classes_, np.arange(0, len(self.classes_)))
|
|
433
|
+
or self.classes_.dtype != X.dtype
|
|
434
|
+
):
|
|
435
|
+
res = self.classes_.take(np.asarray(res, dtype=np.intp))
|
|
436
|
+
elif resultsToEvaluate == "computeClassProbabilities":
|
|
437
|
+
res = res.probabilities
|
|
438
|
+
elif resultsToEvaluate == "computeClassLogProbabilities":
|
|
439
|
+
res = res.logProbabilities
|
|
440
|
+
else:
|
|
441
|
+
raise ValueError(
|
|
442
|
+
"resultsToEvaluate must be in [computeClassLabels, \
|
|
443
|
+
computeClassProbabilities, computeClassLogProbabilities]"
|
|
444
|
+
)
|
|
445
|
+
if res.shape[1] == 1:
|
|
446
|
+
res = np.ravel(res)
|
|
447
|
+
return res
|
|
448
|
+
|
|
449
|
+
if resultsToEvaluate == "computeClassLabels":
|
|
450
|
+
return LogisticRegression_original.predict(self, X)
|
|
451
|
+
if resultsToEvaluate == "computeClassProbabilities":
|
|
452
|
+
return LogisticRegression_original.predict_proba(self, X)
|
|
453
|
+
if resultsToEvaluate == "computeClassLogProbabilities":
|
|
454
|
+
return LogisticRegression_original.predict_log_proba(self, X)
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
def logistic_regression_path(*args, **kwargs):
|
|
458
|
+
|
|
459
|
+
_patching_status = PatchingConditionsChain(
|
|
460
|
+
"sklearn.linear_model.LogisticRegression.fit"
|
|
461
|
+
)
|
|
462
|
+
_dal_ready = _patching_status.and_conditions(
|
|
463
|
+
[
|
|
464
|
+
(
|
|
465
|
+
kwargs["solver"] in ["lbfgs", "newton-cg"],
|
|
466
|
+
f"'{kwargs['solver']}' solver is not supported. "
|
|
467
|
+
"Only 'lbfgs' and 'newton-cg' solvers are supported.",
|
|
468
|
+
),
|
|
469
|
+
(not sparse.issparse(args[0]), "X is sparse. Sparse input is not supported."),
|
|
470
|
+
(kwargs["sample_weight"] is None, "Sample weights are not supported."),
|
|
471
|
+
(kwargs["class_weight"] is None, "Class weights are not supported."),
|
|
472
|
+
(
|
|
473
|
+
kwargs["penalty"]
|
|
474
|
+
in (["l2", "deprecated"] if sklearn_check_version("1.8") else ["l2"]),
|
|
475
|
+
"Penalties other than l2 are not supported.",
|
|
476
|
+
),
|
|
477
|
+
(not kwargs["l1_ratio"], "L1 regularization is not supported."),
|
|
478
|
+
(
|
|
479
|
+
not (kwargs["solver"] == "newton-cg" and not kwargs["fit_intercept"]),
|
|
480
|
+
"'newton-cg' solver without intercept is not supported.",
|
|
481
|
+
),
|
|
482
|
+
]
|
|
483
|
+
)
|
|
484
|
+
if not _dal_ready:
|
|
485
|
+
_patching_status.write_log()
|
|
486
|
+
return lr_path_original(*args, **kwargs)
|
|
487
|
+
|
|
488
|
+
if sklearn_check_version("1.8"):
|
|
489
|
+
kwargs.pop("classes", None)
|
|
490
|
+
res = __logistic_regression_path(*(args[:2]), **kwargs)
|
|
491
|
+
else:
|
|
492
|
+
res = __logistic_regression_path(*args, **kwargs)
|
|
493
|
+
|
|
494
|
+
_patching_status.write_log()
|
|
495
|
+
return res
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
@control_n_jobs(
|
|
499
|
+
decorated_methods=["fit", "predict", "predict_proba", "predict_log_proba"]
|
|
500
|
+
)
|
|
501
|
+
class LogisticRegression(LogisticRegression_original):
|
|
502
|
+
__doc__ = LogisticRegression_original.__doc__
|
|
503
|
+
|
|
504
|
+
if sklearn_check_version("1.2"):
|
|
505
|
+
_parameter_constraints: dict = {
|
|
506
|
+
**LogisticRegression_original._parameter_constraints
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
def __init__(
|
|
510
|
+
self,
|
|
511
|
+
penalty="l2",
|
|
512
|
+
dual=False,
|
|
513
|
+
tol=1e-4,
|
|
514
|
+
C=1.0,
|
|
515
|
+
fit_intercept=True,
|
|
516
|
+
intercept_scaling=1,
|
|
517
|
+
class_weight=None,
|
|
518
|
+
random_state=None,
|
|
519
|
+
solver="lbfgs",
|
|
520
|
+
max_iter=100,
|
|
521
|
+
multi_class="auto",
|
|
522
|
+
verbose=0,
|
|
523
|
+
warm_start=False,
|
|
524
|
+
n_jobs=None,
|
|
525
|
+
l1_ratio=None,
|
|
526
|
+
):
|
|
527
|
+
self.penalty = penalty
|
|
528
|
+
self.dual = dual
|
|
529
|
+
self.tol = tol
|
|
530
|
+
self.C = C
|
|
531
|
+
self.fit_intercept = fit_intercept
|
|
532
|
+
self.intercept_scaling = intercept_scaling
|
|
533
|
+
self.class_weight = class_weight
|
|
534
|
+
self.random_state = random_state
|
|
535
|
+
self.solver = solver
|
|
536
|
+
self.max_iter = max_iter
|
|
537
|
+
self.multi_class = multi_class
|
|
538
|
+
self.verbose = verbose
|
|
539
|
+
self.warm_start = warm_start
|
|
540
|
+
self.n_jobs = n_jobs
|
|
541
|
+
self.l1_ratio = l1_ratio
|
|
542
|
+
|
|
543
|
+
def fit(self, X, y, sample_weight=None):
|
|
544
|
+
check_feature_names(self, X, reset=True)
|
|
545
|
+
if sklearn_check_version("1.2"):
|
|
546
|
+
self._validate_params()
|
|
547
|
+
return daal4py_fit(self, X, y, sample_weight)
|
|
548
|
+
|
|
549
|
+
def predict(self, X):
|
|
550
|
+
return daal4py_predict(self, X, "computeClassLabels")
|
|
551
|
+
|
|
552
|
+
def predict_log_proba(self, X):
|
|
553
|
+
return daal4py_predict(self, X, "computeClassLogProbabilities")
|
|
554
|
+
|
|
555
|
+
def predict_proba(self, X):
|
|
556
|
+
return daal4py_predict(self, X, "computeClassProbabilities")
|
|
557
|
+
|
|
558
|
+
fit.__doc__ = LogisticRegression_original.fit.__doc__
|
|
559
|
+
predict.__doc__ = LogisticRegression_original.predict.__doc__
|
|
560
|
+
predict_log_proba.__doc__ = LogisticRegression_original.predict_log_proba.__doc__
|
|
561
|
+
predict_proba.__doc__ = LogisticRegression_original.predict_proba.__doc__
|
scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
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 ._ridge import *
|