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

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

Potentially problematic release.


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

Files changed (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.cp312-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
  5. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
  6. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
  7. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  8. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  9. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +248 -0
  10. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  11. {scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn}/cluster/__init__.py +3 -3
  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.0.1.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +4 -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.0.1.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -30
  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-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
  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.0.1.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +4 -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-2024.0.1.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -3
  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.0.1.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.0.1.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/test_patching.py +10 -42
  46. {scikit_learn_intelex-2024.0.1.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.0.1.data/data/Lib/site-packages/sklearnex/spmd/linear_model → 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.cp312-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  64. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
  65. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
  66. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  67. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  68. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  69. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  70. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
  71. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +564 -0
  72. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
  73. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  74. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  75. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  76. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
  77. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  78. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  79. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
  80. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
  81. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +125 -0
  82. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +76 -0
  83. scikit_learn_intelex-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.0.1.data/data/Lib/site-packages/sklearnex/basic_statistics → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -3
  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.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__init__.py +12 -7
  130. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -1
  131. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_config.py +22 -16
  132. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +126 -0
  133. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_utils.py +42 -5
  134. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  135. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +230 -0
  136. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +345 -0
  137. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +270 -0
  138. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +404 -0
  139. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -2
  140. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +18 -8
  141. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +395 -0
  142. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -7
  143. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +159 -0
  144. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
  145. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
  146. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +398 -0
  147. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +237 -0
  148. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -1
  149. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +425 -0
  150. scikit_learn_intelex-2024.0.1.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 +26 -6
  151. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +242 -28
  152. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -1
  153. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +262 -180
  154. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +39 -22
  155. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -1
  156. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +16 -3
  157. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  158. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +13 -1
  159. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +482 -0
  160. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +425 -0
  161. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +341 -0
  162. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +413 -0
  163. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +24 -0
  164. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +207 -0
  165. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  166. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  167. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +134 -0
  168. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -1
  169. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +21 -0
  170. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -1
  171. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -1
  172. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +5 -1
  173. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -1
  174. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -1
  175. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -1
  176. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +5 -1
  177. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -1
  178. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +1 -2
  179. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +236 -0
  180. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +54 -8
  181. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +51 -151
  182. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +46 -146
  183. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +53 -95
  184. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +16 -19
  185. {scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/spmd/decomposition → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview}/__init__.py +1 -3
  186. {scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview/decomposition → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/covariance}/__init__.py +19 -20
  187. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +138 -0
  188. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +66 -0
  189. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  190. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +233 -0
  191. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +266 -0
  192. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +19 -18
  193. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +424 -0
  194. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
  195. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +1 -0
  196. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  197. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  198. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
  199. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  200. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
  201. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
  202. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  203. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +21 -0
  204. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  205. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
  206. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  207. {scikit_learn_intelex-2024.0.1.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
  208. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
  209. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  210. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
  211. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +4 -12
  212. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
  213. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +21 -0
  214. scikit_learn_intelex-2024.0.1.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
  215. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
  216. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  217. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
  218. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
  219. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
  220. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -1
  221. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +339 -0
  222. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +172 -73
  223. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +73 -66
  224. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +171 -73
  225. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +65 -62
  226. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +12 -21
  227. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +390 -0
  228. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
  229. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +379 -0
  230. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +276 -0
  231. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
  232. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +6 -8
  233. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +385 -0
  234. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +321 -0
  235. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +44 -0
  236. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +371 -0
  237. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  238. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +82 -0
  239. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +89 -0
  240. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -1
  241. {scikit_learn_intelex-2024.0.1.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/METADATA +231 -230
  242. scikit_learn_intelex-2025.1.0.dist-info/RECORD +257 -0
  243. {scikit_learn_intelex-2024.0.1.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/WHEEL +1 -1
  244. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -223
  245. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -18
  246. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -31
  247. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -18
  248. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -28
  249. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -373
  250. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -18
  251. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -77
  252. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -29
  253. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/neighbors/lof.py +0 -437
  254. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  255. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -370
  256. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview/decomposition/pca.py +0 -376
  257. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -188
  258. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -225
  259. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -210
  260. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
  261. scikit_learn_intelex-2024.0.1.dist-info/RECORD +0 -90
  262. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  263. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  264. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  265. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  266. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  267. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  268. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  269. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  270. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  271. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  272. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  273. {scikit_learn_intelex-2024.0.1.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  274. {scikit_learn_intelex-2024.0.1.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/LICENSE.txt +0 -0
  275. {scikit_learn_intelex-2024.0.1.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/top_level.txt +0 -0
@@ -1,376 +0,0 @@
1
- #!/usr/bin/env python
2
- # ===============================================================================
3
- # Copyright 2023 Intel Corporation
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- # ===============================================================================
17
-
18
- import numbers
19
- from math import sqrt
20
-
21
- import numpy as np
22
- from scipy.sparse import issparse
23
- from sklearn.base import BaseEstimator
24
- from sklearn.utils.extmath import stable_cumsum
25
- from sklearn.utils.validation import check_array, check_is_fitted
26
-
27
- from daal4py.sklearn._utils import sklearn_check_version
28
- from onedal.utils import _check_array
29
-
30
- from ..._device_offload import dispatch
31
- from ..._utils import PatchingConditionsChain
32
-
33
- if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
34
- from sklearn.utils import check_scalar
35
- if sklearn_check_version("0.23"):
36
- from sklearn.decomposition._pca import _infer_dimension
37
- else:
38
- from sklearn.decomposition._pca import _infer_dimension_
39
-
40
- from sklearn.decomposition import PCA as sklearn_PCA
41
-
42
- from onedal.decomposition import PCA as onedal_PCA
43
-
44
-
45
- class PCA(sklearn_PCA):
46
- if sklearn_check_version("1.2"):
47
- _parameter_constraints: dict = {**sklearn_PCA._parameter_constraints}
48
-
49
- def __init__(
50
- self,
51
- n_components=None,
52
- *,
53
- copy=True,
54
- whiten=False,
55
- svd_solver="auto",
56
- tol=0.0,
57
- iterated_power="auto",
58
- n_oversamples=10,
59
- power_iteration_normalizer="auto",
60
- random_state=None,
61
- ):
62
- self.n_components = n_components
63
- self.copy = copy
64
- self.whiten = whiten
65
- self.svd_solver = svd_solver
66
- self.tol = tol
67
- self.iterated_power = iterated_power
68
- self.n_oversamples = n_oversamples
69
- self.power_iteration_normalizer = power_iteration_normalizer
70
- self.random_state = random_state
71
-
72
- def _validate_n_components(self, n_components, n_samples, n_features, n_sf_min):
73
- if n_components == "mle":
74
- if n_samples < n_features:
75
- raise ValueError(
76
- "n_components='mle' is only supported if" " n_samples >= n_features"
77
- )
78
- elif not 0 <= n_components <= n_sf_min:
79
- raise ValueError(
80
- "n_components=%r must be between 0 and "
81
- "min(n_samples, n_features)=%r with "
82
- "svd_solver='full'" % (n_components, min(n_samples, n_features))
83
- )
84
- elif n_components >= 1:
85
- if not isinstance(n_components, numbers.Integral):
86
- raise ValueError(
87
- "n_components=%r must be of type int "
88
- "when greater than or equal to 1, "
89
- "was of type=%r" % (n_components, type(n_components))
90
- )
91
-
92
- def fit(self, X, y=None):
93
- if sklearn_check_version("1.2"):
94
- self._validate_params()
95
- elif sklearn_check_version("1.1"):
96
- check_scalar(
97
- self.n_oversamples,
98
- "n_oversamples",
99
- min_val=1,
100
- target_type=numbers.Integral,
101
- )
102
- self._fit(X)
103
- return self
104
-
105
- def _fit(self, X):
106
- if issparse(X):
107
- raise TypeError(
108
- "PCA does not support sparse input. See "
109
- "TruncatedSVD for a possible alternative."
110
- )
111
-
112
- if sklearn_check_version("0.23"):
113
- X = self._validate_data(
114
- X, dtype=[np.float64, np.float32], ensure_2d=True, copy=False
115
- )
116
- else:
117
- X = _check_array(
118
- X, dtype=[np.float64, np.float32], ensure_2d=True, copy=False
119
- )
120
-
121
- n_samples, n_features = X.shape
122
- n_sf_min = min(n_samples, n_features)
123
-
124
- if self.n_components is None:
125
- if self.svd_solver == "arpack":
126
- n_components = n_sf_min - 1
127
- else:
128
- n_components = n_sf_min
129
- else:
130
- n_components = self.n_components
131
-
132
- self._validate_n_components(n_components, n_samples, n_features, n_sf_min)
133
-
134
- self._fit_svd_solver = self.svd_solver
135
- shape_good_for_daal = X.shape[1] / X.shape[0] < 2
136
- if self._fit_svd_solver == "auto":
137
- if sklearn_check_version("1.1"):
138
- if max(X.shape) <= 500 or n_components == "mle":
139
- self._fit_svd_solver = "full"
140
- elif 1 <= n_components < 0.8 * n_sf_min:
141
- self._fit_svd_solver = "randomized"
142
- else:
143
- self._fit_svd_solver = "full"
144
- else:
145
- if n_components == "mle":
146
- self._fit_svd_solver = "full"
147
- else:
148
- n, p, k = X.shape[0], X.shape[1], n_components
149
- # check if sklearnex is faster than randomized sklearn
150
- # Refer to daal4py
151
- regression_coefs = np.array(
152
- [
153
- [9.779873e-11, n * p * k],
154
- [-1.122062e-11, n * p * p],
155
- [1.127905e-09, n**2],
156
- ]
157
- )
158
-
159
- if (
160
- n_components >= 1
161
- and np.dot(regression_coefs[:, 0], regression_coefs[:, 1]) <= 0
162
- ):
163
- self._fit_svd_solver = "randomized"
164
- else:
165
- self._fit_svd_solver = "full"
166
-
167
- if not shape_good_for_daal or self._fit_svd_solver != "full":
168
- if sklearn_check_version("0.23"):
169
- X = self._validate_data(X, copy=self.copy)
170
- else:
171
- X = check_array(X, copy=self.copy)
172
-
173
- # Call different fits for either full or truncated SVD
174
- if shape_good_for_daal and self._fit_svd_solver == "full":
175
- return dispatch(
176
- self,
177
- "fit",
178
- {
179
- "onedal": self.__class__._onedal_fit,
180
- "sklearn": sklearn_PCA._fit_full,
181
- },
182
- X,
183
- )
184
- elif not shape_good_for_daal and self._fit_svd_solver == "full":
185
- return sklearn_PCA._fit_full(self, X, n_components)
186
- elif self._fit_svd_solver in ["arpack", "randomized"]:
187
- return sklearn_PCA._fit_truncated(
188
- self,
189
- X,
190
- n_components,
191
- self._fit_svd_solver,
192
- )
193
- else:
194
- raise ValueError("Unrecognized svd_solver='{0}'".format(self._fit_svd_solver))
195
-
196
- def _onedal_supported(self, method_name, *data):
197
- class_name = self.__class__.__name__
198
- if method_name == "fit":
199
- patching_status = PatchingConditionsChain(
200
- f"sklearn.decomposition.{class_name}.{method_name}"
201
- )
202
- patching_status.and_conditions(
203
- [
204
- (
205
- self._fit_svd_solver == "full",
206
- f"'{self._fit_svd_solver}' SVD solver is not supported. "
207
- "Only 'full' solver is supported.",
208
- ),
209
- ]
210
- )
211
- return patching_status
212
- elif method_name == "transform":
213
- patching_status = PatchingConditionsChain(
214
- f"sklearn.decomposition.{class_name}.{method_name}"
215
- )
216
- patching_status.and_conditions(
217
- [
218
- (hasattr(self, "_onedal_estimator"), "oneDAL model was not trained"),
219
- ]
220
- )
221
- return patching_status
222
- raise RuntimeError(f"Unknown method {method_name} in {self.__class__.__name__}")
223
-
224
- def _onedal_cpu_supported(self, method_name, *data):
225
- return self._onedal_supported(method_name, *data)
226
-
227
- def _onedal_gpu_supported(self, method_name, *data):
228
- return self._onedal_supported(method_name, *data)
229
-
230
- def _onedal_fit(self, X, y=None, queue=None):
231
- if self.n_components == "mle" or self.n_components is None:
232
- onedal_n_components = min(X.shape)
233
- elif 0 < self.n_components < 1:
234
- onedal_n_components = min(X.shape)
235
- else:
236
- onedal_n_components = self.n_components
237
-
238
- onedal_params = {
239
- "n_components": onedal_n_components,
240
- "is_deterministic": True,
241
- "method": "precomputed",
242
- }
243
- self._onedal_estimator = onedal_PCA(**onedal_params)
244
- self._onedal_estimator.fit(X, queue=queue)
245
- self._save_attributes()
246
-
247
- U = None
248
- S = self.singular_values_
249
- V = self.components_
250
-
251
- return U, S, V
252
-
253
- def _onedal_predict(self, X, queue=None):
254
- return self._onedal_estimator.predict(X, queue)
255
-
256
- def _onedal_transform(self, X):
257
- X = _check_array(X, dtype=[np.float64, np.float32], ensure_2d=True, copy=False)
258
-
259
- if hasattr(self, "n_features_in_"):
260
- if self.n_features_in_ != X.shape[1]:
261
- raise ValueError(
262
- f"X has {X.shape[1]} features, "
263
- f"but {self.__class__.__name__} is expecting "
264
- f"{self.n_features_in_} features as input"
265
- )
266
- elif hasattr(self, "n_features_"):
267
- if self.n_features_ != X.shape[1]:
268
- raise ValueError(
269
- f"X has {X.shape[1]} features, "
270
- f"but {self.__class__.__name__} is expecting "
271
- f"{self.n_features_} features as input"
272
- )
273
-
274
- # Mean center
275
- X_centered = X - self.mean_
276
- return dispatch(
277
- self,
278
- "transform",
279
- {
280
- "onedal": self.__class__._onedal_predict,
281
- "sklearn": sklearn_PCA.transform,
282
- },
283
- X_centered,
284
- )
285
-
286
- def transform(self, X):
287
- check_is_fitted(self)
288
- if hasattr(self, "_onedal_estimator"):
289
- X_new = self._onedal_transform(X)[:, : self.n_components_]
290
- if self.whiten:
291
- X_new /= np.sqrt(self.explained_variance_)
292
- else:
293
- return sklearn_PCA.transform(self, X)
294
- return X_new
295
-
296
- def fit_transform(self, X, y=None):
297
- """Fit the model with X and apply the dimensionality reduction on X.
298
- Parameters
299
- ----------
300
- X : array-like of shape (n_samples, n_features)
301
- Training data, where `n_samples` is the number of samples
302
- and `n_features` is the number of features.
303
- y : Ignored.
304
-
305
- Returns
306
- -------
307
- X_new : ndarray of shape (n_samples, n_components)
308
- Transformed values of X.
309
- """
310
- if self.svd_solver in ["randomized", "arpack"]:
311
- return sklearn_PCA.fit_transform(self, X)
312
- else:
313
- self.fit(X)
314
- if hasattr(self, "_onedal_estimator"):
315
- X_new = self._onedal_transform(X)[:, : self.n_components_]
316
- if self.whiten:
317
- X_new /= np.sqrt(self.explained_variance_)
318
- return X_new
319
- else:
320
- return sklearn_PCA.transform(self, X)
321
-
322
- def _save_attributes(self):
323
- self.n_samples_ = self._onedal_estimator.n_samples_
324
-
325
- if sklearn_check_version("1.2"):
326
- self.n_features_in_ = self._onedal_estimator.n_features_in_
327
- n_features = self.n_features_in_
328
- elif sklearn_check_version("0.24"):
329
- self.n_features_ = self._onedal_estimator.n_features_
330
- self.n_features_in_ = self._onedal_estimator.n_features_in_
331
- n_features = self.n_features_in_
332
- else:
333
- self.n_features_ = self._onedal_estimator.n_features_
334
- n_features = self.n_features_
335
- n_sf_min = min(self.n_samples_, n_features)
336
-
337
- self.mean_ = self._onedal_estimator.mean_
338
- self.singular_values_ = self._onedal_estimator.singular_values_
339
- self.explained_variance_ = self._onedal_estimator.explained_variance_
340
- self.explained_variance_ratio_ = self._onedal_estimator.explained_variance_ratio_
341
-
342
- if self.n_components is None:
343
- self.n_components_ = self._onedal_estimator.n_components_
344
- elif self.n_components == "mle":
345
- if sklearn_check_version("0.23"):
346
- self.n_components_ = _infer_dimension(
347
- self.explained_variance_, self.n_samples_
348
- )
349
- else:
350
- self.n_components_ = _infer_dimension_(
351
- self.explained_variance_, self.n_samples_, n_features
352
- )
353
- elif 0 < self.n_components < 1.0:
354
- ratio_cumsum = stable_cumsum(self.explained_variance_ratio_)
355
- self.n_components_ = (
356
- np.searchsorted(ratio_cumsum, self.n_components, side="right") + 1
357
- )
358
- else:
359
- self.n_components_ = self._onedal_estimator.n_components_
360
-
361
- if self.n_components_ < n_sf_min:
362
- if self.explained_variance_.shape[0] == n_sf_min:
363
- self.noise_variance_ = self.explained_variance_[
364
- self.n_components_ :
365
- ].mean()
366
- else:
367
- self.noise_variance_ = self._onedal_estimator.noise_variance_
368
- else:
369
- self.noise_variance_ = 0.0
370
-
371
- self.explained_variance_ = self.explained_variance_[: self.n_components_]
372
- self.explained_variance_ratio_ = self.explained_variance_ratio_[
373
- : self.n_components_
374
- ]
375
- self.components_ = self._onedal_estimator.components_[: self.n_components_]
376
- self.singular_values_ = self.singular_values_[: self.n_components_]
@@ -1,188 +0,0 @@
1
- # ==============================================================================
2
- # Copyright 2021 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 abc import ABC
18
-
19
- import numpy as np
20
- from sklearn.calibration import CalibratedClassifierCV
21
- from sklearn.model_selection import StratifiedKFold
22
- from sklearn.preprocessing import LabelEncoder
23
-
24
- from daal4py.sklearn._utils import sklearn_check_version
25
- from onedal.utils import _column_or_1d
26
-
27
- from .._utils import PatchingConditionsChain
28
-
29
-
30
- def get_dual_coef(self):
31
- return self.dual_coef_
32
-
33
-
34
- def set_dual_coef(self, value):
35
- self.dual_coef_ = value
36
- if hasattr(self, "_onedal_estimator"):
37
- self._onedal_estimator.dual_coef_ = value
38
- if not self._is_in_fit:
39
- del self._onedal_estimator._onedal_model
40
-
41
-
42
- def get_intercept(self):
43
- return self._intercept_
44
-
45
-
46
- def set_intercept(self, value):
47
- self._intercept_ = value
48
- if hasattr(self, "_onedal_estimator"):
49
- self._onedal_estimator.intercept_ = value
50
- if not self._is_in_fit:
51
- del self._onedal_estimator._onedal_model
52
-
53
-
54
- class BaseSVM(ABC):
55
- def _onedal_gpu_supported(self, method_name, *data):
56
- patching_status = PatchingConditionsChain(f"sklearn.{method_name}")
57
- patching_status.and_conditions([(False, "GPU offloading is not supported.")])
58
- return patching_status
59
-
60
- def _onedal_cpu_supported(self, method_name, *data):
61
- class_name = self.__class__.__name__
62
- patching_status = PatchingConditionsChain(
63
- f"sklearn.svm.{class_name}.{method_name}"
64
- )
65
- if method_name == "fit":
66
- patching_status.and_conditions(
67
- [
68
- (
69
- self.kernel in ["linear", "rbf", "poly", "sigmoid"],
70
- f'Kernel is "{self.kernel}" while '
71
- '"linear", "rbf", "poly" and "sigmoid" are only supported.',
72
- )
73
- ]
74
- )
75
- return patching_status
76
- inference_methods = (
77
- ["predict"]
78
- if class_name.endswith("R")
79
- else ["predict", "predict_proba", "decision_function"]
80
- )
81
- if method_name in inference_methods:
82
- patching_status.and_conditions(
83
- [(hasattr(self, "_onedal_estimator"), "oneDAL model was not trained.")]
84
- )
85
- return patching_status
86
- raise RuntimeError(f"Unknown method {method_name} in {class_name}")
87
-
88
-
89
- class BaseSVC(BaseSVM):
90
- def _compute_balanced_class_weight(self, y):
91
- y_ = _column_or_1d(y)
92
- classes, _ = np.unique(y_, return_inverse=True)
93
-
94
- le = LabelEncoder()
95
- y_ind = le.fit_transform(y_)
96
- if not all(np.in1d(classes, le.classes_)):
97
- raise ValueError("classes should have valid labels that are in y")
98
-
99
- recip_freq = len(y_) / (len(le.classes_) * np.bincount(y_ind).astype(np.float64))
100
- return recip_freq[le.transform(classes)]
101
-
102
- def _fit_proba(self, X, y, sample_weight=None, queue=None):
103
- params = self.get_params()
104
- params["probability"] = False
105
- params["decision_function_shape"] = "ovr"
106
- clf_base = self.__class__(**params)
107
-
108
- try:
109
- n_splits = 5
110
- n_jobs = n_splits if queue is None or queue.sycl_device.is_cpu else 1
111
- cv = StratifiedKFold(
112
- n_splits=n_splits, shuffle=True, random_state=self.random_state
113
- )
114
- if sklearn_check_version("0.24"):
115
- self.clf_prob = CalibratedClassifierCV(
116
- clf_base, ensemble=False, cv=cv, method="sigmoid", n_jobs=n_jobs
117
- )
118
- else:
119
- self.clf_prob = CalibratedClassifierCV(clf_base, cv=cv, method="sigmoid")
120
- self.clf_prob.fit(X, y, sample_weight)
121
- except ValueError:
122
- clf_base = clf_base.fit(X, y, sample_weight)
123
- self.clf_prob = CalibratedClassifierCV(
124
- clf_base, cv="prefit", method="sigmoid"
125
- )
126
- self.clf_prob.fit(X, y, sample_weight)
127
-
128
- def _save_attributes(self):
129
- self.support_vectors_ = self._onedal_estimator.support_vectors_
130
- self.n_features_in_ = self._onedal_estimator.n_features_in_
131
- self.fit_status_ = 0
132
- self.dual_coef_ = self._onedal_estimator.dual_coef_
133
- self.shape_fit_ = self._onedal_estimator.class_weight_
134
- self.classes_ = self._onedal_estimator.classes_
135
- self.class_weight_ = self._onedal_estimator.class_weight_
136
- self.support_ = self._onedal_estimator.support_
137
-
138
- self._intercept_ = self._onedal_estimator.intercept_
139
- self._n_support = self._onedal_estimator._n_support
140
- self._sparse = False
141
- self._gamma = self._onedal_estimator._gamma
142
- if self.probability:
143
- length = int(len(self.classes_) * (len(self.classes_) - 1) / 2)
144
- self._probA = np.zeros(length)
145
- self._probB = np.zeros(length)
146
- else:
147
- self._probA = np.empty(0)
148
- self._probB = np.empty(0)
149
-
150
- self._dual_coef_ = property(get_dual_coef, set_dual_coef)
151
- self.intercept_ = property(get_intercept, set_intercept)
152
-
153
- self._is_in_fit = True
154
- self._dual_coef_ = self.dual_coef_
155
- self.intercept_ = self._intercept_
156
- self._is_in_fit = False
157
-
158
- if sklearn_check_version("1.1"):
159
- length = int(len(self.classes_) * (len(self.classes_) - 1) / 2)
160
- self.n_iter_ = np.full((length,), self._onedal_estimator.n_iter_)
161
-
162
-
163
- class BaseSVR(BaseSVM):
164
- def _save_attributes(self):
165
- self.support_vectors_ = self._onedal_estimator.support_vectors_
166
- self.n_features_in_ = self._onedal_estimator.n_features_in_
167
- self.fit_status_ = 0
168
- self.dual_coef_ = self._onedal_estimator.dual_coef_
169
- self.shape_fit_ = self._onedal_estimator.shape_fit_
170
- self.support_ = self._onedal_estimator.support_
171
-
172
- self._intercept_ = self._onedal_estimator.intercept_
173
- self._n_support = [self.support_vectors_.shape[0]]
174
- self._sparse = False
175
- self._gamma = self._onedal_estimator._gamma
176
- self._probA = None
177
- self._probB = None
178
-
179
- self._dual_coef_ = property(get_dual_coef, set_dual_coef)
180
- self.intercept_ = property(get_intercept, set_intercept)
181
-
182
- self._is_in_fit = True
183
- self._dual_coef_ = self.dual_coef_
184
- self.intercept_ = self._intercept_
185
- self._is_in_fit = False
186
-
187
- if sklearn_check_version("1.1"):
188
- self.n_iter_ = self._onedal_estimator.n_iter_