scikit-learn-intelex 2024.7.0__py312-none-win_amd64.whl → 2025.0.1__py312-none-win_amd64.whl

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

Potentially problematic release.


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

Files changed (260) hide show
  1. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
  5. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
  6. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
  7. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  8. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  9. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +242 -0
  10. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +241 -0
  11. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  12. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  13. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
  14. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  15. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
  16. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
  17. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
  18. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +318 -0
  19. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  20. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
  21. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  22. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
  23. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
  24. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
  25. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
  26. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
  27. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  28. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  29. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
  30. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  31. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +196 -0
  32. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  33. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
  34. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
  35. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  36. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +155 -0
  37. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  38. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  39. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  40. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  41. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  42. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  43. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
  44. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  45. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +87 -0
  46. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +118 -0
  47. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  48. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
  49. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
  50. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
  51. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  52. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  53. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  54. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
  55. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
  56. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
  57. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  58. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
  59. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/__init__.py +83 -0
  60. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_config.py +53 -0
  61. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_device_offload.py +229 -0
  62. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  64. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
  65. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  66. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  67. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  68. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  69. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
  70. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/kmeans.py +560 -0
  71. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
  72. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  73. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  74. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  75. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
  76. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  77. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  78. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
  79. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
  80. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/hyperparameters.py +116 -0
  81. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +75 -0
  82. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  83. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
  84. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
  85. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  86. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
  87. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  88. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +95 -0
  89. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +235 -0
  90. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  91. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
  92. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
  93. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
  94. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  95. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/ensemble/forest.py +720 -0
  96. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  97. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  98. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
  99. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
  100. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
  101. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
  102. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
  103. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +149 -0
  104. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  105. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  106. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  107. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +778 -0
  108. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  109. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  110. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
  111. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
  112. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  113. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  114. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
  115. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
  116. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  117. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  118. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  119. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  120. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/tests/test_common.py +41 -0
  121. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +168 -0
  122. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +107 -0
  123. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
  124. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/utils/_array_api.py +91 -0
  125. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/utils/validation.py +432 -0
  126. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/_device_offload.py +36 -13
  127. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  128. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +30 -8
  129. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +49 -16
  130. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  131. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +383 -0
  132. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +153 -0
  133. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +28 -10
  134. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +11 -0
  135. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +1 -1
  136. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/dispatcher.py +19 -9
  137. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1 -1
  138. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +2 -0
  139. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +7 -7
  140. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +45 -26
  141. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +418 -0
  142. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +4 -4
  143. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +13 -10
  144. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  145. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +5 -4
  146. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +3 -3
  147. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +2 -2
  148. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +2 -2
  149. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +4 -2
  150. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +2 -1
  151. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +1 -1
  152. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview}/__init__.py +1 -3
  153. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +8 -8
  154. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +2 -2
  155. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +4 -4
  156. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  157. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  158. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  159. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  160. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  161. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  162. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/decomposition}/__init__.py +4 -1
  163. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
  164. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  165. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
  166. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
  167. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  168. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +4 -1
  169. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +1 -1
  170. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/svc.py +1 -1
  171. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/_utils_spmd.py +18 -5
  172. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +2 -1
  173. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -1
  174. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +12 -11
  175. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +1 -2
  176. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +5 -20
  177. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/METADATA +3 -2
  178. scikit_learn_intelex-2025.0.1.dist-info/RECORD +255 -0
  179. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -25
  180. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -42
  181. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  182. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
  183. scikit_learn_intelex-2024.7.0.dist-info/RECORD +0 -122
  184. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
  185. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  186. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  187. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
  188. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
  189. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  190. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  191. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
  192. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  193. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  194. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  195. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  196. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  197. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  198. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  199. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  200. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  201. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  202. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -0
  203. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -0
  204. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -0
  205. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
  206. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  207. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  208. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  209. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  210. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  211. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  212. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  213. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  214. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  215. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  216. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  217. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  218. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
  219. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  220. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  221. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -0
  222. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -0
  223. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  224. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  225. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
  226. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  227. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  228. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  229. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  230. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
  231. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  232. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
  233. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  234. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
  235. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  236. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  237. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
  238. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  239. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  240. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
  241. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  242. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  243. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
  244. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  245. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/_common.py +0 -0
  246. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  247. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  248. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  249. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -0
  250. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -0
  251. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
  252. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
  253. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  254. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  255. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  256. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -0
  257. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  258. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/LICENSE.txt +0 -0
  259. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/WHEEL +0 -0
  260. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,556 @@
