scikit-learn-intelex 2024.1.0__py312-none-win_amd64.whl → 2025.1.0__py312-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of scikit-learn-intelex might be problematic. Click here for more details.

Files changed (277) hide show
  1. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
  5. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
  6. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
  7. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  8. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  9. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +248 -0
  10. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  11. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  12. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  13. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
  14. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  15. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition}/__init__.py +3 -3
  16. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
  17. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +196 -0
  18. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +337 -0
  19. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  20. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
  21. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  22. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -29
  23. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
  24. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
  25. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
  26. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
  27. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  28. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  29. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
  30. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  31. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +208 -0
  32. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  33. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +4 -2
  34. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
  35. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  36. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +236 -0
  37. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  38. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  39. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  40. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  41. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  42. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  43. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/_models_info.py +13 -22
  44. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  45. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/test_patching.py +10 -42
  46. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/utils/_launch_algorithms.py +4 -5
  47. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  48. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
  49. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
  50. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
  51. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  52. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  53. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  54. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
  55. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
  56. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
  57. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  58. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
  59. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/__init__.py +83 -0
  60. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_config.py +54 -0
  61. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_device_offload.py +222 -0
  62. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  64. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
  65. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
  66. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  67. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  68. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  69. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  70. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
  71. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +564 -0
  72. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
  73. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  74. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  75. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  76. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
  77. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  78. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  79. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
  80. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
  81. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +125 -0
  82. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +76 -0
  83. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance}/__init__.py +3 -2
  84. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
  85. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
  86. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  87. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
  88. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  89. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +154 -0
  90. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +126 -0
  91. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +414 -0
  92. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  93. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
  94. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
  95. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
  96. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  97. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +727 -0
  98. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  99. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  100. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
  101. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
  102. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
  103. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
  104. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
  105. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +250 -0
  106. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  107. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  108. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  109. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +767 -0
  110. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  111. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  112. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
  113. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
  114. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  115. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  116. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
  117. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
  118. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  119. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  120. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +176 -0
  121. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  122. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/test_common.py +57 -0
  123. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +162 -0
  124. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +102 -0
  125. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
  126. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +81 -0
  127. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +56 -0
  128. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/validation.py +440 -0
  129. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__init__.py +10 -7
  130. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_config.py +22 -16
  131. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +126 -0
  132. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_utils.py +27 -4
  133. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  134. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +230 -0
  135. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +345 -0
  136. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +270 -0
  137. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +404 -0
  138. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  139. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +19 -10
  140. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +395 -0
  141. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
  142. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +159 -0
  143. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
  144. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
  145. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +398 -0
  146. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +237 -0
  147. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +425 -0
  148. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_preview_pca.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +25 -9
  149. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +241 -60
  150. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +250 -188
  151. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +39 -21
  152. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +16 -2
  153. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  154. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +13 -0
  155. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +482 -0
  156. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +425 -0
  157. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +341 -0
  158. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex}/linear_model/logistic_regression.py +194 -133
  159. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +7 -0
  160. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +207 -0
  161. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  162. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  163. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +134 -0
  164. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +4 -0
  165. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +5 -0
  166. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
  167. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +5 -0
  168. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +1 -1
  169. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +236 -0
  170. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +53 -6
  171. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +51 -155
  172. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +46 -149
  173. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +55 -100
  174. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +16 -18
  175. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview}/__init__.py +1 -3
  176. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +138 -0
  177. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +18 -5
  178. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  179. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +233 -0
  180. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +266 -0
  181. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model}/__init__.py +19 -19
  182. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +424 -0
  183. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
  184. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +1 -0
  185. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  186. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  187. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
  188. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  189. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
  190. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
  191. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  192. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +21 -0
  193. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  194. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
  195. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  196. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition}/__init__.py +3 -2
  197. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +11 -12
  198. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  199. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
  200. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +4 -12
  201. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
  202. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +3 -1
  203. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +14 -18
  204. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
  205. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  206. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
  207. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
  208. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
  209. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +339 -0
  210. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +172 -78
  211. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +74 -70
  212. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +170 -77
  213. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +66 -66
  214. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +12 -20
  215. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +390 -0
  216. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
  217. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +379 -0
  218. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +276 -0
  219. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
  220. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +6 -8
  221. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +385 -0
  222. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +321 -0
  223. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +44 -0
  224. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +371 -0
  225. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  226. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +82 -0
  227. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +89 -0
  228. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/METADATA +231 -230
  229. scikit_learn_intelex-2025.1.0.dist-info/RECORD +257 -0
  230. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/WHEEL +1 -1
  231. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -223
  232. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
  233. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
  234. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -17
  235. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -27
  236. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -388
  237. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  238. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -82
  239. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -28
  240. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/neighbors/lof.py +0 -436
  241. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  242. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -376
  243. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -98
  244. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/pca.py +0 -376
  245. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_preview_logistic_regression.py +0 -59
  246. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -188
  247. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -225
  248. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -227
  249. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
  250. scikit_learn_intelex-2024.1.0.dist-info/RECORD +0 -97
  251. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  252. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  253. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  254. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  255. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  256. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  257. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  258. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  259. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  260. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  261. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  262. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  263. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  264. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  265. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  266. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  267. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  268. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  269. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  270. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  271. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  272. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  273. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  274. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  275. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  276. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/LICENSE.txt +0 -0
  277. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  # ===============================================================================
