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,528 @@
1
+ # ==============================================================================
2
+ # Copyright 2014 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ import numbers
18
+ from math import sqrt
19
+
20
+ import numpy as np
21
+ from scipy.sparse import issparse
22
+ from sklearn.utils import check_array
23
+ from sklearn.utils.extmath import stable_cumsum
24
+ from sklearn.utils.validation import check_is_fitted
25
+
26
+ import daal4py
27
+
28
+ from .._n_jobs_support import control_n_jobs
29
+ from .._utils import PatchingConditionsChain, getFPType, sklearn_check_version
30
+ from ..utils.validation import check_feature_names, validate_data
31
+
32
+ if sklearn_check_version("1.4"):
33
+ from sklearn.utils._array_api import get_namespace
34
+
35
+ if sklearn_check_version("1.3"):
36
+ from sklearn.base import _fit_context
37
+
38
+ if sklearn_check_version("1.1"):
39
+ from sklearn.utils import check_scalar
40
+
41
+ from sklearn.decomposition._pca import PCA as PCA_original
42
+ from sklearn.decomposition._pca import _infer_dimension
43
+
44
+
45
+ @control_n_jobs(decorated_methods=["fit", "transform"])
46
+ class PCA(PCA_original):
47
+ __doc__ = PCA_original.__doc__
48
+
49
+ if sklearn_check_version("1.2"):
50
+ _parameter_constraints: dict = {**PCA_original._parameter_constraints}
51
+
52
+ if sklearn_check_version("1.1"):
53
+
54
+ def __init__(
55
+ self,
56
+ n_components=None,
57
+ copy=True,
58
+ whiten=False,
59
+ svd_solver="auto",
60
+ tol=0.0,
61
+ iterated_power="auto",
62
+ n_oversamples=10,
63
+ power_iteration_normalizer="auto",
64
+ random_state=None,
65
+ ):
66
+ self.n_components = n_components
67
+ self.copy = copy
68
+ self.whiten = whiten
69
+ self.svd_solver = svd_solver
70
+ self.tol = tol
71
+ self.iterated_power = iterated_power
72
+ self.n_oversamples = n_oversamples
73
+ self.power_iteration_normalizer = power_iteration_normalizer
74
+ self.random_state = random_state
75
+
76
+ else:
77
+
78
+ def __init__(
79
+ self,
80
+ n_components=None,
81
+ copy=True,
82
+ whiten=False,
83
+ svd_solver="auto",
84
+ tol=0.0,
85
+ iterated_power="auto",
86
+ random_state=None,
87
+ ):
88
+ self.n_components = n_components
89
+ self.copy = copy
90
+ self.whiten = whiten
91
+ self.svd_solver = svd_solver
92
+ self.tol = tol
93
+ self.iterated_power = iterated_power
94
+ self.random_state = random_state
95
+
96
+ def _validate_n_components(self, n_components, n_samples, n_features):
97
+ if n_components == "mle":
98
+ if n_samples < n_features:
99
+ raise ValueError(
100
+ "n_components='mle' is only supported " "if n_samples >= n_features"
101
+ )
102
+ elif not 0 <= n_components <= min(n_samples, n_features):
103
+ raise ValueError(
104
+ "n_components=%r must be between 0 and "
105
+ "min(n_samples, n_features)=%r with "
106
+ "svd_solver='full'" % (n_components, min(n_samples, n_features))
107
+ )
108
+ elif n_components >= 1:
109
+ if not isinstance(n_components, numbers.Integral):
110
+ raise ValueError(
111
+ "n_components=%r must be of type int "
112
+ "when greater than or equal to 1, "
113
+ "was of type=%r" % (n_components, type(n_components))
114
+ )
115
+
116
+ def _fit_full_daal4py(self, X, n_components):
117
+ n_samples, n_features = X.shape
118
+ n_sf_min = min(n_samples, n_features)
119
+
120
+ if n_components == "mle":
121
+ daal_n_components = n_features
122
+ elif n_components < 1:
123
+ daal_n_components = n_sf_min
124
+ else:
125
+ daal_n_components = n_components
126
+
127
+ fpType = getFPType(X)
128
+
129
+ covariance_algo = daal4py.covariance(
130
+ fptype=fpType, outputMatrixType="covarianceMatrix"
131
+ )
132
+ covariance_res = covariance_algo.compute(X)
133
+
134
+ self.mean_ = covariance_res.mean.ravel()
135
+ covariance = covariance_res.covariance
136
+ variances_ = np.array([covariance[i, i] for i in range(n_features)])
137
+
138
+ pca_alg = daal4py.pca(
139
+ fptype=fpType,
140
+ method="correlationDense",
141
+ resultsToCompute="eigenvalue",
142
+ isDeterministic=True,
143
+ nComponents=daal_n_components,
144
+ )
145
+ pca_res = pca_alg.compute(X, covariance)
146
+
147
+ components_ = pca_res.eigenvectors
148
+ explained_variance_ = np.maximum(pca_res.eigenvalues.ravel(), 0)
149
+ tot_var = explained_variance_.sum()
150
+ explained_variance_ratio_ = explained_variance_ / tot_var
151
+
152
+ if n_components == "mle":
153
+ n_components = _infer_dimension(explained_variance_, n_samples)
154
+ elif 0 < n_components < 1.0:
155
+ ratio_cumsum = stable_cumsum(explained_variance_ratio_)
156
+ n_components = np.searchsorted(ratio_cumsum, n_components, side="right") + 1
157
+
158
+ if n_components < n_sf_min:
159
+ if explained_variance_.shape[0] == n_sf_min:
160
+ self.noise_variance_ = explained_variance_[n_components:].mean()
161
+ else:
162
+ resid_var_ = variances_.sum()
163
+ resid_var_ -= explained_variance_[:n_components].sum()
164
+ self.noise_variance_ = resid_var_ / (n_sf_min - n_components)
165
+ else:
166
+ self.noise_variance_ = 0.0
167
+
168
+ if sklearn_check_version("1.2"):
169
+ self.n_samples_, self.n_features_in_ = n_samples, n_features
170
+ else:
171
+ self.n_samples_, self.n_features_ = n_samples, n_features
172
+ self.components_ = components_[:n_components]
173
+ self.n_components_ = n_components
174
+ self.explained_variance_ = explained_variance_[:n_components]
175
+ self.explained_variance_ratio_ = explained_variance_ratio_[:n_components]
176
+ self.singular_values_ = np.sqrt((n_samples - 1) * self.explained_variance_)
177
+
178
+ def _fit_full(self, X, n_components):
179
+ n_samples, n_features = X.shape
180
+ self._validate_n_components(n_components, n_samples, n_features)
181
+
182
+ self._fit_full_daal4py(X, min(X.shape))
183
+
184
+ U = None
185
+ V = self.components_
186
+ S = self.singular_values_
187
+
188
+ if n_components == "mle":
189
+ n_components = _infer_dimension(self.explained_variance_, n_samples)
190
+ elif 0 < n_components < 1.0:
191
+ ratio_cumsum = stable_cumsum(self.explained_variance_ratio_)
192
+ n_components = np.searchsorted(ratio_cumsum, n_components, side="right") + 1
193
+
194
+ if n_components < min(n_features, n_samples):
195
+ self.noise_variance_ = self.explained_variance_[n_components:].mean()
196
+ else:
197
+ self.noise_variance_ = 0.0
198
+
199
+ if sklearn_check_version("1.2"):
200
+ self.n_samples_, self.n_features_in_ = n_samples, n_features
201
+ else:
202
+ self.n_samples_, self.n_features_ = n_samples, n_features
203
+ self.components_ = self.components_[:n_components]
204
+ self.n_components_ = n_components
205
+ self.explained_variance_ = self.explained_variance_[:n_components]
206
+ self.explained_variance_ratio_ = self.explained_variance_ratio_[:n_components]
207
+ self.singular_values_ = self.singular_values_[:n_components]
208
+
209
+ return U, S, V
210
+
211
+ def _fit(self, X):
212
+ if sklearn_check_version("1.4"):
213
+ xp, is_array_api_compliant = get_namespace(X)
214
+
215
+ if issparse(X) and self.svd_solver != "arpack":
216
+ raise TypeError(
217
+ 'PCA only support sparse inputs with the "arpack" solver, while '
218
+ f'"{self.svd_solver}" was passed. See TruncatedSVD for a possible'
219
+ " alternative."
220
+ )
221
+ # Raise an error for non-Numpy input and arpack solver.
222
+ if self.svd_solver == "arpack" and is_array_api_compliant:
223
+ raise ValueError(
224
+ "PCA with svd_solver='arpack' is not supported for Array API inputs."
225
+ )
226
+
227
+ X = validate_data(
228
+ self,
229
+ X,
230
+ dtype=[xp.float64, xp.float32],
231
+ accept_sparse=("csr", "csc"),
232
+ ensure_2d=True,
233
+ copy=self.copy,
234
+ )
235
+
236
+ else:
237
+ if issparse(X):
238
+ raise TypeError(
239
+ "PCA does not support sparse input. See "
240
+ "TruncatedSVD for a possible alternative."
241
+ )
242
+ X = validate_data(
243
+ self, X, dtype=[np.float64, np.float32], ensure_2d=True, copy=False
244
+ )
245
+
246
+ if self.n_components is None:
247
+ if self.svd_solver != "arpack":
248
+ n_components = min(X.shape)
249
+ else:
250
+ n_components = min(X.shape) - 1
251
+ else:
252
+ n_components = self.n_components
253
+
254
+ self._fit_svd_solver = self.svd_solver
255
+ shape_good_for_daal = X.shape[1] / X.shape[0] < 2
256
+
257
+ if self._fit_svd_solver == "auto":
258
+ if sklearn_check_version("1.1"):
259
+ # Small problem or n_components == 'mle', just call full PCA
260
+ if max(X.shape) <= 500 or n_components == "mle":
261
+ self._fit_svd_solver = "full"
262
+ elif 1 <= n_components < 0.8 * min(X.shape):
263
+ self._fit_svd_solver = "randomized"
264
+ # This is also the case of n_components in (0,1)
265
+ else:
266
+ self._fit_svd_solver = "full"
267
+ else:
268
+ if n_components == "mle":
269
+ self._fit_svd_solver = "full"
270
+ else:
271
+ n, p, k = X.shape[0], X.shape[1], n_components
272
+ # These coefficients are result of training of Logistic Regression
273
+ # (max_iter=10000, solver="liblinear", fit_intercept=False)
274
+ # on different datasets and number of components.
275
+ # X is a dataset with npk, np^2, and n^2 columns.
276
+ # And y is speedup of patched scikit-learn's
277
+ # full PCA against stock scikit-learn's randomized PCA.
278
+ regression_coefs = np.array(
279
+ [
280
+ [9.779873e-11, n * p * k],
281
+ [-1.122062e-11, n * p * p],
282
+ [1.127905e-09, n**2],
283
+ ]
284
+ )
285
+
286
+ if (
287
+ n_components >= 1
288
+ and np.dot(regression_coefs[:, 0], regression_coefs[:, 1]) <= 0
289
+ ):
290
+ self._fit_svd_solver = "randomized"
291
+ else:
292
+ self._fit_svd_solver = "full"
293
+
294
+ if not shape_good_for_daal or self._fit_svd_solver != "full":
295
+ if sklearn_check_version("1.4"):
296
+ X = validate_data(self, X, copy=self.copy, accept_sparse=("csr", "csc"))
297
+ else:
298
+ X = validate_data(self, X, copy=self.copy)
299
+
300
+ _patching_status = PatchingConditionsChain("sklearn.decomposition.PCA.fit")
301
+ _dal_ready = _patching_status.and_conditions(
302
+ [
303
+ (
304
+ self._fit_svd_solver == "full",
305
+ f"'{self._fit_svd_solver}' SVD solver is not supported. "
306
+ "Only 'full' solver is supported.",
307
+ )
308
+ ]
309
+ )
310
+
311
+ if _dal_ready:
312
+ _dal_ready = _patching_status.and_conditions(
313
+ [
314
+ (
315
+ shape_good_for_daal,
316
+ "The shape of X does not satisfy oneDAL requirements: "
317
+ "number of features / number of samples >= 2",
318
+ ),
319
+ ]
320
+ )
321
+ if _dal_ready:
322
+ result = self._fit_full(X, n_components)
323
+ else:
324
+ result = PCA_original._fit_full(self, X, n_components)
325
+ elif self._fit_svd_solver in ["arpack", "randomized"]:
326
+ result = self._fit_truncated(X, n_components, self._fit_svd_solver)
327
+ else:
328
+ raise ValueError(
329
+ "Unrecognized svd_solver='{0}'" "".format(self._fit_svd_solver)
330
+ )
331
+
332
+ _patching_status.write_log()
333
+ return result
334
+
335
+ def _transform_daal4py(self, X, whiten=False, scale_eigenvalues=True, check_X=True):
336
+ check_is_fitted(self)
337
+
338
+ check_feature_names(self, X, reset=False)
339
+ if sklearn_check_version("1.6"):
340
+ X = check_array(X, dtype=[np.float64, np.float32], ensure_all_finite=check_X)
341
+ else:
342
+ X = check_array(X, dtype=[np.float64, np.float32], force_all_finite=check_X)
343
+ fpType = getFPType(X)
344
+
345
+ tr_data = dict()
346
+ if self.mean_ is not None:
347
+ tr_data["mean"] = self.mean_.reshape((1, -1))
348
+ if whiten:
349
+ if scale_eigenvalues:
350
+ tr_data["eigenvalue"] = (
351
+ self.n_samples_ - 1
352
+ ) * self.explained_variance_.reshape((1, -1))
353
+ else:
354
+ tr_data["eigenvalue"] = self.explained_variance_.reshape((1, -1))
355
+ elif scale_eigenvalues:
356
+ tr_data["eigenvalue"] = np.full(
357
+ (1, self.explained_variance_.shape[0]),
358
+ self.n_samples_ - 1.0,
359
+ dtype=X.dtype,
360
+ )
361
+
362
+ if sklearn_check_version("1.2"):
363
+ expected_n_features = self.n_features_in_
364
+ else:
365
+ expected_n_features = self.n_features_
366
+ if X.shape[1] != expected_n_features:
367
+ raise ValueError(
368
+ (
369
+ f"X has {X.shape[1]} features, "
370
+ f"but PCA is expecting {expected_n_features} features as input"
371
+ )
372
+ )
373
+
374
+ tr_res = daal4py.pca_transform(fptype=fpType).compute(
375
+ X, self.components_, tr_data
376
+ )
377
+
378
+ return tr_res.transformedData
379
+
380
+ if sklearn_check_version("1.3"):
381
+
382
+ @_fit_context(prefer_skip_nested_validation=True)
383
+ def fit(self, X, y=None):
384
+ """Fit the model with X.
385
+
386
+ Parameters
387
+ ----------
388
+ X : array-like of shape (n_samples, n_features)
389
+ Training data, where `n_samples` is the number of samples
390
+ and `n_features` is the number of features.
391
+
392
+ y : Ignored
393
+ Ignored.
394
+
395
+ Returns
396
+ -------
397
+ self : object
398
+ Returns the instance itself.
399
+ """
400
+ self._fit(X)
401
+ return self
402
+
403
+ else:
404
+
405
+ def fit(self, X, y=None):
406
+ """Fit the model with X.
407
+
408
+ Parameters
409
+ ----------
410
+ X : array-like of shape (n_samples, n_features)
411
+ Training data, where `n_samples` is the number of samples
412
+ and `n_features` is the number of features.
413
+
414
+ y : Ignored
415
+ Ignored.
416
+
417
+ Returns
418
+ -------
419
+ self : object
420
+ Returns the instance itself.
421
+ """
422
+ if sklearn_check_version("1.2"):
423
+ self._validate_params()
424
+ elif sklearn_check_version("1.1"):
425
+ check_scalar(
426
+ self.n_oversamples,
427
+ "n_oversamples",
428
+ min_val=1,
429
+ target_type=numbers.Integral,
430
+ )
431
+
432
+ self._fit(X)
433
+ return self
434
+
435
+ def transform(self, X):
436
+ """
437
+ Apply dimensionality reduction to X.
438
+
439
+ X is projected on the first principal components previously extracted
440
+ from a training set.
441
+
442
+ Parameters
443
+ ----------
444
+ X : array-like of shape (n_samples, n_features)
445
+ New data, where `n_samples` is the number of samples
446
+ and `n_features` is the number of features.
447
+
448
+ Returns
449
+ -------
450
+ X_new : array-like of shape (n_samples, n_components)
451
+ Projection of X in the first principal components, where `n_samples`
452
+ is the number of samples and `n_components` is the number of the components.
453
+ """
454
+ _patching_status = PatchingConditionsChain("sklearn.decomposition.PCA.transform")
455
+ _dal_ready = _patching_status.and_conditions(
456
+ [
457
+ (self.n_components_ > 0, "Number of components <= 0."),
458
+ (not issparse(X), "oneDAL PCA does not support sparse input"),
459
+ ]
460
+ )
461
+
462
+ _patching_status.write_log()
463
+ if _dal_ready:
464
+ return self._transform_daal4py(
465
+ X, whiten=self.whiten, check_X=True, scale_eigenvalues=False
466
+ )
467
+ return PCA_original.transform(self, X)
468
+
469
+ def fit_transform(self, X, y=None):
470
+ """
471
+ Fit the model with X and apply the dimensionality reduction on X.
472
+
473
+ Parameters
474
+ ----------
475
+ X : array-like of shape (n_samples, n_features)
476
+ Training data, where `n_samples` is the number of samples
477
+ and `n_features` is the number of features.
478
+
479
+ y : Ignored
480
+ Ignored.
481
+
482
+ Returns
483
+ -------
484
+ X_new : ndarray of shape (n_samples, n_components)
485
+ Transformed values.
486
+
487
+ Notes
488
+ -----
489
+ This method returns a Fortran-ordered array. To convert it to a
490
+ C-ordered array, use 'np.ascontiguousarray'.
491
+ """
492
+
493
+ if sklearn_check_version("1.2"):
494
+ self._validate_params()
495
+
496
+ U, S, Vt = self._fit(X)
497
+
498
+ _patching_status = PatchingConditionsChain(
499
+ "sklearn.decomposition.PCA.fit_transform"
500
+ )
501
+ _dal_ready = _patching_status.and_conditions(
502
+ [(U is None, "Stock fitting was used.")]
503
+ )
504
+ if _dal_ready:
505
+ _dal_ready = _patching_status.and_conditions(
506
+ [
507
+ (self.n_components_ > 0, "Number of components <= 0."),
508
+ (not issparse(X), "oneDAL PCA does not support sparse input"),
509
+ ]
510
+ )
511
+ if _dal_ready:
512
+ result = self._transform_daal4py(
513
+ X, whiten=self.whiten, check_X=False, scale_eigenvalues=False
514
+ )
515
+ else:
516
+ result = np.empty((self.n_samples_, 0), dtype=X.dtype)
517
+ else:
518
+ U = U[:, : self.n_components_]
519
+
520
+ if self.whiten:
521
+ U *= sqrt(X.shape[0] - 1)
522
+ else:
523
+ U *= S[: self.n_components_]
524
+
525
+ result = U
526
+
527
+ _patching_status.write_log()
528
+ return result