scikit-learn-intelex 2024.2.0__py39-none-win_amd64.whl → 2025.1.0__py39-none-win_amd64.whl

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

Potentially problematic release.


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

Files changed (275) hide show
  1. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
  5. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
  6. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
  7. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
  8. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  9. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +248 -0
  10. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  11. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  12. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  13. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
  14. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  15. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
  16. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
  17. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +196 -0
  18. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +337 -0
  19. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  20. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
  21. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  22. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -28
  23. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
  24. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
  25. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
  26. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
  27. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  28. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  29. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
  30. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  31. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +208 -0
  32. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  33. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
  34. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
  35. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  36. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +236 -0
  37. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  38. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  39. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  40. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  41. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  42. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  43. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/_models_info.py +13 -22
  44. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  45. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/test_patching.py +10 -56
  46. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch}/tests/utils/_launch_algorithms.py +4 -5
  47. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  48. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
  49. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
  50. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
  51. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  52. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  53. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  54. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
  55. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
  56. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
  57. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  58. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
  59. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/__init__.py +83 -0
  60. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_config.py +54 -0
  61. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_device_offload.py +222 -0
  62. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  64. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
  65. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
  66. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  67. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  68. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  69. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  70. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
  71. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +564 -0
  72. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
  73. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  74. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  75. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  76. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
  77. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  78. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  79. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
  80. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
  81. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +125 -0
  82. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +76 -0
  83. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  84. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
  85. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
  86. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  87. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
  88. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  89. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +154 -0
  90. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +126 -0
  91. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +414 -0
  92. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/basic_statistics → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  93. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
  94. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
  95. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
  96. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  97. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +727 -0
  98. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  99. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  100. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
  101. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
  102. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
  103. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
  104. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
  105. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +250 -0
  106. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  107. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  108. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  109. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +767 -0
  110. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  111. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  112. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
  113. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
  114. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  115. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  116. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
  117. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
  118. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  119. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  120. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +176 -0
  121. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  122. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/test_common.py +57 -0
  123. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +162 -0
  124. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +102 -0
  125. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
  126. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +81 -0
  127. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +56 -0
  128. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/utils/validation.py +440 -0
  129. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__init__.py +10 -7
  130. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_config.py +22 -16
  131. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +126 -0
  132. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/_utils.py +27 -4
  133. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  134. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +230 -0
  135. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +345 -0
  136. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +270 -0
  137. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +404 -0
  138. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  139. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +16 -7
  140. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +395 -0
  141. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
  142. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +159 -0
  143. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
  144. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +398 -0
  145. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +111 -17
  146. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +425 -0
  147. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_preview_pca.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +25 -9
  148. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +222 -42
  149. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +249 -182
  150. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +39 -21
  151. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +16 -2
  152. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  153. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +13 -0
  154. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +482 -0
  155. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +425 -0
  156. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +341 -0
  157. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +182 -102
  158. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +7 -0
  159. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +207 -0
  160. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  161. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  162. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +45 -4
  163. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +4 -0
  164. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +5 -0
  165. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
  166. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +5 -0
  167. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +97 -28
  168. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +53 -6
  169. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +48 -149
  170. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +43 -144
  171. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +50 -93
  172. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +6 -9
  173. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  174. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +24 -18
  175. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +18 -5
  176. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  177. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +233 -0
  178. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +266 -0
  179. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/decomposition → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model}/__init__.py +19 -19
  180. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +424 -0
  181. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
  182. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  183. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  184. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
  185. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  186. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
  187. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
  188. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  189. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  190. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
  191. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  192. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition}/__init__.py +3 -2
  193. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
  194. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  195. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
  196. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +4 -12
  197. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
  198. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
  199. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py → scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +14 -18
  200. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  201. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
  202. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
  203. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
  204. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +339 -0
  205. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +168 -73
  206. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +71 -66
  207. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +166 -72
  208. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +64 -63
  209. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +12 -20
  210. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +390 -0
  211. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
  212. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +379 -0
  213. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +276 -0
  214. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
  215. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +6 -8
  216. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +385 -0
  217. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +321 -0
  218. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +44 -0
  219. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +371 -0
  220. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  221. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +82 -0
  222. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +89 -0
  223. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/METADATA +231 -230
  224. scikit_learn_intelex-2025.1.0.dist-info/RECORD +257 -0
  225. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/WHEEL +1 -1
  226. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -223
  227. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
  228. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
  229. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -130
  230. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -17
  231. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -27
  232. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -381
  233. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  234. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -82
  235. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  236. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -371
  237. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/pca.py +0 -374
  238. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -188
  239. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -222
  240. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -240
  241. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -93
  242. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
  243. scikit_learn_intelex-2024.2.0.dist-info/RECORD +0 -101
  244. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  245. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  246. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  247. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  248. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  249. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  250. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  251. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  252. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  253. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  254. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  255. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  256. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  257. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  258. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  259. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  260. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  261. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  262. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  263. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  264. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  265. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  266. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  267. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  268. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  269. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  270. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  271. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  272. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  273. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2025.1.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  274. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/LICENSE.txt +0 -0
  275. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2025.1.0.dist-info}/top_level.txt +0 -0