2
- # Copyright 2023 Intel Corporation
2
+ # Copyright 2024 Intel Corporation
3
3
  #
4
4
  # Licensed under the Apache License, Version 2.0 (the "License");
5
5
  # you may not use this file except in compliance with the License.
@@ -17,47 +17,60 @@
17
17
  import logging
18
18
  from abc import ABC
19
19
 
20
- import sklearn.linear_model._logistic as logistic_module
21
-
22
20
  from daal4py.sklearn._utils import daal_check_version
23
21
  from daal4py.sklearn.linear_model.logistic_path import (
24
- LogisticRegression,
25
- daal4py_predict,
26
- logistic_regression_path,
22
+ LogisticRegression as _daal4py_LogisticRegression,
27
23
  )
28
24
 
29
-
30
- class BaseLogisticRegression(ABC):
31
- def _save_attributes(self):
32
- assert hasattr(self, "_onedal_estimator")
33
- self.classes_ = self._onedal_estimator.classes_
34
- self.coef_ = self._onedal_estimator.coef_
35
- self.intercept_ = self._onedal_estimator.intercept_
36
- self.n_features_in_ = self._onedal_estimator.n_features_in_
37
- self.n_iter_ = self._onedal_estimator.n_iter_
38
-
39
-
40
25
  if daal_check_version((2024, "P", 1)):
41
26
  import numpy as np
42
27
  from scipy.sparse import issparse
43
- from sklearn.linear_model import LogisticRegression as sklearn_LogisticRegression
44
- from sklearn.utils.validation import check_X_y
28
+ from sklearn.linear_model import LogisticRegression as _sklearn_LogisticRegression
29
+ from sklearn.metrics import accuracy_score
30
+ from sklearn.utils.multiclass import type_of_target
31
+ from sklearn.utils.validation import check_array, check_is_fitted, check_X_y
45
32
 
33
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
46
34
  from daal4py.sklearn._utils import sklearn_check_version
35
+ from daal4py.sklearn.linear_model.logistic_path import daal4py_fit, daal4py_predict
47
36
  from onedal.linear_model import LogisticRegression as onedal_LogisticRegression
48
- from onedal.utils import _num_features, _num_samples
49
-
50
- from ..._device_offload import dispatch, wrap_output_data
51
- from ..._utils import PatchingConditionsChain, get_patch_message
52
- from ...utils.validation import _assert_all_finite
53
-
54
- class LogisticRegression(sklearn_LogisticRegression, BaseLogisticRegression):
55
- __doc__ = sklearn_LogisticRegression.__doc__
56
- intercept_, coef_, n_iter_ = None, None, None
37
+ from onedal.utils import _num_samples
38
+
39
+ from .._config import get_config
40
+ from .._device_offload import dispatch, wrap_output_data
41
+ from .._utils import PatchingConditionsChain, get_patch_message
42
+
43
+ if sklearn_check_version("1.6"):
44
+ from sklearn.utils.validation import validate_data
45
+ else:
46
+ validate_data = _sklearn_LogisticRegression._validate_data
47
+
48
+ _sparsity_enabled = daal_check_version((2024, "P", 700))
49
+
50
+ class BaseLogisticRegression(ABC):
51
+ def _save_attributes(self):
52
+ assert hasattr(self, "_onedal_estimator")
53
+ self.classes_ = self._onedal_estimator.classes_
54
+ self.coef_ = self._onedal_estimator.coef_
55
+ self.intercept_ = self._onedal_estimator.intercept_
56
+ self.n_features_in_ = self._onedal_estimator.n_features_in_
57
+ self.n_iter_ = self._onedal_estimator.n_iter_
58
+
59
+ @control_n_jobs(
60
+ decorated_methods=[
61
+ "fit",
62
+ "predict",
63
+ "predict_proba",
64
+ "predict_log_proba",
65
+ "score",
66
+ ]
67
+ )
68
+ class LogisticRegression(_sklearn_LogisticRegression, BaseLogisticRegression):
69
+ __doc__ = _sklearn_LogisticRegression.__doc__
57
70
 
