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