1
+ # ==============================================================================
2
+ # Copyright 2021 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ from abc import ABCMeta, abstractmethod
18
+ from enum import Enum
19
+
20
+ import numpy as np
21
+ from scipy import sparse as sp
22
+
23
+ from onedal import _backend
24
+
25
+ from ..common._estimator_checks import _check_is_fitted
26
+ from ..common._mixin import ClassifierMixin, RegressorMixin
27
+ from ..common._policy import _get_policy
28
+ from ..datatypes import _convert_to_supported, from_table, to_table
29
+ from ..utils import (
30
+ _check_array,
31
+ _check_n_features,
32
+ _check_X_y,
33
+ _column_or_1d,
34
+ _validate_targets,
35
+ )
36
+
37
+
38
+ class SVMtype(Enum):
39
+ c_svc = 0
40
+ epsilon_svr = 1
41
+ nu_svc = 2
42
+ nu_svr = 3
43
+
44
+
45
+ class BaseSVM(metaclass=ABCMeta):
46
+ @abstractmethod
47
+ def __init__(
48
+ self,
49
+ C,
50
+ nu,
51
+ epsilon,
52
+ kernel="rbf",
53
+ *,
54
+ degree,
55
+ gamma,
56
+ coef0,
57
+ tol,
58
+ shrinking,
59
+ cache_size,
60
+ max_iter,
61
+ tau,
62
+ class_weight,
63
+ decision_function_shape,
64
+ break_ties,
65
+ algorithm,
66
+ svm_type=None,
67
+ **kwargs,
68
+ ):
69
+ self.C = C
70
+ self.nu = nu
71
+ self.epsilon = epsilon
72
+ self.kernel = kernel
73
+ self.degree = degree
74
+ self.coef0 = coef0
75
+ self.gamma = gamma
76
+ self.tol = tol
77
+ self.shrinking = shrinking
78
+ self.cache_size = cache_size
79
+ self.max_iter = max_iter
80
+ self.tau = tau
81
+ self.class_weight = class_weight
82
+ self.decision_function_shape = decision_function_shape
83
+ self.break_ties = break_ties
84
+ self.algorithm = algorithm
85
+ self.svm_type = svm_type
86
+
87
+ def _validate_targets(self, y, dtype):
88
+ self.class_weight_ = None
89
+ self.classes_ = None
90
+ return _column_or_1d(y, warn=True).astype(dtype, copy=False)
91
+
92
+ def _get_onedal_params(self, data):
93
+ max_iter = 10000 if self.max_iter == -1 else self.max_iter
94
+ # TODO: remove this workaround
95
+ # when oneDAL SVM starts support of 'n_iterations' result
96
+ self.n_iter_ = 1 if max_iter < 1 else max_iter
97
+ class_count = 0 if self.classes_ is None else len(self.classes_)
98
+ return {
99
+ "fptype": "float" if data.dtype == np.float32 else "double",
100
+ "method": self.algorithm,
101
+ "kernel": self.kernel,
102
+ "c": self.C,
103
+ "nu": self.nu,
104
+ "epsilon": self.epsilon,
105
+ "class_count": class_count,
106
+ "accuracy_threshold": self.tol,
107
+ "max_iteration_count": int(max_iter),
108
+ "scale": self._scale_,
109
+ "sigma": self._sigma_,
110
+ "shift": self.coef0,
111
+ "degree": self.degree,
112
+ "tau": self.tau,
113
+ "shrinking": self.shrinking,
114
+ "cache_size": self.cache_size,
115
+ }
116
+
117
+ def _fit(self, X, y, sample_weight, module, queue):
118
+ if hasattr(self, "decision_function_shape"):
119
+ if self.decision_function_shape not in ("ovr", "ovo", None):
120
+ raise ValueError(
121
+ f"decision_function_shape must be either 'ovr' or 'ovo', "
122
+ f"got {self.decision_function_shape}."
123
+ )
124
+
125
+ X, y = _check_X_y(
126
+ X,
127
+ y,
128
+ dtype=[np.float64, np.float32],
129
+ force_all_finite=True,
130
+ accept_sparse="csr",
131
+ )
132
+ y = self._validate_targets(y, X.dtype)
133
+ if sample_weight is not None and len(sample_weight) > 0:
134
+ sample_weight = _check_array(
135
+ sample_weight,
136
+ accept_sparse=False,
137
+ ensure_2d=False,
138
+ dtype=X.dtype,
139
+ order="C",
140
+ )
141
+ elif self.class_weight is not None:
142
+ sample_weight = np.ones(X.shape[0], dtype=X.dtype)
143
+
144
+ if sample_weight is not None:
145
+ if self.class_weight_ is not None:
146
+ for i, v in enumerate(self.class_weight_):
147
+ sample_weight[y == i] *= v
148
+ data = (X, y, sample_weight)
149
+ else:
150
+ data = (X, y)
151
+ self._sparse = sp.issparse(X)
152
+
153
+ if self.kernel == "linear":
154
+ self._scale_, self._sigma_ = 1.0, 1.0
155
+ self.coef0 = 0.0
156
+ else:
157
+ if isinstance(self.gamma, str):
158
+ if self.gamma == "scale":
159
+ if sp.issparse(X):
160
+ # var = E[X^2] - E[X]^2
161
+ X_sc = (X.multiply(X)).mean() - (X.mean()) ** 2
162
+ else:
163
+ X_sc = X.var()
164
+ _gamma = 1.0 / (X.shape[1] * X_sc) if X_sc != 0 else 1.0
165
+ elif self.gamma == "auto":
166
+ _gamma = 1.0 / X.shape[1]
167
+ else:
168
+ raise ValueError(
169
+ "When 'gamma' is a string, it should be either 'scale' or "
170
+ "'auto'. Got '{}' instead.".format(self.gamma)
171
+ )
172
+ else:
173
+ _gamma = self.gamma
174
+ self._scale_, self._sigma_ = _gamma, np.sqrt(0.5 / _gamma)
175
+
176
+ policy = _get_policy(queue, *data)
177
+ X = _convert_to_supported(policy, X)
178
+ params = self._get_onedal_params(X)
179
+ result = module.train(policy, params, *to_table(*data))
180
+
181
+ if self._sparse:
182
+ self.dual_coef_ = sp.csr_matrix(from_table(result.coeffs).T)
183
+ self.support_vectors_ = sp.csr_matrix(from_table(result.support_vectors))
184
+ else:
185
+ self.dual_coef_ = from_table(result.coeffs).T
186
+ self.support_vectors_ = from_table(result.support_vectors)
187
+
188
+ self.intercept_ = from_table(result.biases).ravel()
189
+ self.support_ = from_table(result.support_indices).ravel().astype("int")
190
+ self.n_features_in_ = X.shape[1]
191
+ self.shape_fit_ = X.shape
192
+
193
+ if getattr(self, "classes_", None) is not None:
194
+ indices = y.take(self.support_, axis=0)
195
+ self._n_support = np.array(
196
+ [np.sum(indices == i) for i, _ in enumerate(self.classes_)]
197
+ )
198
+ self._gamma = self._scale_
199
+
200
+ self._onedal_model = result.model
201
+ return self
202
+
203
+ def _create_model(self, module):
204
+ m = module.model()
205
+
206
+ m.support_vectors = to_table(self.support_vectors_)
207
+ m.coeffs = to_table(self.dual_coef_.T)
208
+ m.biases = to_table(self.intercept_)
209
+
210
+ if self.svm_type is SVMtype.c_svc or self.svm_type is SVMtype.nu_svc:
211
+ m.first_class_response, m.second_class_response = 0, 1
212
+ return m
213
+
214
+ def _predict(self, X, module, queue):
215
+ _check_is_fitted(self)
216
+ if self.break_ties and self.decision_function_shape == "ovo":
217
+ raise ValueError(
218
+ "break_ties must be False when " "decision_function_shape is 'ovo'"
219
+ )
220
+
221
+ if module in [_backend.svm.classification, _backend.svm.nu_classification]:
222
+ sv = self.support_vectors_
223
+ if not self._sparse and sv.size > 0 and self._n_support.sum() != sv.shape[0]:
224
+ raise ValueError(
225
+ "The internal representation "
226
+ f"of {self.__class__.__name__} was altered"
227
+ )
228
+
229
+ if (
230
+ self.break_ties
231
+ and self.decision_function_shape == "ovr"
232
+ and len(self.classes_) > 2
233
+ ):
234
+ y = np.argmax(self.decision_function(X), axis=1)
235
+ else:
236
+ X = _check_array(
237
+ X,
238
+ dtype=[np.float64, np.float32],
239
+ force_all_finite=True,
240
+ accept_sparse="csr",
241
+ )
242
+ _check_n_features(self, X, False)
243
+
244
+ if self._sparse and not sp.isspmatrix(X):
245
+ X = sp.csr_matrix(X)
246
+ if self._sparse:
247
+ X.sort_indices()
248
+
249
+ if sp.issparse(X) and not self._sparse and not callable(self.kernel):
250
+ raise ValueError(
251
+ "cannot use sparse input in %r trained on dense data"
252
+ % type(self).__name__
253
+ )
254
+
255
+ policy = _get_policy(queue, X)
256
+ X = _convert_to_supported(policy, X)
257
+ params = self._get_onedal_params(X)
258
+
259
+ if hasattr(self, "_onedal_model"):
260
+ model = self._onedal_model
261
+ else:
262
+ model = self._create_model(module)
263
+ result = module.infer(policy, params, model, to_table(X))
264
+ y = from_table(result.responses)
265
+ return y
266
+
267
+ def _ovr_decision_function(self, predictions, confidences, n_classes):
268
+ n_samples = predictions.shape[0]
269
+ votes = np.zeros((n_samples, n_classes))
270
+ sum_of_confidences = np.zeros((n_samples, n_classes))
271
+
272
+ k = 0
273
+ for i in range(n_classes):
274
+ for j in range(i + 1, n_classes):
275
+ sum_of_confidences[:, i] -= confidences[:, k]
276
+ sum_of_confidences[:, j] += confidences[:, k]
277
+ votes[predictions[:, k] == 0, i] += 1
278
+ votes[predictions[:, k] == 1, j] += 1
279
+ k += 1
280
+
281
+ transformed_confidences = sum_of_confidences / (
282
+ 3 * (np.abs(sum_of_confidences) + 1)
283
+ )
284
+ return votes + transformed_confidences
285
+
286
+ def _decision_function(self, X, module, queue):
287
+ _check_is_fitted(self)
288
+ X = _check_array(
289
+ X, dtype=[np.float64, np.float32], force_all_finite=False, accept_sparse="csr"
290
+ )
291
+ _check_n_features(self, X, False)
292
+
293
+ if self._sparse and not sp.isspmatrix(X):
294
+ X = sp.csr_matrix(X)
295
+ if self._sparse:
296
+ X.sort_indices()
297
+
298
+ if sp.issparse(X) and not self._sparse and not callable(self.kernel):
299
+ raise ValueError(
300
+ "cannot use sparse input in %r trained on dense data"
301
+ % type(self).__name__
302
+ )
303
+
304
+ if module in [_backend.svm.classification, _backend.svm.nu_classification]:
305
+ sv = self.support_vectors_
306
+ if not self._sparse and sv.size > 0 and self._n_support.sum() != sv.shape[0]:
307
+ raise ValueError(
308
+ "The internal representation "
309
+ f"of {self.__class__.__name__} was altered"
310
+ )
311
+
312
+ policy = _get_policy(queue, X)
313
+ X = _convert_to_supported(policy, X)
314
+ params = self._get_onedal_params(X)
315
+
316
+ if hasattr(self, "_onedal_model"):
317
+ model = self._onedal_model
318
+ else:
319
+ model = self._create_model(module)
320
+ result = module.infer(policy, params, model, to_table(X))
321
+ decision_function = from_table(result.decision_function)
322
+
323
+ if len(self.classes_) == 2:
324
+ decision_function = decision_function.ravel()
325
+
326
+ if self.decision_function_shape == "ovr" and len(self.classes_) > 2:
327
+ decision_function = self._ovr_decision_function(
328
+ decision_function < 0, -decision_function, len(self.classes_)
329
+ )
330
+ return decision_function
331
+
332
+
333
+ class SVR(RegressorMixin, BaseSVM):
334
+ """
335
+ Epsilon--Support Vector Regression.
336
+ """
337
+
338
+ def __init__(
339
+ self,
340
+ C=1.0,
341
+ epsilon=0.1,
342
+ kernel="rbf",
343
+ *,
344
+ degree=3,
345
+ gamma="scale",
346
+ coef0=0.0,
347
+ tol=1e-3,
348
+ shrinking=True,
349
+ cache_size=200.0,
350
+ max_iter=-1,
351
+ tau=1e-12,
352
+ algorithm="thunder",
353
+ **kwargs,
354
+ ):
355
+ super().__init__(
356
+ C=C,
357
+ nu=0.5,
358
+ epsilon=epsilon,
359
+ kernel=kernel,
360
+ degree=degree,
361
+ gamma=gamma,
362
+ coef0=coef0,
363
+ tol=tol,
364
+ shrinking=shrinking,
365
+ cache_size=cache_size,
366
+ max_iter=max_iter,
367
+ tau=tau,
368
+ class_weight=None,
369
+ decision_function_shape=None,
370
+ break_ties=False,
371
+ algorithm=algorithm,
372
+ )
373
+ self.svm_type = SVMtype.epsilon_svr
374
+
375
+ def fit(self, X, y, sample_weight=None, queue=None):
376
+ return super()._fit(X, y, sample_weight, _backend.svm.regression, queue)
377
+
378
+ def predict(self, X, queue=None):
379
+ y = super()._predict(X, _backend.svm.regression, queue)
380
+ return y.ravel()
381
+
382
+
383
+ class SVC(ClassifierMixin, BaseSVM):
384
+ """
385
+ C-Support Vector Classification.
386
+ """
387
+
388
+ def __init__(
389
+ self,
390
+ C=1.0,
391
+ kernel="rbf",
392
+ *,
393
+ degree=3,
394
+ gamma="scale",
395
+ coef0=0.0,
396
+ tol=1e-3,
397
+ shrinking=True,
398
+ cache_size=200.0,
399
+ max_iter=-1,
400
+ tau=1e-12,
401
+ class_weight=None,
402
+ decision_function_shape="ovr",
403
+ break_ties=False,
404
+ algorithm="thunder",
405
+ **kwargs,
406
+ ):
407
+ super().__init__(
408
+ C=C,
409
+ nu=0.5,
410
+ epsilon=0.0,
411
+ kernel=kernel,
412
+ degree=degree,
413
+ gamma=gamma,
414
+ coef0=coef0,
415
+ tol=tol,
416
+ shrinking=shrinking,
417
+ cache_size=cache_size,
418
+ max_iter=max_iter,
419
+ tau=tau,
420
+ class_weight=class_weight,
421
+ decision_function_shape=decision_function_shape,
422
+ break_ties=break_ties,
423
+ algorithm=algorithm,
424
+ )
425
+ self.svm_type = SVMtype.c_svc
426
+
427
+ def _validate_targets(self, y, dtype):
428
+ y, self.class_weight_, self.classes_ = _validate_targets(
429
+ y, self.class_weight, dtype
430
+ )
431
+ return y
432
+
433
+ def fit(self, X, y, sample_weight=None, queue=None):
434
+ return super()._fit(X, y, sample_weight, _backend.svm.classification, queue)
435
+
436
+ def predict(self, X, queue=None):
437
+ y = super()._predict(X, _backend.svm.classification, queue)
438
+ if len(self.classes_) == 2:
439
+ y = y.ravel()
440
+ return self.classes_.take(np.asarray(y, dtype=np.intp)).ravel()
441
+
442
+ def decision_function(self, X, queue=None):
443
+ return super()._decision_function(X, _backend.svm.classification, queue)
444
+
445
+
446
+ class NuSVR(RegressorMixin, BaseSVM):
447
+ """
448
+ Nu-Support Vector Regression.
449
+ """
450
+
451
+ def __init__(
452
+ self,
453
+ nu=0.5,
454
+ C=1.0,
455
+ kernel="rbf",
456
+ *,
457
+ degree=3,
458
+ gamma="scale",
459
+ coef0=0.0,
460
+ tol=1e-3,
461
+ shrinking=True,
462
+ cache_size=200.0,
463
+ max_iter=-1,
464
+ tau=1e-12,
465
+ algorithm="thunder",
466
+ **kwargs,
467
+ ):
468
+ super().__init__(
469
+ C=C,
470
+ nu=nu,
471
+ epsilon=0.0,
472
+ kernel=kernel,
473
+ degree=degree,
474
+ gamma=gamma,
475
+ coef0=coef0,
476
+ tol=tol,
477
+ shrinking=shrinking,
478
+ cache_size=cache_size,
479
+ max_iter=max_iter,
480
+ tau=tau,
481
+ class_weight=None,
482
+ decision_function_shape=None,
483
+ break_ties=False,
484
+ algorithm=algorithm,
485
+ )
486
+ self.svm_type = SVMtype.nu_svr
487
+
488
+ def fit(self, X, y, sample_weight=None, queue=None):
489
+ return super()._fit(X, y, sample_weight, _backend.svm.nu_regression, queue)
490
+
491
+ def predict(self, X, queue=None):
492
+ y = super()._predict(X, _backend.svm.nu_regression, queue)
493
+ return y.ravel()
494
+
495
+
496
+ class NuSVC(ClassifierMixin, BaseSVM):
497
+ """
498
+ Nu-Support Vector Classification.
499
+ """
500
+
501
+ def __init__(
502
+ self,
503
+ nu=0.5,
504
+ kernel="rbf",
505
+ *,
506
+ degree=3,
507
+ gamma="scale",
508
+ coef0=0.0,
509
+ tol=1e-3,
510
+ shrinking=True,
511
+ cache_size=200.0,
512
+ max_iter=-1,
513
+ tau=1e-12,
514
+ class_weight=None,
515
+ decision_function_shape="ovr",
516
+ break_ties=False,
517
+ algorithm="thunder",
518
+ **kwargs,
519
+ ):
520
+ super().__init__(
521
+ C=1.0,
522
+ nu=nu,
523
+ epsilon=0.0,
524
+ kernel=kernel,
525
+ degree=degree,
526
+ gamma=gamma,
527
+ coef0=coef0,
528
+ tol=tol,
529
+ shrinking=shrinking,
530
+ cache_size=cache_size,
531
+ max_iter=max_iter,
532
+ tau=tau,
533
+ class_weight=class_weight,
534
+ decision_function_shape=decision_function_shape,
535
+ break_ties=break_ties,
536
+ algorithm=algorithm,
537
+ )
538
+ self.svm_type = SVMtype.nu_svc
539
+
540
+ def _validate_targets(self, y, dtype):
541
+ y, self.class_weight_, self.classes_ = _validate_targets(
542
+ y, self.class_weight, dtype
543
+ )
544
+ return y
545
+
546
+ def fit(self, X, y, sample_weight=None, queue=None):
547
+ return super()._fit(X, y, sample_weight, _backend.svm.nu_classification, queue)
548
+
549
+ def predict(self, X, queue=None):
550
+ y = super()._predict(X, _backend.svm.nu_classification, queue)
551
+ if len(self.classes_) == 2:
552
+ y = y.ravel()
553
+ return self.classes_.take(np.asarray(y, dtype=np.intp)).ravel()
554
+
555
+ def decision_function(self, X, queue=None):
556
+ return super()._decision_function(X, _backend.svm.nu_classification, queue)