58
71
  if sklearn_check_version("1.2"):
59
72
  _parameter_constraints: dict = {
60
- **sklearn_LogisticRegression._parameter_constraints
73
+ **_sklearn_LogisticRegression._parameter_constraints
61
74
  }
62
75
 
63
76
  def __init__(
@@ -71,9 +84,9 @@ if daal_check_version((2024, "P", 1)):
71
84
  intercept_scaling=1,
72
85
  class_weight=None,
73
86
  random_state=None,
74
- solver="lbfgs" if sklearn_check_version("0.22") else "liblinear",
87
+ solver="lbfgs",
75
88
  max_iter=100,
76
- multi_class="auto" if sklearn_check_version("0.22") else "ovr",
89
+ multi_class="deprecated" if sklearn_check_version("1.5") else "auto",
77
90
  verbose=0,
78
91
  warm_start=False,
79
92
  n_jobs=None,
@@ -97,9 +110,9 @@ if daal_check_version((2024, "P", 1)):
97
110
  l1_ratio=l1_ratio,
98
111
  )
99
112
 
113
+ _onedal_cpu_fit = daal4py_fit
114
+
100
115
  def fit(self, X, y, sample_weight=None):
101
- if sklearn_check_version("1.0"):
102
- self._check_feature_names(X, reset=True)
103
116
  if sklearn_check_version("1.2"):
104
117
  self._validate_params()
105
118
  dispatch(
@@ -107,7 +120,7 @@ if daal_check_version((2024, "P", 1)):
107
120
  "fit",
108
121
  {
109
122
  "onedal": self.__class__._onedal_fit,
110
- "sklearn": sklearn_LogisticRegression.fit,
123
+ "sklearn": _sklearn_LogisticRegression.fit,
111
124
  },
112
125
  X,
113
126
  y,
@@ -117,58 +130,62 @@ if daal_check_version((2024, "P", 1)):
117
130
 
118
131
  @wrap_output_data
119
132
  def predict(self, X):
120
- if sklearn_check_version("1.0"):
121
- self._check_feature_names(X, reset=False)
133
+ check_is_fitted(self)
122
134
  return dispatch(
123
135
  self,
124
136
  "predict",
125
137
  {
126
138
  "onedal": self.__class__._onedal_predict,
127
- "sklearn": sklearn_LogisticRegression.predict,
139
+ "sklearn": _sklearn_LogisticRegression.predict,
128
140
  },
129
141
  X,
130
142
  )
131
143
 
132
144
  @wrap_output_data
133
145
  def predict_proba(self, X):
134
- if sklearn_check_version("1.0"):
135
- self._check_feature_names(X, reset=False)
146
+ check_is_fitted(self)
136
147
  return dispatch(
137
148
  self,
138
- "predict",
149
+ "predict_proba",
139
150
  {
140
151
  "onedal": self.__class__._onedal_predict_proba,
141
- "sklearn": sklearn_LogisticRegression.predict_proba,
152
+ "sklearn": _sklearn_LogisticRegression.predict_proba,
142
153
  },
143
154
  X,
144
155
  )
145
156
 
146
157
  @wrap_output_data
147
158
  def predict_log_proba(self, X):
148
- if sklearn_check_version("1.0"):
149
- self._check_feature_names(X, reset=False)
159
+ check_is_fitted(self)
150
160
  return dispatch(
151
161
  self,
152
- "predict",
162
+ "predict_log_proba",
153
163
  {
154
164
  "onedal": self.__class__._onedal_predict_log_proba,
155
- "sklearn": sklearn_LogisticRegression.predict_log_proba,
165
+ "sklearn": _sklearn_LogisticRegression.predict_log_proba,
156
166
  },
157
167
  X,
158
168
  )
159
169
 
160
- def _test_type_and_finiteness(self, X_in):
161
- X = np.asarray(X_in)
162
-
163
- dtype = X.dtype
164
- if "complex" in str(type(dtype)):
165
- return False
170
+ @wrap_output_data
171
+ def score(self, X, y, sample_weight=None):
172
+ check_is_fitted(self)
173
+ return dispatch(
174
+ self,
175
+ "score",
176
+ {
177
+ "onedal": self.__class__._onedal_score,
178
+ "sklearn": _sklearn_LogisticRegression.score,
179
+ },
180
+ X,
181
+ y,
182
+ sample_weight=sample_weight,
183
+ )
166
184
 
167
- try:
168
- _assert_all_finite(X)
169
- except BaseException:
170
- return False
171
- return True
185
+ def _onedal_score(self, X, y, sample_weight=None, queue=None):
186
+ return accuracy_score(
187
+ y, self._onedal_predict(X, queue=queue), sample_weight=sample_weight
188
+ )
172
189
 
173
190
  def _onedal_gpu_fit_supported(self, method_name, *data):
174
191
  assert method_name == "fit"
@@ -180,11 +197,19 @@ if daal_check_version((2024, "P", 1)):
180
197
  f"sklearn.linear_model.{class_name}.fit"
181
198
  )
