scikit-learn-intelex 2024.2.0__py39-none-win_amd64.whl → 2025.1.0__py39-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 (275) 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.cp39-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.cp39-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.2.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
  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.2.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 -28
  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.2.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.2.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
  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.2.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.2.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 -56
  46. {scikit_learn_intelex-2024.2.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-2024.2.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
  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.cp39-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-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-2025.1.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  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.2.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.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__init__.py +10 -7
  130. {scikit_learn_intelex-2024.2.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.2.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.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  139. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +16 -7
  140. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +395 -0
  141. {scikit_learn_intelex-2024.2.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/incremental_covariance.py +398 -0
  145. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +111 -17
  146. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +425 -0
  147. scikit_learn_intelex-2024.2.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
  148. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +222 -42
  149. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +249 -182
  150. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +39 -21
  151. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +16 -2
  152. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  153. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +13 -0
  154. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +482 -0
  155. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +425 -0
  156. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +341 -0
  157. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +182 -102
  158. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +7 -0
  159. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +207 -0
  160. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  161. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  162. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +45 -4
  163. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +4 -0
  164. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +5 -0
  165. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
  166. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +5 -0
  167. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +97 -28
  168. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +53 -6
  169. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +48 -149
  170. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +43 -144
  171. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +50 -93
  172. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +6 -9
  173. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  174. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +24 -18
  175. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +18 -5
  176. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  177. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +233 -0
  178. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +266 -0
  179. {scikit_learn_intelex-2024.2.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
  180. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +424 -0
  181. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
  182. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  183. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  184. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
  185. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  186. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
  187. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
  188. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  189. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  190. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
  191. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  192. {scikit_learn_intelex-2024.2.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
  193. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
  194. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  195. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
  196. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +4 -12
  197. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
  198. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
  199. scikit_learn_intelex-2024.2.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
  200. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  201. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
  202. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
  203. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
  204. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +339 -0
  205. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +168 -73
  206. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +71 -66
  207. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +166 -72
  208. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +64 -63
  209. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +12 -20
  210. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +390 -0
  211. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
  212. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +379 -0
  213. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +276 -0
  214. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
  215. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +6 -8
  216. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +385 -0
  217. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +321 -0
  218. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +44 -0
  219. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +371 -0
  220. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  221. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +82 -0
  222. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +89 -0
  223. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/METADATA +231 -230
  224. scikit_learn_intelex-2025.1.0.dist-info/RECORD +257 -0
  225. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/WHEEL +1 -1
  226. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -223
  227. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
  228. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
  229. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -130
  230. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -17
  231. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -27
  232. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -381
  233. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  234. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -82
  235. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  236. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -371
  237. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/pca.py +0 -374
  238. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -188
  239. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -222
  240. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -240
  241. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -93
  242. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
  243. scikit_learn_intelex-2024.2.0.dist-info/RECORD +0 -101
  244. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  245. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  246. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  247. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  248. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  249. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  250. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  251. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  252. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  253. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  254. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  255. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  256. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  257. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  258. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  259. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  260. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  261. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  262. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  263. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  264. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  265. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  266. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  267. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  268. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  269. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  270. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  271. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  272. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  273. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  274. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/LICENSE.txt +0 -0
  275. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,272 @@
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.base import _daal_validate_data
24
+ from ..utils.validation import _daal_check_array
25
+
26
+ if sklearn_check_version("1.0") and not sklearn_check_version("1.2"):
27
+ from sklearn.linear_model._base import _deprecate_normalize
28
+
29
+ import logging
30
+
31
+ import daal4py
32
+
33
+ from .._n_jobs_support import control_n_jobs
34
+ from .._utils import (
35
+ PatchingConditionsChain,
36
+ get_patch_message,
37
+ getFPType,
38
+ is_DataFrame,
39
+ make2d,
40
+ )
41
+
42
+
43
+ def _daal4py_fit(self, X, y_):
44
+ y = make2d(y_)
45
+ X_fptype = getFPType(X)
46
+
47
+ try:
48
+ lr_algorithm = daal4py.linear_regression_training(
49
+ fptype=X_fptype, interceptFlag=bool(self.fit_intercept), method="defaultDense"
50
+ )
51
+ lr_res = lr_algorithm.compute(X, y)
52
+ except RuntimeError:
53
+ # Normal system is not invertible, try QR
54
+ try:
55
+ lr_algorithm = daal4py.linear_regression_training(
56
+ fptype=X_fptype, interceptFlag=bool(self.fit_intercept), method="qrDense"
57
+ )
58
+ lr_res = lr_algorithm.compute(X, y)
59
+ except RuntimeError:
60
+ # fall back on sklearn
61
+ return None
62
+
63
+ lr_model = lr_res.model
64
+ self.daal_model_ = lr_model
65
+ coefs = lr_model.Beta
66
+
67
+ self.intercept_ = coefs[:, 0].copy(order="C")
68
+ self.coef_ = coefs[:, 1:].copy(order="C")
69
+ self.n_features_in_ = X.shape[1]
70
+ self.rank_ = X.shape[1]
71
+ self.singular_ = np.full((X.shape[1],), np.nan)
72
+
73
+ if self.coef_.shape[0] == 1 and y_.ndim == 1:
74
+ self.coef_ = np.ravel(self.coef_)
75
+ self.intercept_ = self.intercept_[0]
76
+
77
+ return self
78
+
79
+
80
+ def _daal4py_predict(self, X):
81
+ X = make2d(X)
82
+ _fptype = getFPType(self.coef_)
83
+ lr_pred = daal4py.linear_regression_prediction(fptype=_fptype, method="defaultDense")
84
+ if X.shape[1] != self.n_features_in_:
85
+ raise ValueError(
86
+ f"X has {X.shape[1]} features, "
87
+ f"but LinearRegression is expecting "
88
+ f"{self.n_features_in_} features as input"
89
+ )
90
+ try:
91
+ lr_res = lr_pred.compute(X, self.daal_model_)
92
+ except RuntimeError:
93
+ raise ValueError(
94
+ f"Input data shape {X.shape} is inconsistent with the trained model"
95
+ )
96
+ res = lr_res.prediction
97
+ if res.shape[1] == 1 and self.coef_.ndim == 1:
98
+ res = np.ravel(res)
99
+
100
+ return res
101
+
102
+
103
+ def _fit_linear(self, X, y, sample_weight=None):
104
+ params = {
105
+ "X": X,
106
+ "y": y,
107
+ "accept_sparse": ["csr", "csc", "coo"],
108
+ "y_numeric": True,
109
+ "multi_output": True,
110
+ }
111
+ X, y = _daal_validate_data(
112
+ self,
113
+ dtype=[np.float64, np.float32],
114
+ **params,
115
+ )
116
+
117
+ self.fit_shape_good_for_daal_ = bool(
118
+ X.shape[0] > X.shape[1] + int(self.fit_intercept)
119
+ )
120
+
121
+ _patching_status = PatchingConditionsChain(
122
+ "sklearn.linear_model.LinearRegression.fit"
123
+ )
124
+ _patching_status.and_conditions(
125
+ [
126
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
127
+ (
128
+ self.fit_shape_good_for_daal_,
129
+ "The shape of X does not satisfy oneDAL requirements: "
130
+ "number of features + 1 >= number of samples.",
131
+ ),
132
+ (sample_weight is None, "Sample weights are not supported."),
133
+ ]
134
+ )
135
+
136
+ _dal_ready = _patching_status.get_status()
137
+ _patching_status.write_log()
138
+ if _dal_ready:
139
+ res = _daal4py_fit(self, X, y)
140
+ if res is not None:
141
+ return res
142
+ logging.info(
143
+ "sklearn.linar_model.LinearRegression."
144
+ "fit: " + get_patch_message("sklearn_after_daal")
145
+ )
146
+
147
+ return super(LinearRegression, self).fit(
148
+ X,
149
+ y,
150
+ sample_weight=sample_weight,
151
+ )
152
+
153
+
154
+ def _predict_linear(self, X):
155
+ if sklearn_check_version("1.0"):
156
+ self._check_feature_names(X, reset=False)
157
+ is_df = is_DataFrame(X)
158
+ X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
159
+ X = np.asarray(X) if not sp.issparse(X) and not is_df else X
160
+ good_shape_for_daal = (
161
+ True if X.ndim <= 1 else True if X.shape[0] > X.shape[1] else False
162
+ )
163
+
164
+ _patching_status = PatchingConditionsChain(
165
+ "sklearn.linear_model.LinearRegression.predict"
166
+ )
167
+ _dal_ready = _patching_status.and_conditions(
168
+ [
169
+ (hasattr(self, "daal_model_"), "oneDAL model was not trained."),
170
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
171
+ (
172
+ good_shape_for_daal,
173
+ "The shape of X does not satisfy oneDAL requirements: "
174
+ "Number of features >= number of samples.",
175
+ ),
176
+ (
177
+ not hasattr(self, "sample_weight_") or self.sample_weight_ is None,
178
+ "Sample weights are not supported.",
179
+ ),
180
+ ]
181
+ )
182
+ if hasattr(self, "fit_shape_good_for_daal_"):
183
+ _dal_ready = _patching_status.and_conditions(
184
+ [
185
+ (
186
+ self.fit_shape_good_for_daal_,
187
+ "The shape of X (fitting) does not satisfy oneDAL requirements: "
188
+ "Number of features + 1 >= number of samples.",
189
+ )
190
+ ]
191
+ )
192
+ _patching_status.write_log()
193
+ if not _dal_ready:
194
+ return self._decision_function(X)
195
+ X = _daal_check_array(X)
196
+ return _daal4py_predict(self, X)
197
+
198
+
199
+ @control_n_jobs(decorated_methods=["fit", "predict"])
200
+ class LinearRegression(LinearRegression_original):
201
+ __doc__ = LinearRegression_original.__doc__
202
+
203
+ if sklearn_check_version("1.2"):
204
+ _parameter_constraints: dict = {
205
+ **LinearRegression_original._parameter_constraints
206
+ }
207
+
208
+ def __init__(
209
+ self,
210
+ fit_intercept=True,
211
+ copy_X=True,
212
+ n_jobs=None,
213
+ positive=False,
214
+ ):
215
+ super(LinearRegression, self).__init__(
216
+ fit_intercept=fit_intercept,
217
+ copy_X=copy_X,
218
+ n_jobs=n_jobs,
219
+ positive=positive,
220
+ )
221
+
222
+ else:
223
+
224
+ def __init__(
225
+ self,
226
+ fit_intercept=True,
227
+ normalize="deprecated" if sklearn_check_version("1.0") else False,
228
+ copy_X=True,
229
+ n_jobs=None,
230
+ positive=False,
231
+ ):
232
+ super(LinearRegression, self).__init__(
233
+ fit_intercept=fit_intercept,
234
+ normalize=normalize,
235
+ copy_X=copy_X,
236
+ n_jobs=n_jobs,
237
+ positive=positive,
238
+ )
239
+
240
+ def fit(self, X, y, sample_weight=None):
241
+ if sklearn_check_version("1.0") and not sklearn_check_version("1.2"):
242
+ self._normalize = _deprecate_normalize(
243
+ self.normalize,
244
+ default=False,
245
+ estimator_name=self.__class__.__name__,
246
+ )
247
+ if sklearn_check_version("1.0"):
248
+ self._check_feature_names(X, reset=True)
249
+ if sklearn_check_version("1.2"):
250
+ self._validate_params()
251
+
252
+ _patching_status = PatchingConditionsChain(
253
+ "sklearn.linear_model.LinearRegression.fit"
254
+ )
255
+ _dal_ready = _patching_status.and_conditions(
256
+ [
257
+ (
258
+ self.positive is False,
259
+ "Forced positive coefficients are not supported.",
260
+ )
261
+ ]
262
+ )
263
+ if not _dal_ready:
264
+ _patching_status.write_log()
265
+ return super(LinearRegression, self).fit(X, y=y, sample_weight=sample_weight)
266
+ return _fit_linear(self, X, y, sample_weight=sample_weight)
267
+
268
+ def predict(self, X):
269
+ return _predict_linear(self, X)
270
+
271
+ fit.__doc__ = LinearRegression_original.fit.__doc__
272
+ predict.__doc__ = LinearRegression_original.predict.__doc__
@@ -0,0 +1,325 @@
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
+
37
+ if sklearn_check_version("1.0") and not sklearn_check_version("1.2"):
38
+ from sklearn.linear_model._base import _deprecate_normalize
39
+ if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
40
+ from sklearn.utils import check_scalar
41
+
42
+
43
+ def _daal4py_fit(self, X, y_):
44
+ X = make2d(X)
45
+ y = make2d(y_)
46
+
47
+ _fptype = getFPType(X)
48
+
49
+ ridge_params = np.asarray(self.alpha, dtype=X.dtype)
50
+ if ridge_params.size != 1 and ridge_params.size != y.shape[1]:
51
+ # incorrect order of parameters in the error message is intentional to match sklearn
52
+ raise ValueError(
53
+ "Number of targets and number of penalties do not correspond: "
54
+ f"{ridge_params.size} != {y.shape[1]}"
55
+ )
56
+ ridge_params = ridge_params.reshape((-1, 1))
57
+
58
+ ridge_alg = daal4py.ridge_regression_training(
59
+ fptype=_fptype,
60
+ method="defaultDense",
61
+ interceptFlag=(self.fit_intercept is True),
62
+ ridgeParameters=ridge_params,
63
+ )
64
+
65
+ try:
66
+ ridge_res = ridge_alg.compute(X, y)
67
+ except RuntimeError:
68
+ return None
69
+
70
+ ridge_model = ridge_res.model
71
+ self.daal_model_ = ridge_model
72
+ coefs = ridge_model.Beta
73
+
74
+ self.intercept_ = coefs[:, 0].copy(order="C")
75
+ self.coef_ = coefs[:, 1:].copy(order="C")
76
+
77
+ if self.coef_.shape[0] == 1 and y_.ndim == 1:
78
+ self.coef_ = np.ravel(self.coef_)
79
+ self.intercept_ = self.intercept_[0]
80
+
81
+ return self
82
+
83
+
84
+ def _daal4py_predict(self, X):
85
+ X = make2d(X)
86
+ _fptype = getFPType(self.coef_)
87
+
88
+ ridge_palg = daal4py.ridge_regression_prediction(
89
+ fptype=_fptype, method="defaultDense"
90
+ )
91
+ if self.n_features_in_ != X.shape[1]:
92
+ raise ValueError(
93
+ f"X has {X.shape[1]} features, "
94
+ f"but Ridge is expecting {self.n_features_in_} features as input"
95
+ )
96
+ ridge_res = ridge_palg.compute(X, self.daal_model_)
97
+
98
+ res = ridge_res.prediction
99
+
100
+ if res.shape[1] == 1 and self.coef_.ndim == 1:
101
+ res = np.ravel(res)
102
+ return res
103
+
104
+
105
+ def _fit_ridge(self, _X, _y, sample_weight=None):
106
+ if sklearn_check_version("1.0") and not sklearn_check_version("1.2"):
107
+ self._normalize = _deprecate_normalize(
108
+ self.normalize, default=False, estimator_name=self.__class__.__name__
109
+ )
110
+ if sklearn_check_version("1.2"):
111
+ self._validate_params()
112
+ elif sklearn_check_version("1.1"):
113
+ if self.max_iter is not None:
114
+ self.max_iter = check_scalar(
115
+ self.max_iter, "max_iter", target_type=numbers.Integral, min_val=1
116
+ )
117
+ self.tol = check_scalar(self.tol, "tol", target_type=numbers.Real, min_val=0.0)
118
+ if self.alpha is not None and not isinstance(self.alpha, (np.ndarray, tuple)):
119
+ self.alpha = check_scalar(
120
+ self.alpha,
121
+ "alpha",
122
+ target_type=numbers.Real,
123
+ min_val=0.0,
124
+ include_boundaries="left",
125
+ )
126
+
127
+ if sklearn_check_version("1.0"):
128
+ X, y = self._validate_data(
129
+ _X,
130
+ _y,
131
+ accept_sparse=["csr", "csc", "coo"],
132
+ dtype=[np.float64, np.float32],
133
+ multi_output=True,
134
+ y_numeric=True,
135
+ ensure_2d=True,
136
+ )
137
+ else:
138
+ X, y = check_X_y(
139
+ _X,
140
+ _y,
141
+ ["csr", "csc", "coo"],
142
+ dtype=[np.float64, np.float32],
143
+ multi_output=True,
144
+ y_numeric=True,
145
+ )
146
+ self.n_features_in_ = X.shape[1]
147
+
148
+ self.sample_weight_ = sample_weight
149
+ self.fit_shape_good_for_daal_ = True if X.shape[0] >= X.shape[1] else False
150
+
151
+ _patching_status = PatchingConditionsChain("sklearn.linear_model.Ridge.fit")
152
+ _dal_ready = _patching_status.and_conditions(
153
+ [
154
+ (
155
+ self.solver == "auto",
156
+ f"'{self.solver}' solver is not supported. "
157
+ "Only 'auto' solver is supported.",
158
+ ),
159
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
160
+ (
161
+ self.fit_shape_good_for_daal_,
162
+ "The shape of X does not satisfy oneDAL requirements: "
163
+ "number of features > number of samples.",
164
+ ),
165
+ (
166
+ X.dtype == np.float64 or X.dtype == np.float32,
167
+ f"'{X.dtype}' X data type is not supported. "
168
+ "Only np.float32 and np.float64 are supported.",
169
+ ),
170
+ (sample_weight is None, "Sample weights are not supported."),
171
+ (
172
+ not (hasattr(self, "positive") and self.positive),
173
+ "Forced positive coefficients are not supported.",
174
+ ),
175
+ ]
176
+ )
177
+ _patching_status.write_log()
178
+
179
+ if not _dal_ready:
180
+ if hasattr(self, "daal_model_"):
181
+ del self.daal_model_
182
+ return Ridge_original.fit(self, _X, _y, sample_weight=sample_weight)
183
+ self.n_iter_ = None
184
+ res = _daal4py_fit(self, X, y)
185
+ if res is None:
186
+ logging.info(
187
+ "sklearn.linear_model.Ridge.fit: " + get_patch_message("sklearn_after_daal")
188
+ )
189
+ if hasattr(self, "daal_model_"):
190
+ del self.daal_model_
191
+ return Ridge_original.fit(self, _X, _y, sample_weight=sample_weight)
192
+ return res
193
+
194
+
195
+ def _predict_ridge(self, _X):
196
+ if sklearn_check_version("1.0"):
197
+ X = self._validate_data(
198
+ _X,
199
+ accept_sparse=["csr", "csc", "coo"],
200
+ dtype=[np.float64, np.float32],
201
+ reset=False,
202
+ ensure_2d=True,
203
+ )
204
+ else:
205
+ X = check_array(
206
+ _X, accept_sparse=["csr", "csc", "coo"], dtype=[np.float64, np.float32]
207
+ )
208
+ good_shape_for_daal = (
209
+ True if X.ndim <= 1 else True if X.shape[0] >= X.shape[1] else False
210
+ )
211
+
212
+ _patching_status = PatchingConditionsChain("sklearn.linear_model.Ridge.predict")
213
+ _dal_ready = _patching_status.and_conditions(
214
+ [
215
+ (
216
+ self.solver == "auto",
217
+ f"'{self.solver}' solver is not supported. "
218
+ "Only 'auto' solver is supported.",
219
+ ),
220
+ (hasattr(self, "daal_model_"), "oneDAL model was not trained."),
221
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
222
+ (
223
+ good_shape_for_daal,
224
+ "The shape of X does not satisfy oneDAL requirements: "
225
+ "number of features > number of samples.",
226
+ ),
227
+ (
228
+ X.dtype == np.float64 or X.dtype == np.float32,
229
+ f"'{X.dtype}' X data type is not supported. "
230
+ "Only np.float32 and np.float64 are supported.",
231
+ ),
232
+ (
233
+ not hasattr(self, "sample_weight_") or self.sample_weight_ is None,
234
+ "Sample weights are not supported.",
235
+ ),
236
+ ]
237
+ )
238
+ _patching_status.write_log()
239
+
240
+ if not _dal_ready:
241
+ return self._decision_function(_X)
242
+ return _daal4py_predict(self, X)
243
+
244
+
245
+ @control_n_jobs(decorated_methods=["fit", "predict"])
246
+ class Ridge(Ridge_original, _BaseRidge):
247
+ __doc__ = Ridge_original.__doc__
248
+
249
+ if sklearn_check_version("1.2"):
250
+ _parameter_constraints: dict = {**Ridge_original._parameter_constraints}
251
+
252
+ def __init__(
253
+ self,
254
+ alpha=1.0,
255
+ fit_intercept=True,
256
+ copy_X=True,
257
+ max_iter=None,
258
+ tol=1e-4,
259
+ solver="auto",
260
+ positive=False,
261
+ random_state=None,
262
+ ):
263
+ self.alpha = alpha
264
+ self.fit_intercept = fit_intercept
265
+ self.copy_X = copy_X
266
+ self.max_iter = max_iter
267
+ self.tol = tol
268
+ self.solver = solver
269
+ self.positive = positive
270
+ self.random_state = random_state
271
+
272
+ elif sklearn_check_version("1.0"):
273
+
274
+ def __init__(
275
+ self,
276
+ alpha=1.0,
277
+ fit_intercept=True,
278
+ normalize="deprecated",
279
+ copy_X=True,
280
+ max_iter=None,
281
+ tol=1e-3,
282
+ solver="auto",
283
+ positive=False,
284
+ random_state=None,
285
+ ):
286
+ self.alpha = alpha
287
+ self.fit_intercept = fit_intercept
288
+ self.normalize = normalize
289
+ self.copy_X = copy_X
290
+ self.max_iter = max_iter
291
+ self.tol = tol
292
+ self.solver = solver
293
+ self.positive = positive
294
+ self.random_state = random_state
295
+
296
+ else:
297
+
298
+ def __init__(
299
+ self,
300
+ alpha=1.0,
301
+ fit_intercept=True,
302
+ normalize=False,
303
+ copy_X=True,
304
+ max_iter=None,
305
+ tol=1e-3,
306
+ solver="auto",
307
+ random_state=None,
308
+ ):
309
+ self.alpha = alpha
310
+ self.fit_intercept = fit_intercept
311
+ self.normalize = normalize
312
+ self.copy_X = copy_X
313
+ self.max_iter = max_iter
314
+ self.tol = tol
315
+ self.solver = solver
316
+ self.random_state = random_state
317
+
318
+ def fit(self, X, y, sample_weight=None):
319
+ return _fit_ridge(self, X, y, sample_weight=sample_weight)
320
+
321
+ def predict(self, X):
322
+ return _predict_ridge(self, X)
323
+
324
+ fit.__doc__ = Ridge_original.fit.__doc__
325
+ predict.__doc__ = Ridge_original.predict.__doc__
@@ -1,5 +1,5 @@
1
1
  # ==============================================================================
2
- # Copyright 2023 Intel Corporation
2
+ # Copyright 2020 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.
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from onedal.basic_statistics import BasicStatistics
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 *