@@ -17,14 +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
28
  from daal4py.sklearn._n_jobs_support import control_n_jobs
24
29
  from daal4py.sklearn._utils import sklearn_check_version
25
30
 
26
31
  from .._device_offload import dispatch, wrap_output_data
27
32
  from .._utils import PatchingConditionsChain
33
+ from ..utils._array_api import get_namespace
28
34
  from ._common import BaseSVC
29
35
 
30
36
  if sklearn_check_version("1.0"):
@@ -32,15 +38,20 @@ if sklearn_check_version("1.0"):
32
38
 
33
39
  from onedal.svm import SVC as onedal_SVC
34
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
+
35
46
 
36
47
  @control_n_jobs(
37
- decorated_methods=["fit", "predict", "_predict_proba", "decision_function"]
48
+ decorated_methods=["fit", "predict", "_predict_proba", "decision_function", "score"]
38
49
  )
39
- class SVC(sklearn_SVC, BaseSVC):
40
- __doc__ = sklearn_SVC.__doc__
50
+ class SVC(_sklearn_SVC, BaseSVC):
51
+ __doc__ = _sklearn_SVC.__doc__
41
52
 
42
53
  if sklearn_check_version("1.2"):
43
- _parameter_constraints: dict = {**sklearn_SVC._parameter_constraints}
54
+ _parameter_constraints: dict = {**_sklearn_SVC._parameter_constraints}
44
55
 
45
56
  @_deprecate_positional_args
46
57
  def __init__(
@@ -81,89 +92,64 @@ class SVC(sklearn_SVC, BaseSVC):
81
92
  )
82
93
 
83
94
  def fit(self, X, y, sample_weight=None):
84
- """
85
- Fit the SVM model according to the given training data.
86
-
87
- Parameters
88
- ----------
89
- X : {array-like, sparse matrix} of shape (n_samples, n_features) \
90
- or (n_samples, n_samples)
91
- Training vectors, where `n_samples` is the number of samples
92
- and `n_features` is the number of features.
93
- For kernel="precomputed", the expected shape of X is
94
- (n_samples, n_samples).
95
-
96
- y : array-like of shape (n_samples,)
97
- Target values (class labels in classification, real numbers in
98
- regression).
99
-
100
- sample_weight : array-like of shape (n_samples,), default=None
101
- Per-sample weights. Rescale C per sample. Higher weights
102
- force the classifier to put more emphasis on these points.
103
-
104
- Returns
105
- -------
106
- self : object
107
- Fitted estimator.
108
-
109
- Notes
110
- -----
111
- If X and y are not C-ordered and contiguous arrays of np.float64 and
112
- X is not a scipy.sparse.csr_matrix, X and/or y may be copied.
113
-
114
- If X is a dense array, then the other methods will not support sparse
115
- matrices as input.
116
- """
117
95
  if sklearn_check_version("1.2"):
118
96
  self._validate_params()
119
- if sklearn_check_version("1.0"):
120
- 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")
121
108
  dispatch(
122
109
  self,
123
110
  "fit",
124
111
  {
125
112
  "onedal": self.__class__._onedal_fit,
126
- "sklearn": sklearn_SVC.fit,
113
+ "sklearn": _sklearn_SVC.fit,
127
114
  },
128
115
  X,
129
116
  y,
130
- sample_weight,
117
+ sample_weight=sample_weight,
131
118
  )
119
+
132
120
  return self
133
121
 
134
122
  @wrap_output_data
135
123
  def predict(self, X):