182
199
 
183
- dal_ready = patching_status.and_conditions(
200
+ target_type = (
201
+ type_of_target(y, input_name="y")
202
+ if sklearn_check_version("1.1")
203
+ else type_of_target(y)
204
+ )
205
+ patching_status.and_conditions(
184
206
  [
185
207
  (self.penalty == "l2", "Only l2 penalty is supported."),
186
208
  (self.dual == False, "dual=True is not supported."),
187
- (self.intercept_scaling == 1, "Intercept scaling is not supported."),
209
+ (
210
+ self.intercept_scaling == 1,
211
+ "Intercept scaling is not supported.",
212
+ ),
188
213
  (self.class_weight is None, "Class weight is not supported"),
189
214
  (self.solver == "newton-cg", "Only newton-cg solver is supported."),
190
215
  (
@@ -194,57 +219,49 @@ if daal_check_version((2024, "P", 1)):
194
219
  (self.warm_start == False, "Warm start is not supported."),
195
220
  (self.l1_ratio is None, "l1 ratio is not supported."),
196
221
  (sample_weight is None, "Sample weight is not supported."),
222
+ (
223
+ target_type == "binary",
224
+ "Only binary classification is supported",
225
+ ),
197
226
  ]
198
227
  )
199
228
 
200
- if not dal_ready:
201
- return patching_status
202
-
203
- if not patching_status.and_condition(
204
- self._test_type_and_finiteness(X), "Input X is not supported."
205
- ):
206
- return patching_status
207
-
208
- patching_status.and_condition(
209
- self._test_type_and_finiteness(y), "Input y is not supported."
210
- )
211
-
212
229
  return patching_status
213
230
 
214
231
  def _onedal_gpu_predict_supported(self, method_name, *data):
215
- assert method_name in ["predict", "predict_proba", "predict_log_proba"]
216
- assert len(data) == 1
232
+ assert method_name in [
233
+ "predict",
234
+ "predict_proba",
235
+ "predict_log_proba",
236
+ "score",
237
+ ]
217
238
 
218
239
  class_name = self.__class__.__name__
219
240
  patching_status = PatchingConditionsChain(
220
241
  f"sklearn.linear_model.{class_name}.{method_name}"
221
242
  )
222
243
 
223
- n_samples = _num_samples(*data)
224
- model_is_sparse = issparse(self.coef_) or (
225
- self.fit_intercept and issparse(self.intercept_)
226
- )
244
+ n_samples = _num_samples(data[0])
227
245
  dal_ready = patching_status.and_conditions(
228
246
  [
229
247
  (n_samples > 0, "Number of samples is less than 1."),
230
- (not issparse(*data), "Sparse input is not supported."),
231
- (not model_is_sparse, "Sparse coefficients are not supported."),
232
- (hasattr(self, "_onedal_estimator"), "oneDAL model was not trained."),
248
+ (
249
+ (not any([issparse(i) for i in data])) or _sparsity_enabled,
250
+ "Sparse input is not supported.",
251
+ ),
252
+ (
253
+ hasattr(self, "_onedal_estimator"),
254
+ "oneDAL model was not trained.",
255
+ ),
233
256
  ]
234
257
  )
235
- if not dal_ready:
236
- return patching_status
237
-
238
- patching_status.and_condition(
239
- self._test_type_and_finiteness(*data), "Input X is not supported."
240
- )
241
258
 
242
259
  return patching_status
243
260
 
244
261
  def _onedal_gpu_supported(self, method_name, *data):
245
262
  if method_name == "fit":
246
263
  return self._onedal_gpu_fit_supported(method_name, *data)
247
- if method_name in ["predict", "predict_proba", "predict_log_proba"]:
264
+ if method_name in ["predict", "predict_proba", "predict_log_proba", "score"]:
248
265
  return self._onedal_gpu_predict_supported(method_name, *data)
249
266
  raise RuntimeError(
250
267
  f"Unknown method {method_name} in {self.__class__.__name__}"
@@ -268,83 +285,127 @@ if daal_check_version((2024, "P", 1)):
268
285
  }
269
286
  self._onedal_estimator = onedal_LogisticRegression(**onedal_params)
270
287
 
271
- def _onedal_cpu_fit(self, X, y, sample_weight):
272
- which, what = logistic_module, "_logistic_regression_path"
273
- replacer = logistic_regression_path
274
- descriptor = getattr(which, what, None)
275
- setattr(which, what, replacer)
276
- clf = super().fit(X, y, sample_weight)
277
- setattr(which, what, descriptor)
278
- return clf
279
-
280
- def _onedal_fit(self, X, y, sample_weight, queue=None):
288
+ def _onedal_fit(self, X, y, sample_weight=None, queue=None):
281
289
  if queue is None or queue.sycl_device.is_cpu:
282
290
  return self._onedal_cpu_fit(X, y, sample_weight)
283
291
 
284
292
  assert sample_weight is None
285
293
 
286
- check_params = {
287
- "X": X,
288
- "y": y,
289
- "dtype": [np.float64, np.float32],
290
- "accept_sparse": False,
291
- "multi_output": False,
292
- "force_all_finite": True,
293
- }
294
- if sklearn_check_version("1.2"):
295
- X, y = self._validate_data(**check_params)
294
+ if sklearn_check_version("1.0"):
295
+ X, y = validate_data(
296
+ self,
297
+ X,
298
+ y,
299
+ accept_sparse=_sparsity_enabled,
300
+ accept_large_sparse=_sparsity_enabled,
301
+ dtype=[np.float64, np.float32],
302
+ )
296
303
  else:
297
- X, y = check_X_y(**check_params)
304
+ X, y = check_X_y(
305
+ X,
306
+ y,
307
+ accept_sparse=_sparsity_enabled,
308
+ accept_large_sparse=_sparsity_enabled,
309
+ dtype=[np.float64, np.float32],
310
+ )
311
+
298
312
  self._initialize_onedal_estimator()
299
- try:
313
+ if get_config()["allow_sklearn_after_onedal"]:
314
+ try:
315
+ self._onedal_estimator.fit(X, y, queue=queue)
316
+ self._save_attributes()
317
+ except RuntimeError:
318
+ logging.getLogger("sklearnex").info(
319
+ f"{self.__class__.__name__}.fit "
320
+ + get_patch_message("sklearn_after_onedal")
321
+ )
322
+
323
+ del self._onedal_estimator
324
+ super().fit(X, y)
325
+ else:
300
326
  self._onedal_estimator.fit(X, y, queue=queue)
301
327
  self._save_attributes()
302
- except RuntimeError:
303
- logging.getLogger("sklearnex").info(
304
- f"{self.__class__.__name__}.fit "
305
- + get_patch_message("sklearn_after_onedal")
306
- )
307
-
308
- del self._onedal_estimator
309
- super().fit(X, y)
310
328
 
311
329
  def _onedal_predict(self, X, queue=None):
312
330
  if queue is None or queue.sycl_device.is_cpu:
313
331
  return daal4py_predict(self, X, "computeClassLabels")
314
332
 
315
- X = self._validate_data(X, accept_sparse=False, reset=False)
316
- if not hasattr(self, "_onedal_estimator"):
317
- self._initialize_onedal_estimator()
318
- self._onedal_estimator.coef_ = self.coef_
319
- self._onedal_estimator.intercept_ = self.intercept_
320
- self._onedal_estimator.classes_ = self.classes_
333
+ if sklearn_check_version("1.0"):
334
+ X = validate_data(
335
+ self,
336
+ X,
337
+ reset=False,
338
+ accept_sparse=_sparsity_enabled,
339
+ accept_large_sparse=_sparsity_enabled,
340
+ dtype=[np.float64, np.float32],
341
+ )
342
+ else:
343
+ X = check_array(
344
+ X,
345
+ accept_sparse=_sparsity_enabled,
346
+ accept_large_sparse=_sparsity_enabled,
347
+ dtype=[np.float64, np.float32],
348
+ )
321
349
 
350
+ assert hasattr(self, "_onedal_estimator")
322
351
  return self._onedal_estimator.predict(X, queue=queue)
323
352
 
324
353
  def _onedal_predict_proba(self, X, queue=None):
325
354
  if queue is None or queue.sycl_device.is_cpu:
326
355
  return daal4py_predict(self, X, "computeClassProbabilities")
327
- X = self._validate_data(X, accept_sparse=False, reset=False)
328
- if not hasattr(self, "_onedal_estimator"):
329
- self._initialize_onedal_estimator()
330
- self._onedal_estimator.coef_ = self.coef_
331
- self._onedal_estimator.intercept_ = self.intercept_
332
356
 
357
+ if sklearn_check_version("1.0"):
358
+ X = validate_data(
359
+ self,
360
+ X,
361
+ reset=False,
362
+ accept_sparse=_sparsity_enabled,
363
+ accept_large_sparse=_sparsity_enabled,
364
+ dtype=[np.float64, np.float32],
365
+ )
366
+ else:
367
+ X = check_array(
368
+ X,
369
+ accept_sparse=_sparsity_enabled,
370
+ accept_large_sparse=_sparsity_enabled,
371
+ dtype=[np.float64, np.float32],
372
+ )
373
+
374
+ assert hasattr(self, "_onedal_estimator")
333
375
  return self._onedal_estimator.predict_proba(X, queue=queue)
334
376
 
335
377
  def _onedal_predict_log_proba(self, X, queue=None):
336
378
  if queue is None or queue.sycl_device.is_cpu:
337
379
  return daal4py_predict(self, X, "computeClassLogProbabilities")
338
- X = self._validate_data(X, accept_sparse=False, reset=False)
339
- if not hasattr(self, "_onedal_estimator"):
340
- self._initialize_onedal_estimator()
341
- self._onedal_estimator.coef_ = self.coef_
342
- self._onedal_estimator.intercept_ = self.intercept_
343
380
 
381
+ if sklearn_check_version("1.0"):
382
+ X = validate_data(
383
+ self,
384
+ X,
385
+ reset=False,
386
+ accept_sparse=_sparsity_enabled,
387
+ accept_large_sparse=_sparsity_enabled,
388
+ dtype=[np.float64, np.float32],
389
+ )
390
+ else:
391
+ X = check_array(
392
+ X,
393
+ accept_sparse=_sparsity_enabled,
394
+ accept_large_sparse=_sparsity_enabled,
395
+ dtype=[np.float64, np.float32],
396
+ )
397
+
398
+ assert hasattr(self, "_onedal_estimator")
344
399
  return self._onedal_estimator.predict_log_proba(X, queue=queue)
345
400
 
401
+ fit.__doc__ = _sklearn_LogisticRegression.fit.__doc__
402
+ predict.__doc__ = _sklearn_LogisticRegression.predict.__doc__
403
+ predict_proba.__doc__ = _sklearn_LogisticRegression.predict_proba.__doc__
404
+ predict_log_proba.__doc__ = _sklearn_LogisticRegression.predict_log_proba.__doc__
405
+ score.__doc__ = _sklearn_LogisticRegression.score.__doc__
406
+
346
407
  else:
347
- from daal4py.sklearn.linear_model import LogisticRegression
408
+ LogisticRegression = _daal4py_LogisticRegression
348
409
 
349
410
  logging.warning(
350
411
  "Sklearnex LogisticRegression requires oneDAL version >= 2024.0.1 "
@@ -15,3 +15,10 @@
15
15
  # ===============================================================================
16
16
 
17
17
  from daal4py.sklearn.linear_model import Ridge
18
+ from onedal._device_offload import support_input_format
19
+
20
+ # Note: `sklearnex.linear_model.Ridge` only has functional
21
+ # sycl GPU support. No GPU device will be offloaded.
22
+ Ridge.fit = support_input_format(queue_param=False)(Ridge.fit)
23
+ Ridge.predict = support_input_format(queue_param=False)(Ridge.predict)
24
+ Ridge.score = support_input_format(queue_param=False)(Ridge.score)