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.
Files changed (267) hide show
  1. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
  5. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
  6. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
  7. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
  8. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp313-win_amd64.pyd +0 -0
  9. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  10. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
  11. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  12. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  13. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  14. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
  15. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  16. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +19 -0
  17. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
  18. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
  19. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
  20. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  21. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
  22. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  23. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
  24. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
  25. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
  26. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
  27. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
  28. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  29. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  30. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
  31. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  32. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
  33. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
  34. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  35. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
  36. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
  37. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  38. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
  39. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  40. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  41. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  42. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  43. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  44. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  45. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
  46. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  47. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
  48. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
  49. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  50. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
  51. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
  52. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
  53. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  54. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  55. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  56. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
  57. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
  58. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
  59. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  60. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
  61. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
  62. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
  63. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
  64. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
  65. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
  66. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
  67. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
  68. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
  69. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
  70. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
  71. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  72. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  73. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
  74. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
  75. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
  76. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  77. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  78. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  79. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
  80. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  81. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  82. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
  83. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
  84. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  85. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
  86. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
  87. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  88. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
  89. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
  90. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
  91. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
  92. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
  93. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
  94. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
  95. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/__init__.py +20 -0
  96. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
  97. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  98. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
  99. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
  100. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
  101. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  102. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
  103. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  104. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  105. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
  106. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
  107. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
  108. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
  109. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
  110. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
  111. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  112. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  113. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  114. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
  115. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  116. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  117. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
  118. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
  119. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  120. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  121. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
  122. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
  123. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  124. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  125. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  126. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  127. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
  128. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
  129. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
  130. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
  131. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
  132. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
  133. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  134. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
  135. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__init__.py +69 -0
  136. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__main__.py +58 -0
  137. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
  138. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
  139. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
  140. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  141. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  142. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
  143. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +338 -0
  144. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
  145. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +455 -0
  146. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/__init__.py +20 -0
  147. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +199 -0
  148. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
  149. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +38 -0
  150. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
  151. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
  152. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
  153. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
  154. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
  155. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/__init__.py +19 -0
  156. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  157. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
  158. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dispatcher.py +572 -0
  159. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +629 -0
  160. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -0
  161. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
  162. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
  163. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +29 -0
  164. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1799 -0
  165. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
  166. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/__main__.py +72 -0
  167. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/dispatcher.py +101 -0
  168. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  169. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
  170. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
  171. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
  172. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
  173. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
  174. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
  175. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
  176. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
  177. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  178. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
  179. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  180. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/__init__.py +19 -0
  181. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +28 -0
  182. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
  183. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/__init__.py +23 -0
  184. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/pairwise.py +20 -0
  185. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/ranking.py +20 -0
  186. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +39 -0
  187. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/__init__.py +21 -0
  188. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/split.py +20 -0
  189. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +34 -0
  190. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/__init__.py +27 -0
  191. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +189 -0
  192. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/common.py +313 -0
  193. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +189 -0
  194. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +167 -0
  195. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +170 -0
  196. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +82 -0
  197. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/__init__.py +17 -0
  198. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +19 -0
  199. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
  200. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
  201. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  202. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  203. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
  204. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/__init__.py +25 -0
  205. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  206. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
  207. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  208. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
  209. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
  210. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +30 -0
  211. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
  212. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +21 -0
  213. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
  214. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
  215. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  216. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
  217. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
  218. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
  219. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
  220. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
  221. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
  222. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +23 -0
  223. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
  224. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
  225. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +19 -0
  226. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
  227. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
  228. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +21 -0
  229. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
  230. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +24 -0
  231. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
  232. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
  233. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
  234. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
  235. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
  236. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
  237. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/__init__.py +29 -0
  238. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
  239. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvc.py +278 -0
  240. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvr.py +158 -0
  241. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svc.py +306 -0
  242. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svr.py +155 -0
  243. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +124 -0
  244. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
  245. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
  246. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
  247. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
  248. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +269 -0
  249. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
  250. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +48 -0
  251. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +418 -0
  252. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
  253. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
  254. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
  255. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  256. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +19 -0
  257. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
  258. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
  259. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
  260. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
  261. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  262. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
  263. scikit_learn_intelex-2025.10.0.dist-info/LICENSE.txt +202 -0
  264. scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
  265. scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
  266. scikit_learn_intelex-2025.10.0.dist-info/WHEEL +5 -0
  267. scikit_learn_intelex-2025.10.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,269 @@
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 numpy as np
18
+ from scipy import sparse as sp
19
+ from sklearn.linear_model import LinearRegression as LinearRegression_original
20
+ from sklearn.utils import check_array
21
+
22
+ from .._utils import sklearn_check_version
23
+ from ..utils.validation import _daal_check_array, check_feature_names, validate_data
24
+
25
+ if not sklearn_check_version("1.2"):
26
+ from sklearn.linear_model._base import _deprecate_normalize
27
+
28
+ import logging
29
+
30
+ import daal4py
31
+
32
+ from .._n_jobs_support import control_n_jobs
33
+ from .._utils import (
34
+ PatchingConditionsChain,
35
+ get_patch_message,
36
+ getFPType,
37
+ is_DataFrame,
38
+ make2d,
39
+ )
40
+
41
+
42
+ def _daal4py_fit(self, X, y_):
43
+ y = make2d(y_)
44
+ X_fptype = getFPType(X)
45
+
46
+ try:
47
+ lr_algorithm = daal4py.linear_regression_training(
48
+ fptype=X_fptype, interceptFlag=bool(self.fit_intercept), method="defaultDense"
49
+ )
50
+ lr_res = lr_algorithm.compute(X, y)
51
+ except RuntimeError:
52
+ # Normal system is not invertible, try QR
53
+ try:
54
+ lr_algorithm = daal4py.linear_regression_training(
55
+ fptype=X_fptype, interceptFlag=bool(self.fit_intercept), method="qrDense"
56
+ )
57
+ lr_res = lr_algorithm.compute(X, y)
58
+ except RuntimeError:
59
+ # fall back on sklearn
60
+ return None
61
+
62
+ lr_model = lr_res.model
63
+ self.daal_model_ = lr_model
64
+ coefs = lr_model.Beta
65
+
66
+ self.intercept_ = coefs[:, 0].copy(order="C")
67
+ self.coef_ = coefs[:, 1:].copy(order="C")
68
+ self.n_features_in_ = X.shape[1]
69
+ self.rank_ = X.shape[1]
70
+ self.singular_ = np.full((X.shape[1],), np.nan)
71
+
72
+ if self.coef_.shape[0] == 1 and y_.ndim == 1:
73
+ self.coef_ = np.ravel(self.coef_)
74
+ self.intercept_ = self.intercept_[0]
75
+
76
+ return self
77
+
78
+
79
+ def _daal4py_predict(self, X):
80
+ X = make2d(X)
81
+ _fptype = getFPType(self.coef_)
82
+ lr_pred = daal4py.linear_regression_prediction(fptype=_fptype, method="defaultDense")
83
+ if X.shape[1] != self.n_features_in_:
84
+ raise ValueError(
85
+ f"X has {X.shape[1]} features, "
86
+ f"but LinearRegression is expecting "
87
+ f"{self.n_features_in_} features as input"
88
+ )
89
+ try:
90
+ lr_res = lr_pred.compute(X, self.daal_model_)
91
+ except RuntimeError:
92
+ raise ValueError(
93
+ f"Input data shape {X.shape} is inconsistent with the trained model"
94
+ )
95
+ res = lr_res.prediction
96
+ if res.shape[1] == 1 and self.coef_.ndim == 1:
97
+ res = np.ravel(res)
98
+
99
+ return res
100
+
101
+
102
+ def _fit_linear(self, X, y, sample_weight=None):
103
+ params = {
104
+ "X": X,
105
+ "y": y,
106
+ "accept_sparse": ["csr", "csc", "coo"],
107
+ "y_numeric": True,
108
+ "multi_output": True,
109
+ }
110
+ X, y = validate_data(
111
+ self,
112
+ dtype=[np.float64, np.float32],
113
+ **params,
114
+ )
115
+
116
+ self.fit_shape_good_for_daal_ = bool(
117
+ X.shape[0] > X.shape[1] + int(self.fit_intercept)
118
+ )
119
+
120
+ _patching_status = PatchingConditionsChain(
121
+ "sklearn.linear_model.LinearRegression.fit"
122
+ )
123
+ _patching_status.and_conditions(
124
+ [
125
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
126
+ (
127
+ self.fit_shape_good_for_daal_,
128
+ "The shape of X does not satisfy oneDAL requirements: "
129
+ "number of features + 1 >= number of samples.",
130
+ ),
131
+ (sample_weight is None, "Sample weights are not supported."),
132
+ ]
133
+ )
134
+
135
+ _dal_ready = _patching_status.get_status()
136
+ _patching_status.write_log()
137
+ if _dal_ready:
138
+ res = _daal4py_fit(self, X, y)
139
+ if res is not None:
140
+ return res
141
+ logging.info(
142
+ "sklearn.linar_model.LinearRegression."
143
+ "fit: " + get_patch_message("sklearn_after_daal")
144
+ )
145
+
146
+ return super(LinearRegression, self).fit(
147
+ X,
148
+ y,
149
+ sample_weight=sample_weight,
150
+ )
151
+
152
+
153
+ def _predict_linear(self, X):
154
+ check_feature_names(self, X, reset=False)
155
+ is_df = is_DataFrame(X)
156
+ X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
157
+ X = np.asarray(X) if not sp.issparse(X) and not is_df else X
158
+ good_shape_for_daal = (
159
+ True if X.ndim <= 1 else True if X.shape[0] > X.shape[1] else False
160
+ )
161
+
162
+ _patching_status = PatchingConditionsChain(
163
+ "sklearn.linear_model.LinearRegression.predict"
164
+ )
165
+ _dal_ready = _patching_status.and_conditions(
166
+ [
167
+ (hasattr(self, "daal_model_"), "oneDAL model was not trained."),
168
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
169
+ (
170
+ good_shape_for_daal,
171
+ "The shape of X does not satisfy oneDAL requirements: "
172
+ "Number of features >= number of samples.",
173
+ ),
174
+ (
175
+ not hasattr(self, "sample_weight_") or self.sample_weight_ is None,
176
+ "Sample weights are not supported.",
177
+ ),
178
+ ]
179
+ )
180
+ if hasattr(self, "fit_shape_good_for_daal_"):
181
+ _dal_ready = _patching_status.and_conditions(
182
+ [
183
+ (
184
+ self.fit_shape_good_for_daal_,
185
+ "The shape of X (fitting) does not satisfy oneDAL requirements: "
186
+ "Number of features + 1 >= number of samples.",
187
+ )
188
+ ]
189
+ )
190
+ _patching_status.write_log()
191
+ if not _dal_ready:
192
+ return self._decision_function(X)
193
+ X = _daal_check_array(X)
194
+ return _daal4py_predict(self, X)
195
+
196
+
197
+ @control_n_jobs(decorated_methods=["fit", "predict"])
198
+ class LinearRegression(LinearRegression_original):
199
+ __doc__ = LinearRegression_original.__doc__
200
+
201
+ if sklearn_check_version("1.2"):
202
+ _parameter_constraints: dict = {
203
+ **LinearRegression_original._parameter_constraints
204
+ }
205
+
206
+ def __init__(
207
+ self,
208
+ fit_intercept=True,
209
+ copy_X=True,
210
+ n_jobs=None,
211
+ positive=False,
212
+ ):
213
+ super(LinearRegression, self).__init__(
214
+ fit_intercept=fit_intercept,
215
+ copy_X=copy_X,
216
+ n_jobs=n_jobs,
217
+ positive=positive,
218
+ )
219
+
220
+ else:
221
+
222
+ def __init__(
223
+ self,
224
+ fit_intercept=True,
225
+ normalize="deprecated",
226
+ copy_X=True,
227
+ n_jobs=None,
228
+ positive=False,
229
+ ):
230
+ super(LinearRegression, self).__init__(
231
+ fit_intercept=fit_intercept,
232
+ normalize=normalize,
233
+ copy_X=copy_X,
234
+ n_jobs=n_jobs,
235
+ positive=positive,
236
+ )
237
+
238
+ def fit(self, X, y, sample_weight=None):
239
+ if not sklearn_check_version("1.2"):
240
+ self._normalize = _deprecate_normalize(
241
+ self.normalize,
242
+ default=False,
243
+ estimator_name=self.__class__.__name__,
244
+ )
245
+ check_feature_names(self, X, reset=True)
246
+ if sklearn_check_version("1.2"):
247
+ self._validate_params()
248
+
249
+ _patching_status = PatchingConditionsChain(
250
+ "sklearn.linear_model.LinearRegression.fit"
251
+ )
252
+ _dal_ready = _patching_status.and_conditions(
253
+ [
254
+ (
255
+ self.positive is False,
256
+ "Forced positive coefficients are not supported.",
257
+ )
258
+ ]
259
+ )
260
+ if not _dal_ready:
261
+ _patching_status.write_log()
262
+ return super(LinearRegression, self).fit(X, y=y, sample_weight=sample_weight)
263
+ return _fit_linear(self, X, y, sample_weight=sample_weight)
264
+
265
+ def predict(self, X):
266
+ return _predict_linear(self, X)
267
+
268
+ fit.__doc__ = LinearRegression_original.fit.__doc__
269
+ predict.__doc__ = LinearRegression_original.predict.__doc__
@@ -0,0 +1,290 @@
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 logging
18
+ import numbers
19
+
20
+ import numpy as np
21
+ from scipy import sparse as sp
22
+ from sklearn.linear_model._ridge import Ridge as Ridge_original
23
+ from sklearn.linear_model._ridge import _BaseRidge
24
+ from sklearn.utils import check_array, check_X_y
25
+
26
+ import daal4py
27
+
28
+ from .._n_jobs_support import control_n_jobs
29
+ from .._utils import (
30
+ PatchingConditionsChain,
31
+ get_patch_message,
32
+ getFPType,
33
+ make2d,
34
+ sklearn_check_version,
35
+ )
36
+ from ..utils.validation import validate_data
37
+
38
+ if not sklearn_check_version("1.2"):
39
+ from sklearn.linear_model._base import _deprecate_normalize
40
+ if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
41
+ from sklearn.utils import check_scalar
42
+
43
+
44
+ def _daal4py_fit(self, X, y_):
45
+ X = make2d(X)
46
+ y = make2d(y_)
47
+
48
+ _fptype = getFPType(X)
49
+
50
+ ridge_params = np.asarray(self.alpha, dtype=X.dtype)
51
+ if ridge_params.size != 1 and ridge_params.size != y.shape[1]:
52
+ # incorrect order of parameters in the error message is intentional to match sklearn
53
+ raise ValueError(
54
+ "Number of targets and number of penalties do not correspond: "
55
+ f"{ridge_params.size} != {y.shape[1]}"
56
+ )
57
+ ridge_params = ridge_params.reshape((-1, 1))
58
+
59
+ ridge_alg = daal4py.ridge_regression_training(
60
+ fptype=_fptype,
61
+ method="defaultDense",
62
+ interceptFlag=(self.fit_intercept is True),
63
+ ridgeParameters=ridge_params,
64
+ )
65
+
66
+ try:
67
+ ridge_res = ridge_alg.compute(X, y)
68
+ except RuntimeError:
69
+ return None
70
+
71
+ ridge_model = ridge_res.model
72
+ self.daal_model_ = ridge_model
73
+ coefs = ridge_model.Beta
74
+
75
+ self.intercept_ = coefs[:, 0].copy(order="C")
76
+ self.coef_ = coefs[:, 1:].copy(order="C")
77
+
78
+ if self.coef_.shape[0] == 1 and y_.ndim == 1:
79
+ self.coef_ = np.ravel(self.coef_)
80
+ self.intercept_ = self.intercept_[0]
81
+
82
+ return self
83
+
84
+
85
+ def _daal4py_predict(self, X):
86
+ X = make2d(X)
87
+ _fptype = getFPType(self.coef_)
88
+
89
+ ridge_palg = daal4py.ridge_regression_prediction(
90
+ fptype=_fptype, method="defaultDense"
91
+ )
92
+ if self.n_features_in_ != X.shape[1]:
93
+ raise ValueError(
94
+ f"X has {X.shape[1]} features, "
95
+ f"but Ridge is expecting {self.n_features_in_} features as input"
96
+ )
97
+ ridge_res = ridge_palg.compute(X, self.daal_model_)
98
+
99
+ res = ridge_res.prediction
100
+
101
+ if res.shape[1] == 1 and self.coef_.ndim == 1:
102
+ res = np.ravel(res)
103
+ return res
104
+
105
+
106
+ def _fit_ridge(self, _X, _y, sample_weight=None):
107
+ if not sklearn_check_version("1.2"):
108
+ self._normalize = _deprecate_normalize(
109
+ self.normalize, default=False, estimator_name=self.__class__.__name__
110
+ )
111
+ if sklearn_check_version("1.2"):
112
+ self._validate_params()
113
+ elif sklearn_check_version("1.1"):
114
+ if self.max_iter is not None:
115
+ self.max_iter = check_scalar(
116
+ self.max_iter, "max_iter", target_type=numbers.Integral, min_val=1
117
+ )
118
+ self.tol = check_scalar(self.tol, "tol", target_type=numbers.Real, min_val=0.0)
119
+ if self.alpha is not None and not isinstance(self.alpha, (np.ndarray, tuple)):
120
+ self.alpha = check_scalar(
121
+ self.alpha,
122
+ "alpha",
123
+ target_type=numbers.Real,
124
+ min_val=0.0,
125
+ include_boundaries="left",
126
+ )
127
+
128
+ X, y = validate_data(
129
+ self,
130
+ _X,
131
+ _y,
132
+ accept_sparse=["csr", "csc", "coo"],
133
+ dtype=[np.float64, np.float32],
134
+ multi_output=True,
135
+ y_numeric=True,
136
+ ensure_2d=True,
137
+ )
138
+
139
+ self.sample_weight_ = sample_weight
140
+ self.fit_shape_good_for_daal_ = True if X.shape[0] >= X.shape[1] else False
141
+
142
+ _patching_status = PatchingConditionsChain("sklearn.linear_model.Ridge.fit")
143
+ _dal_ready = _patching_status.and_conditions(
144
+ [
145
+ (
146
+ self.solver == "auto",
147
+ f"'{self.solver}' solver is not supported. "
148
+ "Only 'auto' solver is supported.",
149
+ ),
150
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
151
+ (
152
+ self.fit_shape_good_for_daal_,
153
+ "The shape of X does not satisfy oneDAL requirements: "
154
+ "number of features > number of samples.",
155
+ ),
156
+ (
157
+ X.dtype == np.float64 or X.dtype == np.float32,
158
+ f"'{X.dtype}' X data type is not supported. "
159
+ "Only np.float32 and np.float64 are supported.",
160
+ ),
161
+ (sample_weight is None, "Sample weights are not supported."),
162
+ (
163
+ not (hasattr(self, "positive") and self.positive),
164
+ "Forced positive coefficients are not supported.",
165
+ ),
166
+ ]
167
+ )
168
+ _patching_status.write_log()
169
+
170
+ if not _dal_ready:
171
+ if hasattr(self, "daal_model_"):
172
+ del self.daal_model_
173
+ return Ridge_original.fit(self, _X, _y, sample_weight=sample_weight)
174
+ self.n_iter_ = None
175
+ res = _daal4py_fit(self, X, y)
176
+ if res is None:
177
+ logging.info(
178
+ "sklearn.linear_model.Ridge.fit: " + get_patch_message("sklearn_after_daal")
179
+ )
180
+ if hasattr(self, "daal_model_"):
181
+ del self.daal_model_
182
+ return Ridge_original.fit(self, _X, _y, sample_weight=sample_weight)
183
+ return res
184
+
185
+
186
+ def _predict_ridge(self, _X):
187
+ X = validate_data(
188
+ self,
189
+ _X,
190
+ accept_sparse=["csr", "csc", "coo"],
191
+ dtype=[np.float64, np.float32],
192
+ reset=False,
193
+ ensure_2d=True,
194
+ )
195
+ good_shape_for_daal = (
196
+ True if X.ndim <= 1 else True if X.shape[0] >= X.shape[1] else False
197
+ )
198
+
199
+ _patching_status = PatchingConditionsChain("sklearn.linear_model.Ridge.predict")
200
+ _dal_ready = _patching_status.and_conditions(
201
+ [
202
+ (
203
+ self.solver == "auto",
204
+ f"'{self.solver}' solver is not supported. "
205
+ "Only 'auto' solver is supported.",
206
+ ),
207
+ (hasattr(self, "daal_model_"), "oneDAL model was not trained."),
208
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
209
+ (
210
+ good_shape_for_daal,
211
+ "The shape of X does not satisfy oneDAL requirements: "
212
+ "number of features > number of samples.",
213
+ ),
214
+ (
215
+ X.dtype == np.float64 or X.dtype == np.float32,
216
+ f"'{X.dtype}' X data type is not supported. "
217
+ "Only np.float32 and np.float64 are supported.",
218
+ ),
219
+ (
220
+ not hasattr(self, "sample_weight_") or self.sample_weight_ is None,
221
+ "Sample weights are not supported.",
222
+ ),
223
+ ]
224
+ )
225
+ _patching_status.write_log()
226
+
227
+ if not _dal_ready:
228
+ return self._decision_function(_X)
229
+ return _daal4py_predict(self, X)
230
+
231
+
232
+ @control_n_jobs(decorated_methods=["fit", "predict"])
233
+ class Ridge(Ridge_original, _BaseRidge):
234
+ __doc__ = Ridge_original.__doc__
235
+
236
+ if sklearn_check_version("1.2"):
237
+ _parameter_constraints: dict = {**Ridge_original._parameter_constraints}
238
+
239
+ def __init__(
240
+ self,
241
+ alpha=1.0,
242
+ fit_intercept=True,
243
+ copy_X=True,
244
+ max_iter=None,
245
+ tol=1e-4,
246
+ solver="auto",
247
+ positive=False,
248
+ random_state=None,
249
+ ):
250
+ self.alpha = alpha
251
+ self.fit_intercept = fit_intercept
252
+ self.copy_X = copy_X
253
+ self.max_iter = max_iter
254
+ self.tol = tol
255
+ self.solver = solver
256
+ self.positive = positive
257
+ self.random_state = random_state
258
+
259
+ else:
260
+
261
+ def __init__(
262
+ self,
263
+ alpha=1.0,
264
+ fit_intercept=True,
265
+ normalize="deprecated",
266
+ copy_X=True,
267
+ max_iter=None,
268
+ tol=1e-3,
269
+ solver="auto",
270
+ positive=False,
271
+ random_state=None,
272
+ ):
273
+ self.alpha = alpha
274
+ self.fit_intercept = fit_intercept
275
+ self.normalize = normalize
276
+ self.copy_X = copy_X
277
+ self.max_iter = max_iter
278
+ self.tol = tol
279
+ self.solver = solver
280
+ self.positive = positive
281
+ self.random_state = random_state
282
+
283
+ def fit(self, X, y, sample_weight=None):
284
+ return _fit_ridge(self, X, y, sample_weight=sample_weight)
285
+
286
+ def predict(self, X):
287
+ return _predict_ridge(self, X)
288
+
289
+ fit.__doc__ = Ridge_original.fit.__doc__
290
+ predict.__doc__ = Ridge_original.predict.__doc__
@@ -0,0 +1,17 @@
1
+ # ==============================================================================
2
+ # Copyright 2020 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ from ._coordinate_descent import *
@@ -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 ._linear import *