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