136
- """
137
- Perform regression on samples in X.
138
-
139
- For an one-class model, +1 (inlier) or -1 (outlier) is returned.
140
-
141
- Parameters
142
- ----------
143
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
144
- For kernel="precomputed", the expected shape of X is
145
- (n_samples_test, n_samples_train).
146
-
147
- Returns
148
- -------
149
- y_pred : ndarray of shape (n_samples,)
150
- The predicted values.
151
- """
152
- if sklearn_check_version("1.0"):
153
- self._check_feature_names(X, reset=False)
124
+ check_is_fitted(self)
154
125
  return dispatch(
155
126
  self,
156
127
  "predict",
157
128
  {
158
129
  "onedal": self.__class__._onedal_predict,
159
- "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,
160
144
  },
161
145
  X,
146
+ y,
147
+ sample_weight=sample_weight,
162
148
  )
163
149
 
164
150
  if sklearn_check_version("1.0"):
165
151
 
166
- @available_if(sklearn_SVC._check_proba)
152
+ @available_if(_sklearn_SVC._check_proba)
167
153
  def predict_proba(self, X):
168
154
  """
169
155
  Compute probabilities of possible outcomes for samples in X.
@@ -191,21 +177,61 @@ class SVC(sklearn_SVC, BaseSVC):
191
177
  predict. Also, it will produce meaningless results on very small
192
178
  datasets.
193
179
  """
180
+ check_is_fitted(self)
194
181
  return self._predict_proba(X)
195
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
+
196
215
  else:
197
216
 
198
217
  @property
199
218
  def predict_proba(self):
200
219
  self._check_proba()
220
+ check_is_fitted(self)
201
221
  return self._predict_proba
202
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
+
203
229
  @wrap_output_data
204
230
  def _predict_proba(self, X):
205
231
  sklearn_pred_proba = (
206
- sklearn_SVC.predict_proba
232
+ _sklearn_SVC.predict_proba
207
233
  if sklearn_check_version("1.0")
208
- else sklearn_SVC._predict_proba
234
+ else _sklearn_SVC._predict_proba
209
235
  )
210
236
 
211
237
  return dispatch(
@@ -220,18 +246,19 @@ class SVC(sklearn_SVC, BaseSVC):
220
246
 
221
247
  @wrap_output_data
222
248
  def decision_function(self, X):
223
- if sklearn_check_version("1.0"):
224
- self._check_feature_names(X, reset=False)
249
+ check_is_fitted(self)
225
250
  return dispatch(
226
251
  self,
227
252
  "decision_function",
228
253
  {
229
254
  "onedal": self.__class__._onedal_decision_function,
230
- "sklearn": sklearn_SVC.decision_function,
255
+ "sklearn": _sklearn_SVC.decision_function,
231
256
  },
232
257
  X,
233
258
  )
234
259
 
260
+ decision_function.__doc__ = _sklearn_SVC.decision_function.__doc__
261
+
235
262
  def _onedal_gpu_supported(self, method_name, *data):
236
263
  class_name = self.__class__.__name__
237
264
  patching_status = PatchingConditionsChain(
@@ -253,7 +280,7 @@ class SVC(sklearn_SVC, BaseSVC):
253
280
  if method_name == "fit":
254
281
  patching_status.and_conditions(conditions)
255
282
  return patching_status
256
- if method_name in ["predict", "predict_proba", "decision_function"]:
283
+ if method_name in ["predict", "predict_proba", "decision_function", "score"]:
257
284
  conditions.append(
258
285
  (hasattr(self, "_onedal_estimator"), "oneDAL model was not trained")
259
286
  )
@@ -261,12 +288,30 @@ class SVC(sklearn_SVC, BaseSVC):
261
288
  return patching_status
262
289
  raise RuntimeError(f"Unknown method {method_name} in {class_name}")
263
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
+
264
308
  def _onedal_fit(self, X, y, sample_weight=None, queue=None):
309
+ X, _, weights = self._onedal_fit_checks(X, y, sample_weight)
265
310
  onedal_params = {
266
311
  "C": self.C,
267
312
  "kernel": self.kernel,
268
313
  "degree": self.degree,
269
- "gamma": self.gamma,
314
+ "gamma": self._compute_gamma_sigma(X),
270
315
  "coef0": self.coef0,
271
316
  "tol": self.tol,
272
317
  "shrinking": self.shrinking,
@@ -278,13 +323,36 @@ class SVC(sklearn_SVC, BaseSVC):
278
323
  }
279
324
 
280
325
  self._onedal_estimator = onedal_SVC(**onedal_params)
281
- self._onedal_estimator.fit(X, y, sample_weight, queue=queue)
326
+ self._onedal_estimator.fit(X, y, weights, queue=queue)
282
327
 
283
328
  if self.probability:
284
- 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
+
285
336
  self._save_attributes()
286
337
 
287
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
+ )
288
356
  return self._onedal_estimator.predict(X, queue=queue)
289
357
 
290
358
  def _onedal_predict_proba(self, X, queue=None):
@@ -302,4 +370,30 @@ class SVC(sklearn_SVC, BaseSVC):
302
370
  return self.clf_prob.predict_proba(X)
303
371
 
304
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
+ )
305
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,8 +14,9 @@
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
21
  from daal4py.sklearn._n_jobs_support import control_n_jobs
