scikit-learn-intelex 2024.0.1__py311-none-win_amd64.whl → 2025.1.0__py311-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.cp311-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.cp311-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.cp311-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-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
@@ -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
22
-
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
+ )
27
+
28
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
23
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,12 +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
45
+
34
46
 
35
- class SVC(sklearn_SVC, BaseSVC):
36
- __doc__ = sklearn_SVC.__doc__
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__
37
52
 
38
53
  if sklearn_check_version("1.2"):
39
- _parameter_constraints: dict = {**sklearn_SVC._parameter_constraints}
54
+ _parameter_constraints: dict = {**_sklearn_SVC._parameter_constraints}
40
55
 
41
56
  @_deprecate_positional_args
42
57
  def __init__(
@@ -77,89 +92,64 @@ class SVC(sklearn_SVC, BaseSVC):
77
92
  )
78
93
 
79
94
  def fit(self, X, y, sample_weight=None):
80
- """
81
- Fit the SVM model according to the given training data.
82
-
83
- Parameters
84
- ----------
85
- X : {array-like, sparse matrix} of shape (n_samples, n_features) \
86
- or (n_samples, n_samples)
87
- Training vectors, where `n_samples` is the number of samples
88
- and `n_features` is the number of features.
89
- For kernel="precomputed", the expected shape of X is
90
- (n_samples, n_samples).
91
-
92
- y : array-like of shape (n_samples,)
93
- Target values (class labels in classification, real numbers in
94
- regression).
95
-
96
- sample_weight : array-like of shape (n_samples,), default=None
97
- Per-sample weights. Rescale C per sample. Higher weights
98
- force the classifier to put more emphasis on these points.
99
-
100
- Returns
101
- -------
102
- self : object
103
- Fitted estimator.
104
-
105
- Notes
106
- -----
107
- If X and y are not C-ordered and contiguous arrays of np.float64 and
108
- X is not a scipy.sparse.csr_matrix, X and/or y may be copied.
109
-
110
- If X is a dense array, then the other methods will not support sparse
111
- matrices as input.
112
- """
113
95
  if sklearn_check_version("1.2"):
114
96
  self._validate_params()
115
- if sklearn_check_version("1.0"):
116
- 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")
117
108
  dispatch(
118
109
  self,
119
110
  "fit",
120
111
  {
121
112
  "onedal": self.__class__._onedal_fit,
122
- "sklearn": sklearn_SVC.fit,
113
+ "sklearn": _sklearn_SVC.fit,
123
114
  },
124
115
  X,
125
116
  y,
126
- sample_weight,
117
+ sample_weight=sample_weight,
127
118
  )
119
+
128
120
  return self
129
121
 
130
122
  @wrap_output_data
131
123
  def predict(self, X):
132
- """
133
- Perform regression on samples in X.
134
-
135
- For an one-class model, +1 (inlier) or -1 (outlier) is returned.
136
-
137
- Parameters
138
- ----------
139
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
140
- For kernel="precomputed", the expected shape of X is
141
- (n_samples_test, n_samples_train).
142
-
143
- Returns
144
- -------
145
- y_pred : ndarray of shape (n_samples,)
146
- The predicted values.
147
- """
148
- if sklearn_check_version("1.0"):
149
- self._check_feature_names(X, reset=False)
124
+ check_is_fitted(self)
150
125
  return dispatch(
151
126
  self,
152
127
  "predict",
153
128
  {
154
129
  "onedal": self.__class__._onedal_predict,
155
- "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,
156
144
  },
157
145
  X,
146
+ y,
147
+ sample_weight=sample_weight,
158
148
  )
159
149
 
160
150
  if sklearn_check_version("1.0"):
161
151
 
162
- @available_if(sklearn_SVC._check_proba)
152
+ @available_if(_sklearn_SVC._check_proba)
163
153
  def predict_proba(self, X):
164
154
  """
165
155
  Compute probabilities of possible outcomes for samples in X.
@@ -187,21 +177,61 @@ class SVC(sklearn_SVC, BaseSVC):
187
177
  predict. Also, it will produce meaningless results on very small
188
178
  datasets.
189
179
  """
180
+ check_is_fitted(self)
190
181
  return self._predict_proba(X)
191
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
+
192
215
  else:
193
216
 
194
217
  @property
195
218
  def predict_proba(self):
196
219
  self._check_proba()
220
+ check_is_fitted(self)
197
221
  return self._predict_proba
198
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
+
199
229
  @wrap_output_data
200
230
  def _predict_proba(self, X):
201
231
  sklearn_pred_proba = (
202
- sklearn_SVC.predict_proba
232
+ _sklearn_SVC.predict_proba
203
233
  if sklearn_check_version("1.0")
204
- else sklearn_SVC._predict_proba
234
+ else _sklearn_SVC._predict_proba
205
235
  )
206
236
 
