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

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

Potentially problematic release.


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

Files changed (277) hide show
  1. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
  5. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
  6. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
  7. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  8. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  9. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +248 -0
  10. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  11. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  12. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  13. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
  14. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  15. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition}/__init__.py +3 -3
  16. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
  17. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +196 -0
  18. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +337 -0
  19. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  20. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
  21. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  22. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -29
  23. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
  24. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
  25. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
  26. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
  27. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  28. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  29. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
  30. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  31. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +208 -0
  32. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  33. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +4 -2
  34. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
  35. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  36. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +236 -0
  37. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  38. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  39. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  40. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  41. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  42. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  43. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/_models_info.py +13 -22
  44. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  45. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/test_patching.py +10 -42
  46. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/utils/_launch_algorithms.py +4 -5
  47. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  48. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
  49. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
  50. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
  51. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  52. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  53. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  54. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
  55. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
  56. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
  57. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  58. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
  59. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/__init__.py +83 -0
  60. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_config.py +54 -0
  61. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_device_offload.py +222 -0
  62. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  64. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
  65. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
  66. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  67. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  68. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  69. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  70. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
  71. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +564 -0
  72. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
  73. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  74. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  75. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  76. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
  77. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  78. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  79. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
  80. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
  81. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +125 -0
  82. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +76 -0
  83. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance}/__init__.py +3 -2
  84. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
  85. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
  86. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  87. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
  88. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  89. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +154 -0
  90. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +126 -0
  91. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +414 -0
  92. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  93. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
  94. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
  95. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
  96. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  97. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +727 -0
  98. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  99. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  100. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
  101. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
  102. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
  103. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
  104. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
  105. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +250 -0
  106. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  107. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  108. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  109. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +767 -0
  110. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  111. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  112. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
  113. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
  114. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  115. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  116. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
  117. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
  118. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  119. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  120. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +176 -0
  121. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  122. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/test_common.py +57 -0
  123. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +162 -0
  124. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +102 -0
  125. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
  126. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +81 -0
  127. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +56 -0
  128. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/validation.py +440 -0
  129. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__init__.py +10 -7
  130. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_config.py +22 -16
  131. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +126 -0
  132. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_utils.py +27 -4
  133. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  134. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +230 -0
  135. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +345 -0
  136. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +270 -0
  137. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +404 -0
  138. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  139. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +19 -10
  140. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +395 -0
  141. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
  142. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +159 -0
  143. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
  144. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
  145. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +398 -0
  146. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +237 -0
  147. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +425 -0
  148. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_preview_pca.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +25 -9
  149. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +241 -60
  150. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +250 -188
  151. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +39 -21
  152. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +16 -2
  153. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  154. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +13 -0
  155. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +482 -0
  156. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +425 -0
  157. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +341 -0
  158. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex}/linear_model/logistic_regression.py +194 -133
  159. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +7 -0
  160. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +207 -0
  161. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  162. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  163. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +134 -0
  164. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +4 -0
  165. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +5 -0
  166. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
  167. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +5 -0
  168. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +1 -1
  169. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +236 -0
  170. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +53 -6
  171. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +51 -155
  172. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +46 -149
  173. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +55 -100
  174. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +16 -18
  175. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview}/__init__.py +1 -3
  176. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +138 -0
  177. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +18 -5
  178. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  179. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +233 -0
  180. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +266 -0
  181. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model}/__init__.py +19 -19
  182. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +424 -0
  183. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
  184. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +1 -0
  185. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  186. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  187. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
  188. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  189. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
  190. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
  191. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  192. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +21 -0
  193. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  194. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
  195. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  196. {scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition}/__init__.py +3 -2
  197. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +11 -12
  198. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  199. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
  200. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +4 -12
  201. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
  202. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +3 -1
  203. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +14 -18
  204. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
  205. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  206. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
  207. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
  208. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
  209. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +339 -0
  210. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +172 -78
  211. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +74 -70
  212. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +170 -77
  213. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +66 -66
  214. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +12 -20
  215. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +390 -0
  216. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
  217. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +379 -0
  218. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +276 -0
  219. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
  220. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +6 -8
  221. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +385 -0
  222. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +321 -0
  223. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +44 -0
  224. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +371 -0
  225. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  226. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +82 -0
  227. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +89 -0
  228. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/METADATA +231 -230
  229. scikit_learn_intelex-2025.1.0.dist-info/RECORD +257 -0
  230. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/WHEEL +1 -1
  231. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -223
  232. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
  233. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
  234. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -17
  235. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -27
  236. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -388
  237. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  238. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -82
  239. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -28
  240. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/neighbors/lof.py +0 -436
  241. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  242. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -376
  243. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -98
  244. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/pca.py +0 -376
  245. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_preview_logistic_regression.py +0 -59
  246. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -188
  247. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -225
  248. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -227
  249. scikit_learn_intelex-2024.1.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
  250. scikit_learn_intelex-2024.1.0.dist-info/RECORD +0 -97
  251. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  252. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  253. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  254. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  255. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  256. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  257. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  258. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  259. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  260. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  261. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  262. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  263. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  264. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  265. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  266. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  267. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  268. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  269. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  270. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  271. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  272. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  273. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  274. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  275. {scikit_learn_intelex-2024.1.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  276. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/LICENSE.txt +0 -0
  277. {scikit_learn_intelex-2024.1.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/top_level.txt +0 -0
@@ -17,13 +17,20 @@
17
17
  import numpy as np
18
18
  from scipy import sparse as sp
19
19
  from sklearn.exceptions import NotFittedError
20
- from sklearn.svm import SVC as sklearn_SVC
21
- from sklearn.utils.validation import _deprecate_positional_args
20
+ from sklearn.metrics import accuracy_score
21
+ from sklearn.svm import SVC as _sklearn_SVC
22
+ from sklearn.utils.validation import (
23
+ _deprecate_positional_args,
24
+ check_array,
25
+ check_is_fitted,
26
+ )
22
27
 
23
- from daal4py.sklearn._utils import control_n_jobs, run_with_n_jobs, sklearn_check_version
28
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
29
+ from daal4py.sklearn._utils import sklearn_check_version
24
30
 
25
31
  from .._device_offload import dispatch, wrap_output_data
26
32
  from .._utils import PatchingConditionsChain
33
+ from ..utils._array_api import get_namespace
27
34
  from ._common import BaseSVC
28
35
 
29
36
  if sklearn_check_version("1.0"):
@@ -31,13 +38,20 @@ if sklearn_check_version("1.0"):
31
38
 
32
39
  from onedal.svm import SVC as onedal_SVC
33
40
 
41
+ if sklearn_check_version("1.6"):
42
+ from sklearn.utils.validation import validate_data
43
+ else:
44
+ validate_data = BaseSVC._validate_data
34
45
 
35
- @control_n_jobs
36
- class SVC(sklearn_SVC, BaseSVC):
37
- __doc__ = sklearn_SVC.__doc__
46
+
47
+ @control_n_jobs(
48
+ decorated_methods=["fit", "predict", "_predict_proba", "decision_function", "score"]
49
+ )
50
+ class SVC(_sklearn_SVC, BaseSVC):
51
+ __doc__ = _sklearn_SVC.__doc__
38
52
 
39
53
  if sklearn_check_version("1.2"):
40
- _parameter_constraints: dict = {**sklearn_SVC._parameter_constraints}
54
+ _parameter_constraints: dict = {**_sklearn_SVC._parameter_constraints}
41
55
 
42
56
  @_deprecate_positional_args
43
57
  def __init__(
@@ -78,89 +92,64 @@ class SVC(sklearn_SVC, BaseSVC):
78
92
  )
79
93
 
80
94
  def fit(self, X, y, sample_weight=None):
81
- """
82
- Fit the SVM model according to the given training data.
83
-
84
- Parameters
85
- ----------
86
- X : {array-like, sparse matrix} of shape (n_samples, n_features) \
87
- or (n_samples, n_samples)
88
- Training vectors, where `n_samples` is the number of samples
89
- and `n_features` is the number of features.
90
- For kernel="precomputed", the expected shape of X is
91
- (n_samples, n_samples).
92
-
93
- y : array-like of shape (n_samples,)
94
- Target values (class labels in classification, real numbers in
95
- regression).
96
-
97
- sample_weight : array-like of shape (n_samples,), default=None
98
- Per-sample weights. Rescale C per sample. Higher weights
99
- force the classifier to put more emphasis on these points.
100
-
101
- Returns
102
- -------
103
- self : object
104
- Fitted estimator.
105
-
106
- Notes
107
- -----
108
- If X and y are not C-ordered and contiguous arrays of np.float64 and
109
- X is not a scipy.sparse.csr_matrix, X and/or y may be copied.
110
-
111
- If X is a dense array, then the other methods will not support sparse
112
- matrices as input.
113
- """
114
95
  if sklearn_check_version("1.2"):
115
96
  self._validate_params()
116
- if sklearn_check_version("1.0"):
117
- self._check_feature_names(X, reset=True)
97
+ elif self.C <= 0:
98
+ # else if added to correct issues with
99
+ # sklearn tests:
100
+ # svm/tests/test_sparse.py::test_error
101
+ # svm/tests/test_svm.py::test_bad_input
102
+ # for sklearn versions < 1.2 (i.e. without
103
+ # validate_params parameter checking)
104
+ # Without this, a segmentation fault with
105
+ # Windows fatal exception: access violation
106
+ # occurs
107
+ raise ValueError("C <= 0")
118
108
  dispatch(
119
109
  self,
120
110
  "fit",
121
111
  {
122
112
  "onedal": self.__class__._onedal_fit,
123
- "sklearn": sklearn_SVC.fit,
113
+ "sklearn": _sklearn_SVC.fit,
124
114
  },
125
115
  X,
126
116
  y,
127
- sample_weight,
117
+ sample_weight=sample_weight,
128
118
  )
119
+
129
120
  return self
130
121
 
131
122
  @wrap_output_data
132
123
  def predict(self, X):
133
- """
134
- Perform regression on samples in X.
135
-
136
- For an one-class model, +1 (inlier) or -1 (outlier) is returned.
137
-
138
- Parameters
139
- ----------
140
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
141
- For kernel="precomputed", the expected shape of X is
142
- (n_samples_test, n_samples_train).
143
-
144
- Returns
145
- -------
146
- y_pred : ndarray of shape (n_samples,)
147
- The predicted values.
148
- """
149
- if sklearn_check_version("1.0"):
150
- self._check_feature_names(X, reset=False)
124
+ check_is_fitted(self)
151
125
  return dispatch(
152
126
  self,
153
127
  "predict",
154
128
  {
155
129
  "onedal": self.__class__._onedal_predict,
156
- "sklearn": sklearn_SVC.predict,
130
+ "sklearn": _sklearn_SVC.predict,
131
+ },
132
+ X,
133
+ )
134
+
135
+ @wrap_output_data
136
+ def score(self, X, y, sample_weight=None):
137
+ check_is_fitted(self)
138
+ return dispatch(
139
+ self,
140
+ "score",
141
+ {
142
+ "onedal": self.__class__._onedal_score,
143
+ "sklearn": _sklearn_SVC.score,
157
144
  },
158
145
  X,
146
+ y,
147
+ sample_weight=sample_weight,
159
148
  )
160
149
 
161
150
  if sklearn_check_version("1.0"):
162
151
 
163
- @available_if(sklearn_SVC._check_proba)
152
+ @available_if(_sklearn_SVC._check_proba)
164
153
  def predict_proba(self, X):
165
154
  """
166
155
  Compute probabilities of possible outcomes for samples in X.
@@ -188,21 +177,61 @@ class SVC(sklearn_SVC, BaseSVC):
188
177
  predict. Also, it will produce meaningless results on very small
189
178
  datasets.
190
179
  """
180
+ check_is_fitted(self)
191
181
  return self._predict_proba(X)
192
182
 
183
+ @available_if(_sklearn_SVC._check_proba)
184
+ def predict_log_proba(self, X):
185
+ """Compute log probabilities of possible outcomes for samples in X.
186
+
187
+ The model need to have probability information computed at training
188
+ time: fit with attribute `probability` set to True.
189
+
190
+ Parameters
191
+ ----------
192
+ X : array-like of shape (n_samples, n_features) or \
193
+ (n_samples_test, n_samples_train)
194
+ For kernel="precomputed", the expected shape of X is
195
+ (n_samples_test, n_samples_train).
196
+
197
+ Returns
198
+ -------
199
+ T : ndarray of shape (n_samples, n_classes)
200
+ Returns the log-probabilities of the sample for each class in
201
+ the model. The columns correspond to the classes in sorted
202
+ order, as they appear in the attribute :term:`classes_`.
203
+
204
+ Notes
205
+ -----
206
+ The probability model is created using cross validation, so
207
+ the results can be slightly different than those obtained by
208
+ predict. Also, it will produce meaningless results on very small
209
+ datasets.
210
+ """
211
+ xp, _ = get_namespace(X)
212
+
213
+ return xp.log(self.predict_proba(X))
214
+
193
215
  else:
194
216
 
195
217
  @property
196
218
  def predict_proba(self):
197
219
  self._check_proba()
220
+ check_is_fitted(self)
198
221
  return self._predict_proba
199
222
 
223
+ def _predict_log_proba(self, X):
224
+ xp, _ = get_namespace(X)
225
+ return xp.log(self.predict_proba(X))
226
+
227
+ predict_proba.__doc__ = _sklearn_SVC.predict_proba.__doc__
228
+
200
229
  @wrap_output_data
201
230
  def _predict_proba(self, X):
202
231
  sklearn_pred_proba = (
203
- sklearn_SVC.predict_proba
232
+ _sklearn_SVC.predict_proba
204
233
  if sklearn_check_version("1.0")
205
- else sklearn_SVC._predict_proba
234
+ else _sklearn_SVC._predict_proba
206
235
  )
207
236
 
208
237
  return dispatch(
@@ -217,18 +246,19 @@ class SVC(sklearn_SVC, BaseSVC):
217
246
 
218
247
  @wrap_output_data
219
248
  def decision_function(self, X):
220
- if sklearn_check_version("1.0"):
221
- self._check_feature_names(X, reset=False)
249
+ check_is_fitted(self)
222
250
  return dispatch(
223
251
  self,
224
252
  "decision_function",
225
253
  {
226
254
  "onedal": self.__class__._onedal_decision_function,
227
- "sklearn": sklearn_SVC.decision_function,
255
+ "sklearn": _sklearn_SVC.decision_function,
228
256
  },
229
257
  X,
230
258
  )
231
259
 
260
+ decision_function.__doc__ = _sklearn_SVC.decision_function.__doc__
261
+
232
262
  def _onedal_gpu_supported(self, method_name, *data):
233
263
  class_name = self.__class__.__name__
234
264
  patching_status = PatchingConditionsChain(
@@ -250,7 +280,7 @@ class SVC(sklearn_SVC, BaseSVC):
250
280
  if method_name == "fit":
251
281
  patching_status.and_conditions(conditions)
252
282
  return patching_status
253
- if method_name in ["predict", "predict_proba", "decision_function"]:
283
+ if method_name in ["predict", "predict_proba", "decision_function", "score"]:
254
284
  conditions.append(
255
285
  (hasattr(self, "_onedal_estimator"), "oneDAL model was not trained")
256
286
  )
@@ -258,13 +288,30 @@ class SVC(sklearn_SVC, BaseSVC):
258
288
  return patching_status
259
289
  raise RuntimeError(f"Unknown method {method_name} in {class_name}")
260
290
 
261
- @run_with_n_jobs
291
+ def _get_sample_weight(self, X, y, sample_weight=None):
292
+ sample_weight = super()._get_sample_weight(X, y, sample_weight)
293
+ if sample_weight is None:
294
+ return sample_weight
295
+
296
+ if np.any(sample_weight <= 0) and len(np.unique(y[sample_weight > 0])) != len(
297
+ self.classes_
298
+ ):
299
+ raise ValueError(
300
+ "Invalid input - all samples with positive weights "
301
+ "belong to the same class"
302
+ if sklearn_check_version("1.2")
303
+ else "Invalid input - all samples with positive weights "
304
+ "have the same label."
305
+ )
306
+ return sample_weight
307
+
262
308
  def _onedal_fit(self, X, y, sample_weight=None, queue=None):
309
+ X, _, weights = self._onedal_fit_checks(X, y, sample_weight)
263
310
  onedal_params = {
264
311
  "C": self.C,
265
312
  "kernel": self.kernel,
266
313
  "degree": self.degree,
267
- "gamma": self.gamma,
314
+ "gamma": self._compute_gamma_sigma(X),
268
315
  "coef0": self.coef0,
269
316
  "tol": self.tol,
270
317
  "shrinking": self.shrinking,
@@ -276,17 +323,38 @@ class SVC(sklearn_SVC, BaseSVC):
276
323
  }
277
324
 
278
325
  self._onedal_estimator = onedal_SVC(**onedal_params)
279
- self._onedal_estimator.fit(X, y, sample_weight, queue=queue)
326
+ self._onedal_estimator.fit(X, y, weights, queue=queue)
280
327
 
281
328
  if self.probability:
282
- self._fit_proba(X, y, sample_weight, queue=queue)
329
+ self._fit_proba(
330
+ X,
331
+ y,
332
+ sample_weight=sample_weight,
333
+ queue=queue,
334
+ )
335
+
283
336
  self._save_attributes()
284
337
 
285
- @run_with_n_jobs
286
338
  def _onedal_predict(self, X, queue=None):
339
+ if sklearn_check_version("1.0"):
340
+ X = validate_data(
341
+ self,
342
+ X,
343
+ dtype=[np.float64, np.float32],
344
+ force_all_finite=False,
345
+ ensure_2d=False,
346
+ accept_sparse="csr",
347
+ reset=False,
348
+ )
349
+ else:
350
+ X = check_array(
351
+ X,
352
+ dtype=[np.float64, np.float32],
353
+ force_all_finite=False,
354
+ accept_sparse="csr",
355
+ )
287
356
  return self._onedal_estimator.predict(X, queue=queue)
288
357
 
289
- @run_with_n_jobs
290
358
  def _onedal_predict_proba(self, X, queue=None):
291
359
  if getattr(self, "clf_prob", None) is None:
292
360
  raise NotFittedError(
@@ -301,6 +369,31 @@ class SVC(sklearn_SVC, BaseSVC):
301
369
  with config_context(**cfg):
302
370
  return self.clf_prob.predict_proba(X)
303
371
 
304
- @run_with_n_jobs
305
372
  def _onedal_decision_function(self, X, queue=None):
373
+ if sklearn_check_version("1.0"):
374
+ X = validate_data(
375
+ self,
376
+ X,
377
+ dtype=[np.float64, np.float32],
378
+ force_all_finite=False,
379
+ accept_sparse="csr",
380
+ reset=False,
381
+ )
382
+ else:
383
+ X = check_array(
384
+ X,
385
+ dtype=[np.float64, np.float32],
386
+ force_all_finite=False,
387
+ accept_sparse="csr",
388
+ )
306
389
  return self._onedal_estimator.decision_function(X, queue=queue)
390
+
391
+ def _onedal_score(self, X, y, sample_weight=None, queue=None):
392
+ return accuracy_score(
393
+ y, self._onedal_predict(X, queue=queue), sample_weight=sample_weight
394
+ )
395
+
396
+ fit.__doc__ = _sklearn_SVC.fit.__doc__
397
+ predict.__doc__ = _sklearn_SVC.predict.__doc__
398
+ decision_function.__doc__ = _sklearn_SVC.decision_function.__doc__
399
+ score.__doc__ = _sklearn_SVC.score.__doc__
@@ -14,22 +14,29 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from sklearn.svm import SVR as sklearn_SVR
18
- from sklearn.utils.validation import _deprecate_positional_args
17
+ import numpy as np
18
+ from sklearn.svm import SVR as _sklearn_SVR
19
+ from sklearn.utils.validation import _deprecate_positional_args, check_is_fitted
19
20
 
20
- from daal4py.sklearn._utils import control_n_jobs, run_with_n_jobs, sklearn_check_version
21
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
22
+ from daal4py.sklearn._utils import sklearn_check_version
21
23
  from onedal.svm import SVR as onedal_SVR
22
24
 
23
25
  from .._device_offload import dispatch, wrap_output_data
24
26
  from ._common import BaseSVR
25
27
 
28
+ if sklearn_check_version("1.6"):
29
+ from sklearn.utils.validation import validate_data
30
+ else:
31
+ validate_data = BaseSVR._validate_data
26
32
 
27
- @control_n_jobs
28
- class SVR(sklearn_SVR, BaseSVR):
29
- __doc__ = sklearn_SVR.__doc__
33
+
34
+ @control_n_jobs(decorated_methods=["fit", "predict", "score"])
35
+ class SVR(_sklearn_SVR, BaseSVR):
36
+ __doc__ = _sklearn_SVR.__doc__
30
37
 
31
38
  if sklearn_check_version("1.2"):
32
- _parameter_constraints: dict = {**sklearn_SVR._parameter_constraints}
39
+ _parameter_constraints: dict = {**_sklearn_SVR._parameter_constraints}
33
40
 
34
41
  @_deprecate_positional_args
35
42
  def __init__(
@@ -62,95 +69,69 @@ class SVR(sklearn_SVR, BaseSVR):
62
69
  )
63
70
 
64
71
  def fit(self, X, y, sample_weight=None):
65
- """
66
- Fit the SVM model according to the given training data.
67
-
68
- Parameters
69
- ----------
70
- X : {array-like, sparse matrix} of shape (n_samples, n_features) \
71
- or (n_samples, n_samples)
72
- Training vectors, where `n_samples` is the number of samples
73
- and `n_features` is the number of features.
74
- For kernel="precomputed", the expected shape of X is
75
- (n_samples, n_samples).
76
-
77
- y : array-like of shape (n_samples,)
78
- Target values (class labels in classification, real numbers in
79
- regression).
80
-
81
- sample_weight : array-like of shape (n_samples,), default=None
82
- Per-sample weights. Rescale C per sample. Higher weights
83
- force the classifier to put more emphasis on these points.
84
-
85
- Returns
86
- -------
87
- self : object
88
- Fitted estimator.
89
-
90
- Notes
91
- -----
92
- If X and y are not C-ordered and contiguous arrays of np.float64 and
93
- X is not a scipy.sparse.csr_matrix, X and/or y may be copied.
94
-
95
- If X is a dense array, then the other methods will not support sparse
96
- matrices as input.
97
- """
98
72
  if sklearn_check_version("1.2"):
99
73
  self._validate_params()
100
- if sklearn_check_version("1.0"):
101
- self._check_feature_names(X, reset=True)
74
+ elif self.C <= 0:
75
+ # else if added to correct issues with
76
+ # sklearn tests:
77
+ # svm/tests/test_sparse.py::test_error
78
+ # svm/tests/test_svm.py::test_bad_input
79
+ # for sklearn versions < 1.2 (i.e. without
80
+ # validate_params parameter checking)
81
+ # Without this, a segmentation fault with
82
+ # Windows fatal exception: access violation
83
+ # occurs
84
+ raise ValueError("C <= 0")
102
85
  dispatch(
103
86
  self,
104
87
  "fit",
105
88
  {
106
89
  "onedal": self.__class__._onedal_fit,
107
- "sklearn": sklearn_SVR.fit,
90
+ "sklearn": _sklearn_SVR.fit,
108
91
  },
109
92
  X,
110
93
  y,
111
- sample_weight,
94
+ sample_weight=sample_weight,
112
95
  )
113
96
 
114
97
  return self
115
98
 
116
99
  @wrap_output_data
117
100
  def predict(self, X):
118
- """
119
- Perform regression on samples in X.
120
-
121
- For an one-class model, +1 (inlier) or -1 (outlier) is returned.
122
-
123
- Parameters
124
- ----------
125
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
126
- For kernel="precomputed", the expected shape of X is
127
- (n_samples_test, n_samples_train).
128
-
129
- Returns
130
- -------
131
- y_pred : ndarray of shape (n_samples,)
132
- The predicted values.
133
- """
134
- if sklearn_check_version("1.0"):
135
- self._check_feature_names(X, reset=False)
101
+ check_is_fitted(self)
136
102
  return dispatch(
137
103
  self,
138
104
  "predict",
139
105
  {
140
106
  "onedal": self.__class__._onedal_predict,
141
- "sklearn": sklearn_SVR.predict,
107
+ "sklearn": _sklearn_SVR.predict,
108
+ },
109
+ X,
110
+ )
111
+
112
+ @wrap_output_data
113
+ def score(self, X, y, sample_weight=None):
114
+ check_is_fitted(self)
115
+ return dispatch(
116
+ self,
117
+ "score",
118
+ {
119
+ "onedal": self.__class__._onedal_score,
120
+ "sklearn": _sklearn_SVR.score,
142
121
  },
143
122
  X,
123
+ y,
124
+ sample_weight=sample_weight,
144
125
  )
145
126
 
146
- @run_with_n_jobs
147
127
  def _onedal_fit(self, X, y, sample_weight=None, queue=None):
128
+ X, _, sample_weight = self._onedal_fit_checks(X, y, sample_weight)
148
129
  onedal_params = {
149
130
  "C": self.C,
150
131
  "epsilon": self.epsilon,
151
132
  "kernel": self.kernel,
152
133
  "degree": self.degree,
153
- "gamma": self.gamma,
134
+ "gamma": self._compute_gamma_sigma(X),
154
135
  "coef0": self.coef0,
155
136
  "tol": self.tol,
156
137
  "shrinking": self.shrinking,
@@ -162,6 +143,25 @@ class SVR(sklearn_SVR, BaseSVR):
162
143
  self._onedal_estimator.fit(X, y, sample_weight, queue=queue)
163
144
  self._save_attributes()
164
145
 
165
- @run_with_n_jobs
166
146
  def _onedal_predict(self, X, queue=None):
147
+ if sklearn_check_version("1.0"):
148
+ X = validate_data(
149
+ self,
150
+ X,
151
+ dtype=[np.float64, np.float32],
152
+ force_all_finite=False,
153
+ accept_sparse="csr",
154
+ reset=False,
155
+ )
156
+ else:
157
+ X = check_array(
158
+ X,
159
+ dtype=[np.float64, np.float32],
160
+ force_all_finite=False,
161
+ accept_sparse="csr",
162
+ )
167
163
  return self._onedal_estimator.predict(X, queue=queue)
164
+
165
+ fit.__doc__ = _sklearn_SVR.fit.__doc__
166
+ predict.__doc__ = _sklearn_SVR.predict.__doc__
167
+ score.__doc__ = _sklearn_SVR.score.__doc__
@@ -25,12 +25,10 @@ from onedal.tests.utils._dataframes_support import (
25
25
  )
26
26
 
27
27
 
28
- # TODO:
29
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
30
- @pytest.mark.parametrize(
31
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
32
- )
28
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
33
29
  def test_sklearnex_import_svc(dataframe, queue):
30
+ if queue and queue.sycl_device.is_gpu:
31
+ pytest.skip("SVC fit for the GPU sycl_queue is buggy.")
34
32
  from sklearnex.svm import SVC
35
33
 
36
34
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])
@@ -43,12 +41,10 @@ def test_sklearnex_import_svc(dataframe, queue):
43
41
  assert_allclose(_as_numpy(svc.support_), [1, 3])
44
42
 
45
43
 
46
- # TODO:
47
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
48
- @pytest.mark.parametrize(
49
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
50
- )
44
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
51
45
  def test_sklearnex_import_nusvc(dataframe, queue):
46
+ if queue and queue.sycl_device.is_gpu:
47
+ pytest.skip("NuSVC fit for the GPU sycl_queue is buggy.")
52
48
  from sklearnex.svm import NuSVC
53
49
 
54
50
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])
@@ -63,12 +59,10 @@ def test_sklearnex_import_nusvc(dataframe, queue):
63
59
  assert_allclose(_as_numpy(svc.support_), [0, 1, 3, 4])
64
60
 
65
61
 
66
- # TODO:
67
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
68
- @pytest.mark.parametrize(
69
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
70
- )
62
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
71
63
  def test_sklearnex_import_svr(dataframe, queue):
64
+ if queue and queue.sycl_device.is_gpu:
65
+ pytest.skip("SVR fit for the GPU sycl_queue is buggy.")
72
66
  from sklearnex.svm import SVR
73
67
 
74
68
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])
@@ -81,12 +75,10 @@ def test_sklearnex_import_svr(dataframe, queue):
81
75
  assert_allclose(_as_numpy(svc.support_), [1, 3])
82
76
 
83
77
 
84
- # TODO:
85
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
86
- @pytest.mark.parametrize(
87
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
88
- )
78
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
89
79
  def test_sklearnex_import_nusvr(dataframe, queue):
80
+ if queue and queue.sycl_device.is_gpu:
81
+ pytest.skip("NuSVR fit for the GPU sycl_queue is buggy.")
90
82
  from sklearnex.svm import NuSVR
91
83
 
92
84
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])