21
22
  from daal4py.sklearn._utils import sklearn_check_version
@@ -24,13 +25,18 @@ from onedal.svm import SVR as onedal_SVR
24
25
  from .._device_offload import dispatch, wrap_output_data
25
26
  from ._common import BaseSVR
26
27
 
28
+ if sklearn_check_version("1.6"):
29
+ from sklearn.utils.validation import validate_data
30
+ else:
31
+ validate_data = BaseSVR._validate_data
27
32
 
28
- @control_n_jobs(decorated_methods=["fit", "predict"])
29
- class SVR(sklearn_SVR, BaseSVR):
30
- __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__
31
37
 
32
38
  if sklearn_check_version("1.2"):
33
- _parameter_constraints: dict = {**sklearn_SVR._parameter_constraints}
39
+ _parameter_constraints: dict = {**_sklearn_SVR._parameter_constraints}
34
40
 
35
41
  @_deprecate_positional_args
36
42
  def __init__(
@@ -63,94 +69,69 @@ class SVR(sklearn_SVR, BaseSVR):
63
69
  )
64
70
 
65
71
  def fit(self, X, y, sample_weight=None):
66
- """
67
- Fit the SVM model according to the given training data.
68
-
69
- Parameters
70
- ----------
71
- X : {array-like, sparse matrix} of shape (n_samples, n_features) \
72
- or (n_samples, n_samples)
73
- Training vectors, where `n_samples` is the number of samples
74
- and `n_features` is the number of features.
75
- For kernel="precomputed", the expected shape of X is
76
- (n_samples, n_samples).
77
-
78
- y : array-like of shape (n_samples,)
79
- Target values (class labels in classification, real numbers in
80
- regression).
81
-
82
- sample_weight : array-like of shape (n_samples,), default=None
83
- Per-sample weights. Rescale C per sample. Higher weights
84
- force the classifier to put more emphasis on these points.
85
-
86
- Returns
87
- -------
88
- self : object
89
- Fitted estimator.
90
-
91
- Notes
92
- -----
93
- If X and y are not C-ordered and contiguous arrays of np.float64 and
94
- X is not a scipy.sparse.csr_matrix, X and/or y may be copied.
95
-
96
- If X is a dense array, then the other methods will not support sparse
97
- matrices as input.
98
- """
99
72
  if sklearn_check_version("1.2"):
100
73
  self._validate_params()
101
- if sklearn_check_version("1.0"):
102
- 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")
103
85
  dispatch(
104
86
  self,
105
87
  "fit",
106
88
  {
107
89
  "onedal": self.__class__._onedal_fit,
108
- "sklearn": sklearn_SVR.fit,
90
+ "sklearn": _sklearn_SVR.fit,
109
91
  },
110
92
  X,
111
93
  y,
112
- sample_weight,
94
+ sample_weight=sample_weight,
113
95
  )
114
96
 
115
97
  return self
116
98
 
117
99
  @wrap_output_data
118
100
  def predict(self, X):
119
- """
120
- Perform regression on samples in X.
121
-
122
- For an one-class model, +1 (inlier) or -1 (outlier) is returned.
123
-
124
- Parameters
125
- ----------
126
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
127
- For kernel="precomputed", the expected shape of X is
128
- (n_samples_test, n_samples_train).
129
-
130
- Returns
131
- -------
132
- y_pred : ndarray of shape (n_samples,)
133
- The predicted values.
134
- """
135
- if sklearn_check_version("1.0"):
136
- self._check_feature_names(X, reset=False)
101
+ check_is_fitted(self)
137
102
  return dispatch(
138
103
  self,
139
104
  "predict",
140
105
  {
141
106
  "onedal": self.__class__._onedal_predict,
142
- "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,
143
121
  },
144
122
  X,
123
+ y,
124
+ sample_weight=sample_weight,
145
125
  )
146
126
 
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,
@@ -163,4 +144,24 @@ class SVR(sklearn_SVR, BaseSVR):
163
144
  self._save_attributes()
164
145
 
165
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
+ )
166
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]])