207
237
  return dispatch(
@@ -216,18 +246,19 @@ class SVC(sklearn_SVC, BaseSVC):
216
246
 
217
247
  @wrap_output_data
218
248
  def decision_function(self, X):
219
- if sklearn_check_version("1.0"):
220
- self._check_feature_names(X, reset=False)
249
+ check_is_fitted(self)
221
250
  return dispatch(
222
251
  self,
223
252
  "decision_function",
224
253
  {
225
254
  "onedal": self.__class__._onedal_decision_function,
226
- "sklearn": sklearn_SVC.decision_function,
255
+ "sklearn": _sklearn_SVC.decision_function,
227
256
  },
228
257
  X,
229
258
  )
230
259
 
260
+ decision_function.__doc__ = _sklearn_SVC.decision_function.__doc__
261
+
231
262
  def _onedal_gpu_supported(self, method_name, *data):
232
263
  class_name = self.__class__.__name__
233
264
  patching_status = PatchingConditionsChain(
@@ -235,7 +266,7 @@ class SVC(sklearn_SVC, BaseSVC):
235
266
  )
236
267
  if len(data) > 1:
237
268
  self._class_count = len(np.unique(data[1]))
238
- self._is_sparse = sp.isspmatrix(data[0])
269
+ self._is_sparse = sp.issparse(data[0])
239
270
  conditions = [
240
271
  (
241
272
  self.kernel in ["linear", "rbf"],
@@ -249,7 +280,7 @@ class SVC(sklearn_SVC, BaseSVC):
249
280
  if method_name == "fit":
250
281
  patching_status.and_conditions(conditions)
251
282
  return patching_status
252
- if method_name in ["predict", "predict_proba", "decision_function"]:
283
+ if method_name in ["predict", "predict_proba", "decision_function", "score"]:
253
284
  conditions.append(
254
285
  (hasattr(self, "_onedal_estimator"), "oneDAL model was not trained")
255
286
  )
@@ -257,12 +288,30 @@ class SVC(sklearn_SVC, BaseSVC):
257
288
  return patching_status
258
289
  raise RuntimeError(f"Unknown method {method_name} in {class_name}")
259
290
 
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
+
260
308
  def _onedal_fit(self, X, y, sample_weight=None, queue=None):
309
+ X, _, weights = self._onedal_fit_checks(X, y, sample_weight)
261
310
  onedal_params = {
262
311
  "C": self.C,
263
312
  "kernel": self.kernel,
264
313
  "degree": self.degree,
265
- "gamma": self.gamma,
314
+ "gamma": self._compute_gamma_sigma(X),
266
315
  "coef0": self.coef0,
267
316
  "tol": self.tol,
268
317
  "shrinking": self.shrinking,
@@ -274,13 +323,36 @@ class SVC(sklearn_SVC, BaseSVC):
274
323
  }
275
324
 
276
325
  self._onedal_estimator = onedal_SVC(**onedal_params)
277
- self._onedal_estimator.fit(X, y, sample_weight, queue=queue)
326
+ self._onedal_estimator.fit(X, y, weights, queue=queue)
278
327
 
279
328
  if self.probability:
280
- 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
+
281
336
  self._save_attributes()
282
337
 
283
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
+ )
284
356
  return self._onedal_estimator.predict(X, queue=queue)
285
357
 
286
358
  def _onedal_predict_proba(self, X, queue=None):
@@ -298,4 +370,30 @@ class SVC(sklearn_SVC, BaseSVC):
298
370
  return self.clf_prob.predict_proba(X)
299
371
 
300
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
+ )
301
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,21 +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
 
21
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
20
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
- class SVR(sklearn_SVR, BaseSVR):
28
- __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__
29
37
 
30
38
  if sklearn_check_version("1.2"):
31
- _parameter_constraints: dict = {**sklearn_SVR._parameter_constraints}
39
+ _parameter_constraints: dict = {**_sklearn_SVR._parameter_constraints}
32
40
 
33
41
  @_deprecate_positional_args
34
42
  def __init__(
@@ -61,94 +69,69 @@ class SVR(sklearn_SVR, BaseSVR):
61
69
  )
62
70
 
63
71
  def fit(self, X, y, sample_weight=None):
64
- """
65
- Fit the SVM model according to the given training data.
66
-
67
- Parameters
68
- ----------
69
- X : {array-like, sparse matrix} of shape (n_samples, n_features) \
70
- or (n_samples, n_samples)
71
- Training vectors, where `n_samples` is the number of samples
72
- and `n_features` is the number of features.
73
- For kernel="precomputed", the expected shape of X is
74
- (n_samples, n_samples).
75
-
76
- y : array-like of shape (n_samples,)
77
- Target values (class labels in classification, real numbers in
78
- regression).
79
-
80
- sample_weight : array-like of shape (n_samples,), default=None
81
- Per-sample weights. Rescale C per sample. Higher weights
82
- force the classifier to put more emphasis on these points.
83
-
84
- Returns
85
- -------
86
- self : object
87
- Fitted estimator.
88
-
89
- Notes
90
- -----
91
- If X and y are not C-ordered and contiguous arrays of np.float64 and
92
- X is not a scipy.sparse.csr_matrix, X and/or y may be copied.
93
-
94
- If X is a dense array, then the other methods will not support sparse
95
- matrices as input.
96
- """
97
72
  if sklearn_check_version("1.2"):
98
73
  self._validate_params()
99
- if sklearn_check_version("1.0"):
100
- 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")
101
85
  dispatch(
102
86
  self,
103
87
  "fit",
104
88
  {
105
89
  "onedal": self.__class__._onedal_fit,
106
- "sklearn": sklearn_SVR.fit,
90
+ "sklearn": _sklearn_SVR.fit,
107
91
  },
108
92
  X,
109
93
  y,
110
- sample_weight,
94
+ sample_weight=sample_weight,
111
95
  )
112
96
 
113
97
  return self
114
98
 
115
99
  @wrap_output_data
116
100
  def predict(self, X):
117
- """
118
- Perform regression on samples in X.
119
-
120
- For an one-class model, +1 (inlier) or -1 (outlier) is returned.
121
-
122
- Parameters
123
- ----------
124
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
125
- For kernel="precomputed", the expected shape of X is
126
- (n_samples_test, n_samples_train).
127
-
128
- Returns
129
- -------
130
- y_pred : ndarray of shape (n_samples,)
131
- The predicted values.
132
- """
133
- if sklearn_check_version("1.0"):
134
- self._check_feature_names(X, reset=False)
101
+ check_is_fitted(self)
135
102
  return dispatch(
136
103
  self,
137
104
  "predict",
138
105
  {
139
106
  "onedal": self.__class__._onedal_predict,
140
- "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,
141
121
  },
142
122
  X,
123
+ y,
124
+ sample_weight=sample_weight,
143
125
  )
144
126
 
145
127
  def _onedal_fit(self, X, y, sample_weight=None, queue=None):
128
+ X, _, sample_weight = self._onedal_fit_checks(X, y, sample_weight)
146
129
  onedal_params = {
147
130
  "C": self.C,
148
131
  "epsilon": self.epsilon,
149
132
  "kernel": self.kernel,
150
133
  "degree": self.degree,
151
- "gamma": self.gamma,
134
+ "gamma": self._compute_gamma_sigma(X),
152
135
  "coef0": self.coef0,
153
136
  "tol": self.tol,
154
137
  "shrinking": self.shrinking,
@@ -161,4 +144,24 @@ class SVR(sklearn_SVR, BaseSVR):
161
144
  self._save_attributes()
162
145
 
163
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
+ )
164
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__
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env python
2
1
  # ===============================================================================
3
2
  # Copyright 2021 Intel Corporation
4
3
  #
@@ -26,12 +25,10 @@ from onedal.tests.utils._dataframes_support import (
26
25
  )
27
26
 
28
27
 
29
- # TODO:
30
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
31
- @pytest.mark.parametrize(
32
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
33
- )
28
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
34
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.")
35
32
  from sklearnex.svm import SVC
36
33
 
37
34
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])
@@ -44,12 +41,10 @@ def test_sklearnex_import_svc(dataframe, queue):
44
41
  assert_allclose(_as_numpy(svc.support_), [1, 3])
45
42
 
46
43
 
47
- # TODO:
48
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
49
- @pytest.mark.parametrize(
50
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
51
- )
44
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
52
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.")
53
48
  from sklearnex.svm import NuSVC
54
49
 
55
50
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])
@@ -64,12 +59,10 @@ def test_sklearnex_import_nusvc(dataframe, queue):
64
59
  assert_allclose(_as_numpy(svc.support_), [0, 1, 3, 4])
65
60
 
66
61
 
67
- # TODO:
68
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
69
- @pytest.mark.parametrize(
70
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
71
- )
62
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
72
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.")
73
66
  from sklearnex.svm import SVR
74
67
 
75
68
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])
@@ -82,12 +75,10 @@ def test_sklearnex_import_svr(dataframe, queue):
82
75
  assert_allclose(_as_numpy(svc.support_), [1, 3])
83
76
 
84
77
 
85
- # TODO:
86
- # investigate failure for `dpnp.ndarrays` and `dpctl.tensors` on `GPU`
87
- @pytest.mark.parametrize(
88
- "dataframe,queue", get_dataframes_and_queues(device_filter_="cpu")
89
- )
78
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
90
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.")
91
82
  from sklearnex.svm import NuSVR
92
83
 
93
84
  X = np.array([[-2, -1], [-1, -1], [-1, -2], [+1, +1], [+1, +2], [+2, +1]])