scikit-learn-intelex 2025.10.0__py313-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.
Files changed (267) hide show
  1. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
  5. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
  6. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
  7. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
  8. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp313-win_amd64.pyd +0 -0
  9. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  10. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
  11. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  12. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  13. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  14. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
  15. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  16. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +19 -0
  17. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
  18. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
  19. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
  20. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  21. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
  22. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  23. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
  24. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
  25. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
  26. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
  27. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
  28. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  29. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  30. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
  31. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  32. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
  33. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
  34. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  35. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
  36. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
  37. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  38. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
  39. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  40. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  41. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  42. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  43. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  44. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  45. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
  46. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  47. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
  48. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
  49. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  50. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
  51. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
  52. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
  53. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  54. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  55. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  56. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
  57. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
  58. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
  59. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  60. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
  61. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
  62. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
  63. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
  64. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
  65. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
  66. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
  67. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
  68. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
  69. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
  70. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
  71. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  72. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  73. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
  74. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
  75. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
  76. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  77. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  78. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  79. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
  80. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  81. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  82. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
  83. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
  84. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  85. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
  86. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
  87. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  88. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
  89. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
  90. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
  91. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
  92. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
  93. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
  94. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
  95. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/__init__.py +20 -0
  96. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
  97. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  98. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
  99. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
  100. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
  101. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  102. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
  103. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  104. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  105. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
  106. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
  107. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
  108. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
  109. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
  110. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
  111. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  112. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  113. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  114. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
  115. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  116. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  117. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
  118. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
  119. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  120. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  121. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
  122. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
  123. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  124. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  125. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  126. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  127. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
  128. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
  129. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
  130. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
  131. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
  132. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
  133. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  134. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
  135. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__init__.py +69 -0
  136. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__main__.py +58 -0
  137. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
  138. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
  139. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
  140. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  141. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  142. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
  143. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +338 -0
  144. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
  145. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +455 -0
  146. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/__init__.py +20 -0
  147. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +199 -0
  148. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
  149. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +38 -0
  150. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
  151. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
  152. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
  153. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
  154. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
  155. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/__init__.py +19 -0
  156. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  157. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
  158. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dispatcher.py +572 -0
  159. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +629 -0
  160. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -0
  161. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
  162. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
  163. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +29 -0
  164. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1799 -0
  165. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
  166. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/__main__.py +72 -0
  167. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/dispatcher.py +101 -0
  168. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  169. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
  170. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
  171. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
  172. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
  173. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
  174. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
  175. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
  176. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
  177. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  178. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
  179. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  180. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/__init__.py +19 -0
  181. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +28 -0
  182. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
  183. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/__init__.py +23 -0
  184. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/pairwise.py +20 -0
  185. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/ranking.py +20 -0
  186. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +39 -0
  187. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/__init__.py +21 -0
  188. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/split.py +20 -0
  189. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +34 -0
  190. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/__init__.py +27 -0
  191. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +189 -0
  192. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/common.py +313 -0
  193. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +189 -0
  194. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +167 -0
  195. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +170 -0
  196. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +82 -0
  197. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/__init__.py +17 -0
  198. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +19 -0
  199. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
  200. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
  201. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  202. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  203. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
  204. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/__init__.py +25 -0
  205. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  206. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
  207. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  208. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
  209. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
  210. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +30 -0
  211. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
  212. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +21 -0
  213. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
  214. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
  215. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  216. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
  217. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
  218. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
  219. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
  220. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
  221. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
  222. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +23 -0
  223. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
  224. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
  225. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +19 -0
  226. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
  227. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
  228. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +21 -0
  229. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
  230. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +24 -0
  231. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
  232. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
  233. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
  234. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
  235. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
  236. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
  237. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/__init__.py +29 -0
  238. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
  239. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvc.py +278 -0
  240. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvr.py +158 -0
  241. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svc.py +306 -0
  242. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svr.py +155 -0
  243. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +124 -0
  244. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
  245. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
  246. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
  247. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
  248. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +269 -0
  249. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
  250. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +48 -0
  251. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +418 -0
  252. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
  253. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
  254. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
  255. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  256. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +19 -0
  257. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
  258. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
  259. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
  260. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
  261. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  262. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
  263. scikit_learn_intelex-2025.10.0.dist-info/LICENSE.txt +202 -0
  264. scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
  265. scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
  266. scikit_learn_intelex-2025.10.0.dist-info/WHEEL +5 -0
  267. scikit_learn_intelex-2025.10.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,210 @@
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
+ import numpy as np
18
+ import pytest
19
+ from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal
20
+ from sklearn import datasets
21
+ from sklearn.metrics.pairwise import rbf_kernel
22
+ from sklearn.svm import NuSVR as SklearnNuSVR
23
+
24
+ from onedal.svm import NuSVR
25
+ from onedal.tests.utils._device_selection import (
26
+ get_queues,
27
+ pass_if_not_implemented_for_gpu,
28
+ )
29
+
30
+ synth_params = {"n_samples": 500, "n_features": 100, "random_state": 42}
31
+
32
+
33
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
34
+ @pytest.mark.parametrize("queue", get_queues())
35
+ def test_diabetes_simple(queue):
36
+ diabetes = datasets.load_diabetes()
37
+ clf = NuSVR(kernel="linear", C=10.0)
38
+ clf.fit(diabetes.data, diabetes.target, queue=queue)
39
+ assert clf.score(diabetes.data, diabetes.target, queue=queue) > 0.02
40
+
41
+
42
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
43
+ @pytest.mark.parametrize("queue", get_queues())
44
+ def test_input_format_for_diabetes(queue):
45
+ diabetes = datasets.load_diabetes()
46
+
47
+ c_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="C")
48
+ assert c_contiguous_numpy.flags.c_contiguous
49
+ assert not c_contiguous_numpy.flags.f_contiguous
50
+ assert not c_contiguous_numpy.flags.fnc
51
+
52
+ clf = NuSVR(kernel="linear", C=10.0)
53
+ clf.fit(c_contiguous_numpy, diabetes.target, queue=queue)
54
+ dual_c_contiguous_numpy = clf.dual_coef_
55
+ res_c_contiguous_numpy = clf.predict(c_contiguous_numpy, queue=queue)
56
+
57
+ f_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="F")
58
+ assert not f_contiguous_numpy.flags.c_contiguous
59
+ assert f_contiguous_numpy.flags.f_contiguous
60
+ assert f_contiguous_numpy.flags.fnc
61
+
62
+ clf = NuSVR(kernel="linear", C=10.0)
63
+ clf.fit(f_contiguous_numpy, diabetes.target, queue=queue)
64
+ dual_f_contiguous_numpy = clf.dual_coef_
65
+ res_f_contiguous_numpy = clf.predict(f_contiguous_numpy, queue=queue)
66
+ assert_allclose(dual_c_contiguous_numpy, dual_f_contiguous_numpy)
67
+ assert_allclose(res_c_contiguous_numpy, res_f_contiguous_numpy)
68
+
69
+
70
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
71
+ @pytest.mark.parametrize("queue", get_queues())
72
+ def test_predict(queue):
73
+ iris = datasets.load_iris()
74
+ X = iris.data
75
+ y = iris.target
76
+
77
+ reg = NuSVR(kernel="linear", C=0.1).fit(X, y, queue=queue)
78
+
79
+ linear = np.dot(X, reg.support_vectors_.T)
80
+ dec = np.dot(linear, reg.dual_coef_.T) + reg.intercept_
81
+ assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
82
+
83
+ reg = NuSVR(kernel="rbf", gamma=1).fit(X, y, queue=queue)
84
+
85
+ rbfs = rbf_kernel(X, reg.support_vectors_, gamma=reg.gamma)
86
+ dec = np.dot(rbfs, reg.dual_coef_.T) + reg.intercept_
87
+ assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
88
+
89
+
90
+ def _test_diabetes_compare_with_sklearn(queue, kernel):
91
+ diabetes = datasets.load_diabetes()
92
+ clf_onedal = NuSVR(kernel=kernel, nu=0.25, C=10.0)
93
+ clf_onedal.fit(diabetes.data, diabetes.target, queue=queue)
94
+ result = clf_onedal.score(diabetes.data, diabetes.target, queue=queue)
95
+
96
+ clf_sklearn = SklearnNuSVR(kernel=kernel, nu=0.25, C=10.0)
97
+ clf_sklearn.fit(diabetes.data, diabetes.target)
98
+ expected = clf_sklearn.score(diabetes.data, diabetes.target)
99
+
100
+ assert result > expected - 1e-5
101
+ assert_allclose(clf_sklearn.intercept_, clf_onedal.intercept_, atol=1e-3)
102
+ assert_allclose(
103
+ clf_sklearn.support_vectors_.shape, clf_sklearn.support_vectors_.shape
104
+ )
105
+ assert_allclose(clf_sklearn.dual_coef_, clf_onedal.dual_coef_, atol=1e-2)
106
+
107
+
108
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
109
+ @pytest.mark.parametrize("queue", get_queues())
110
+ @pytest.mark.parametrize("kernel", ["linear", "rbf", "poly", "sigmoid"])
111
+ def test_diabetes_compare_with_sklearn(queue, kernel):
112
+ if kernel == "sigmoid":
113
+ pytest.skip("Sparse sigmoid kernel function is buggy.")
114
+ _test_diabetes_compare_with_sklearn(queue, kernel)
115
+
116
+
117
+ def _test_synth_rbf_compare_with_sklearn(queue, C, nu, gamma):
118
+ x, y = datasets.make_regression(**synth_params)
119
+
120
+ clf = NuSVR(kernel="rbf", gamma=gamma, C=C, nu=nu)
121
+ clf.fit(x, y, queue=queue)
122
+ result = clf.score(x, y, queue=queue)
123
+
124
+ clf = SklearnNuSVR(kernel="rbf", gamma=gamma, C=C, nu=nu)
125
+ clf.fit(x, y)
126
+ expected = clf.score(x, y)
127
+
128
+ assert result > 0.4
129
+ assert abs(result - expected) < 1e-3
130
+
131
+
132
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
133
+ @pytest.mark.parametrize("queue", get_queues())
134
+ @pytest.mark.parametrize("gamma", ["scale", "auto"])
135
+ @pytest.mark.parametrize("C", [100.0, 1000.0])
136
+ @pytest.mark.parametrize("nu", [0.25, 0.75])
137
+ def test_synth_rbf_compare_with_sklearn(queue, C, nu, gamma):
138
+ _test_synth_rbf_compare_with_sklearn(queue, C, nu, gamma)
139
+
140
+
141
+ def _test_synth_linear_compare_with_sklearn(queue, C, nu):
142
+ x, y = datasets.make_regression(**synth_params)
143
+
144
+ clf = NuSVR(kernel="linear", C=C, nu=nu)
145
+ clf.fit(x, y, queue=queue)
146
+ result = clf.score(x, y, queue=queue)
147
+
148
+ clf = SklearnNuSVR(kernel="linear", C=C, nu=nu)
149
+ clf.fit(x, y)
150
+ expected = clf.score(x, y)
151
+
152
+ # Linear kernel doesn't work well for synthetic regression
153
+ # resulting in low R2 score
154
+ # assert result > 0.5
155
+ assert abs(result - expected) < 1e-3
156
+
157
+
158
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
159
+ @pytest.mark.parametrize("queue", get_queues())
160
+ @pytest.mark.parametrize("C", [0.001, 0.1])
161
+ @pytest.mark.parametrize("nu", [0.25, 0.75])
162
+ def test_synth_linear_compare_with_sklearn(queue, C, nu):
163
+ _test_synth_linear_compare_with_sklearn(queue, C, nu)
164
+
165
+
166
+ def _test_synth_poly_compare_with_sklearn(queue, params):
167
+ x, y = datasets.make_regression(**synth_params)
168
+
169
+ clf = NuSVR(kernel="poly", **params)
170
+ clf.fit(x, y, queue=queue)
171
+ result = clf.score(x, y, queue=queue)
172
+
173
+ clf = SklearnNuSVR(kernel="poly", **params)
174
+ clf.fit(x, y)
175
+ expected = clf.score(x, y)
176
+
177
+ assert result > 0.5
178
+ assert abs(result - expected) < 1e-3
179
+
180
+
181
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
182
+ @pytest.mark.parametrize("queue", get_queues())
183
+ @pytest.mark.parametrize(
184
+ "params",
185
+ [
186
+ {"degree": 2, "coef0": 0.1, "gamma": "scale", "C": 100, "nu": 0.25},
187
+ {"degree": 3, "coef0": 0.0, "gamma": "scale", "C": 1000, "nu": 0.75},
188
+ ],
189
+ )
190
+ def test_synth_poly_compare_with_sklearn(queue, params):
191
+ _test_synth_poly_compare_with_sklearn(queue, params)
192
+
193
+
194
+ @pass_if_not_implemented_for_gpu(reason="not implemented for GPU")
195
+ @pytest.mark.parametrize("queue", get_queues())
196
+ def test_pickle(queue):
197
+ diabetes = datasets.load_diabetes()
198
+
199
+ clf = NuSVR(kernel="rbf", C=10.0)
200
+ clf.fit(diabetes.data, diabetes.target, queue=queue)
201
+ expected = clf.predict(diabetes.data, queue=queue)
202
+
203
+ import pickle
204
+
205
+ dump = pickle.dumps(clf)
206
+ clf2 = pickle.loads(dump)
207
+
208
+ assert type(clf2) == clf.__class__
209
+ result = clf2.predict(diabetes.data, queue=queue)
210
+ assert_array_equal(expected, result)
@@ -0,0 +1,168 @@
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
+ import numpy as np
18
+ import pytest
19
+ import sklearn.utils.estimator_checks
20
+ from numpy.testing import assert_array_almost_equal, assert_array_equal
21
+ from sklearn import datasets
22
+ from sklearn.datasets import make_blobs
23
+ from sklearn.metrics.pairwise import rbf_kernel
24
+ from sklearn.model_selection import train_test_split
25
+
26
+ from onedal.svm import SVC
27
+ from onedal.tests.utils._device_selection import (
28
+ get_queues,
29
+ pass_if_not_implemented_for_gpu,
30
+ )
31
+
32
+
33
+ def _test_libsvm_parameters(queue, array_constr, dtype):
34
+ X = array_constr([[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]], dtype=dtype)
35
+ y = array_constr([1, 1, 1, 2, 2, 2], dtype=dtype)
36
+
37
+ clf = SVC(kernel="linear").fit(X, y, queue=queue)
38
+ assert_array_equal(clf.dual_coef_, [[-0.25, 0.25]])
39
+ assert_array_equal(clf.support_, [1, 3])
40
+ assert_array_equal(clf.support_vectors_, (X[1], X[3]))
41
+ assert_array_equal(clf.intercept_, [0.0])
42
+ assert_array_equal(clf.predict(X), y)
43
+
44
+
45
+ @pytest.mark.parametrize("queue", get_queues())
46
+ @pytest.mark.parametrize("array_constr", [np.array])
47
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
48
+ def test_libsvm_parameters(queue, array_constr, dtype):
49
+ if queue and queue.sycl_device.is_gpu:
50
+ pytest.skip("Sporadic failures on GPU sycl_queue.")
51
+ _test_libsvm_parameters(queue, array_constr, dtype)
52
+
53
+
54
+ @pass_if_not_implemented_for_gpu(reason="class weights are not implemented")
55
+ @pytest.mark.parametrize(
56
+ "queue",
57
+ get_queues("cpu")
58
+ + [
59
+ pytest.param(
60
+ get_queues("gpu"),
61
+ marks=pytest.mark.xfail(
62
+ reason="class weights are not implemented but the error is not raised"
63
+ ),
64
+ )
65
+ ],
66
+ )
67
+ def test_class_weight(queue):
68
+ X = np.array([[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]])
69
+ y = np.array([1, 1, 1, 2, 2, 2])
70
+
71
+ clf = SVC(class_weight={1: 0.1})
72
+ clf.fit(X, y, queue=queue)
73
+ assert_array_almost_equal(clf.predict(X, queue=queue), [2] * 6)
74
+
75
+
76
+ @pytest.mark.parametrize("queue", get_queues())
77
+ def test_sample_weight(queue):
78
+ if queue and queue.sycl_device.is_gpu:
79
+ pytest.skip("Sporadic failures on GPU sycl_queue.")
80
+ X = np.array([[-2, 0], [-1, -1], [0, -2], [0, 2], [1, 1], [2, 2]])
81
+ y = np.array([1, 1, 1, 2, 2, 2])
82
+
83
+ clf = SVC(kernel="linear")
84
+ clf.fit(X, y, sample_weight=[1] * 6, queue=queue)
85
+ assert_array_almost_equal(clf.intercept_, [0.0])
86
+
87
+
88
+ @pytest.mark.parametrize("queue", get_queues())
89
+ def test_decision_function(queue):
90
+ X = np.array([[-2, -1], [-1, -1], [-1, -2], [1, 1], [1, 2], [2, 1]], dtype=np.float32)
91
+ Y = np.array([1, 1, 1, 2, 2, 2], dtype=np.float32)
92
+
93
+ clf = SVC(kernel="rbf", gamma=1, decision_function_shape="ovo")
94
+ clf.fit(X, Y, queue=queue)
95
+
96
+ rbfs = rbf_kernel(X, clf.support_vectors_, gamma=clf.gamma)
97
+ dec = np.dot(rbfs, clf.dual_coef_.T) + clf.intercept_
98
+ assert_array_almost_equal(dec.ravel(), clf.decision_function(X, queue=queue))
99
+
100
+
101
+ @pass_if_not_implemented_for_gpu(reason="not implemented")
102
+ @pytest.mark.parametrize("queue", get_queues())
103
+ def test_iris(queue):
104
+ iris = datasets.load_iris()
105
+ clf = SVC(kernel="linear").fit(iris.data, iris.target, queue=queue)
106
+ assert clf.score(iris.data, iris.target, queue=queue) > 0.9
107
+ assert_array_equal(clf.classes_, np.sort(clf.classes_))
108
+
109
+
110
+ @pass_if_not_implemented_for_gpu(reason="not implemented")
111
+ @pytest.mark.parametrize("queue", get_queues())
112
+ def test_decision_function_shape(queue):
113
+ X, y = make_blobs(n_samples=80, centers=5, random_state=0)
114
+ X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
115
+
116
+ # check shape of ovo_decition_function=True
117
+ clf = SVC(kernel="linear", decision_function_shape="ovo").fit(
118
+ X_train, y_train, queue=queue
119
+ )
120
+ dec = clf.decision_function(X_train, queue=queue)
121
+ assert dec.shape == (len(X_train), 10)
122
+
123
+ with pytest.raises(ValueError, match="must be either 'ovr' or 'ovo'"):
124
+ SVC(decision_function_shape="bad").fit(X_train, y_train, queue=queue)
125
+
126
+
127
+ @pass_if_not_implemented_for_gpu(reason="not implemented")
128
+ @pytest.mark.parametrize("queue", get_queues())
129
+ def test_pickle(queue):
130
+ iris = datasets.load_iris()
131
+ clf = SVC(kernel="linear").fit(iris.data, iris.target, queue=queue)
132
+ expected = clf.decision_function(iris.data, queue=queue)
133
+
134
+ import pickle
135
+
136
+ dump = pickle.dumps(clf)
137
+ clf2 = pickle.loads(dump)
138
+
139
+ assert type(clf2) == clf.__class__
140
+ result = clf2.decision_function(iris.data, queue=queue)
141
+ assert_array_equal(expected, result)
142
+
143
+
144
+ @pass_if_not_implemented_for_gpu(reason="not implemented")
145
+ @pytest.mark.parametrize(
146
+ "queue",
147
+ get_queues("cpu")
148
+ + [
149
+ pytest.param(
150
+ get_queues("gpu"),
151
+ marks=pytest.mark.xfail(
152
+ reason="raises Unimplemented error " "with inconsistent error message"
153
+ ),
154
+ )
155
+ ],
156
+ )
157
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
158
+ def test_svc_sigmoid(queue, dtype):
159
+ X_train = np.array(
160
+ [[-1, 2], [0, 0], [2, -1], [+1, +1], [+1, +2], [+2, +1]], dtype=dtype
161
+ )
162
+ X_test = np.array([[0, 2], [0.5, 0.5], [0.3, 0.1], [2, 0], [-1, -1]], dtype=dtype)
163
+ y_train = np.array([1, 1, 1, 2, 2, 2], dtype=dtype)
164
+ svc = SVC(kernel="sigmoid").fit(X_train, y_train, queue=queue)
165
+
166
+ assert_array_equal(svc.dual_coef_, [[-1, -1, -1, 1, 1, 1]])
167
+ assert_array_equal(svc.support_, [0, 1, 2, 3, 4, 5])
168
+ assert_array_equal(svc.predict(X_test, queue=queue), [2, 2, 1, 2, 1])
@@ -0,0 +1,243 @@
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
+ import numpy as np
18
+ import pytest
19
+ from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal
20
+ from sklearn import datasets
21
+ from sklearn.metrics.pairwise import rbf_kernel
22
+ from sklearn.svm import SVR as SklearnSVR
23
+
24
+ from onedal.svm import SVR
25
+ from onedal.tests.utils._device_selection import (
26
+ get_queues,
27
+ pass_if_not_implemented_for_gpu,
28
+ )
29
+
30
+ synth_params = {"n_samples": 500, "n_features": 100, "random_state": 42}
31
+
32
+
33
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
34
+ @pytest.mark.parametrize("queue", get_queues())
35
+ def test_run_to_run_fit(queue):
36
+ diabetes = datasets.load_diabetes()
37
+ clf_first = SVR(kernel="linear", C=10.0)
38
+ clf_first.fit(diabetes.data, diabetes.target, queue=queue)
39
+
40
+ for _ in range(10):
41
+ clf = SVR(kernel="linear", C=10.0)
42
+ clf.fit(diabetes.data, diabetes.target, queue=queue)
43
+ assert_allclose(clf_first.intercept_, clf.intercept_)
44
+ assert_allclose(clf_first.support_vectors_, clf.support_vectors_)
45
+ assert_allclose(clf_first.dual_coef_, clf.dual_coef_)
46
+
47
+
48
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
49
+ @pytest.mark.parametrize("queue", get_queues())
50
+ def test_diabetes_simple(queue):
51
+ diabetes = datasets.load_diabetes()
52
+ clf = SVR(kernel="linear", C=10.0)
53
+ clf.fit(diabetes.data, diabetes.target, queue=queue)
54
+ assert clf.score(diabetes.data, diabetes.target, queue=queue) > 0.02
55
+
56
+
57
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
58
+ @pytest.mark.parametrize("queue", get_queues())
59
+ def test_input_format_for_diabetes(queue):
60
+ diabetes = datasets.load_diabetes()
61
+
62
+ c_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="C")
63
+ assert c_contiguous_numpy.flags.c_contiguous
64
+ assert not c_contiguous_numpy.flags.f_contiguous
65
+ assert not c_contiguous_numpy.flags.fnc
66
+
67
+ clf = SVR(kernel="linear", C=10.0)
68
+ clf.fit(c_contiguous_numpy, diabetes.target, queue=queue)
69
+ dual_c_contiguous_numpy = clf.dual_coef_
70
+ res_c_contiguous_numpy = clf.predict(c_contiguous_numpy, queue=queue)
71
+
72
+ f_contiguous_numpy = np.asanyarray(diabetes.data, dtype="float", order="F")
73
+ assert not f_contiguous_numpy.flags.c_contiguous
74
+ assert f_contiguous_numpy.flags.f_contiguous
75
+ assert f_contiguous_numpy.flags.fnc
76
+
77
+ clf = SVR(kernel="linear", C=10.0)
78
+ clf.fit(f_contiguous_numpy, diabetes.target, queue=queue)
79
+ dual_f_contiguous_numpy = clf.dual_coef_
80
+ res_f_contiguous_numpy = clf.predict(f_contiguous_numpy, queue=queue)
81
+ assert_allclose(dual_c_contiguous_numpy, dual_f_contiguous_numpy)
82
+ assert_allclose(res_c_contiguous_numpy, res_f_contiguous_numpy)
83
+
84
+
85
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
86
+ @pytest.mark.parametrize("queue", get_queues())
87
+ def test_predict(queue):
88
+ iris = datasets.load_iris()
89
+ X = iris.data
90
+ y = iris.target
91
+
92
+ reg = SVR(kernel="linear", C=0.1).fit(X, y, queue=queue)
93
+
94
+ linear = np.dot(X, reg.support_vectors_.T)
95
+ dec = np.dot(linear, reg.dual_coef_.T) + reg.intercept_
96
+ assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
97
+
98
+ reg = SVR(kernel="rbf", gamma=1).fit(X, y, queue=queue)
99
+
100
+ rbfs = rbf_kernel(X, reg.support_vectors_, gamma=reg.gamma)
101
+ dec = np.dot(rbfs, reg.dual_coef_.T) + reg.intercept_
102
+ assert_array_almost_equal(dec.ravel(), reg.predict(X, queue=queue).ravel())
103
+
104
+
105
+ def _test_diabetes_compare_with_sklearn(queue, kernel):
106
+ diabetes = datasets.load_diabetes()
107
+ clf_onedal = SVR(kernel=kernel, C=10.0, gamma=2)
108
+ clf_onedal.fit(diabetes.data, diabetes.target, queue=queue)
109
+ result = clf_onedal.score(diabetes.data, diabetes.target, queue=queue)
110
+
111
+ clf_sklearn = SklearnSVR(kernel=kernel, C=10.0, gamma=2)
112
+ clf_sklearn.fit(diabetes.data, diabetes.target)
113
+ expected = clf_sklearn.score(diabetes.data, diabetes.target)
114
+
115
+ assert result > expected - 1e-5
116
+ assert_allclose(clf_sklearn.intercept_, clf_onedal.intercept_, atol=1e-3)
117
+ assert_allclose(
118
+ clf_sklearn.support_vectors_.shape, clf_sklearn.support_vectors_.shape
119
+ )
120
+ assert_allclose(clf_sklearn.dual_coef_, clf_onedal.dual_coef_, atol=1e-1)
121
+
122
+
123
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
124
+ @pytest.mark.parametrize("queue", get_queues())
125
+ @pytest.mark.parametrize("kernel", ["linear", "rbf", "poly", "sigmoid"])
126
+ def test_diabetes_compare_with_sklearn(queue, kernel):
127
+ if kernel == "sigmoid":
128
+ pytest.skip("Sparse sigmoid kernel function is buggy.")
129
+ _test_diabetes_compare_with_sklearn(queue, kernel)
130
+
131
+
132
+ def _test_synth_rbf_compare_with_sklearn(queue, C, gamma):
133
+ x, y = datasets.make_regression(**synth_params)
134
+ clf = SVR(kernel="rbf", gamma=gamma, C=C)
135
+ clf.fit(x, y, queue=queue)
136
+ result = clf.score(x, y, queue=queue)
137
+
138
+ clf = SklearnSVR(kernel="rbf", gamma=gamma, C=C)
139
+ clf.fit(x, y)
140
+ expected = clf.score(x, y)
141
+
142
+ assert result > 0.4
143
+ assert result > expected - 1e-5
144
+
145
+
146
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
147
+ @pytest.mark.parametrize("queue", get_queues())
148
+ @pytest.mark.parametrize("gamma", ["scale", "auto"])
149
+ @pytest.mark.parametrize("C", [100.0, 1000.0])
150
+ def test_synth_rbf_compare_with_sklearn(queue, C, gamma):
151
+ _test_synth_rbf_compare_with_sklearn(queue, C, gamma)
152
+
153
+
154
+ def _test_synth_linear_compare_with_sklearn(queue, C):
155
+ x, y = datasets.make_regression(**synth_params)
156
+ clf = SVR(kernel="linear", C=C)
157
+ clf.fit(x, y, queue=queue)
158
+ result = clf.score(x, y, queue=queue)
159
+
160
+ clf = SklearnSVR(kernel="linear", C=C)
161
+ clf.fit(x, y)
162
+ expected = clf.score(x, y)
163
+
164
+ # Linear kernel doesn't work well for synthetic regression
165
+ # resulting in low R2 score
166
+ # assert result > 0.5
167
+ assert result > expected - 1e-3
168
+
169
+
170
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
171
+ @pytest.mark.parametrize("queue", get_queues())
172
+ @pytest.mark.parametrize("C", [0.001, 0.1])
173
+ def test_synth_linear_compare_with_sklearn(queue, C):
174
+ _test_synth_linear_compare_with_sklearn(queue, C)
175
+
176
+
177
+ def _test_synth_poly_compare_with_sklearn(queue, params):
178
+ x, y = datasets.make_regression(**synth_params)
179
+ clf = SVR(kernel="poly", **params)
180
+ clf.fit(x, y, queue=queue)
181
+ result = clf.score(x, y, queue=queue)
182
+
183
+ clf = SklearnSVR(kernel="poly", **params)
184
+ clf.fit(x, y)
185
+ expected = clf.score(x, y)
186
+
187
+ assert result > 0.5
188
+ assert result > expected - 1e-5
189
+
190
+
191
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
192
+ @pytest.mark.parametrize("queue", get_queues())
193
+ @pytest.mark.parametrize(
194
+ "params",
195
+ [
196
+ {"degree": 2, "coef0": 0.1, "gamma": "scale", "C": 100},
197
+ {"degree": 3, "coef0": 0.0, "gamma": "scale", "C": 1000},
198
+ ],
199
+ )
200
+ def test_synth_poly_compare_with_sklearn(queue, params):
201
+ _test_synth_poly_compare_with_sklearn(queue, params)
202
+
203
+
204
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
205
+ @pytest.mark.parametrize("queue", get_queues())
206
+ def test_sided_sample_weight(queue):
207
+ clf = SVR(C=1e-2, kernel="linear")
208
+
209
+ X = [[-2, 0], [-1, -1], [0, -2], [0, 2], [1, 1], [2, 0]]
210
+ Y = [1, 1, 1, 2, 2, 2]
211
+
212
+ sample_weight = [10.0, 0.1, 0.1, 0.1, 0.1, 10]
213
+ clf.fit(X, Y, sample_weight=sample_weight, queue=queue)
214
+ y_pred = clf.predict([[-1.0, 1.0]], queue=queue)
215
+ assert y_pred < 1.5
216
+
217
+ sample_weight = [1.0, 0.1, 10.0, 10.0, 0.1, 0.1]
218
+ clf.fit(X, Y, sample_weight=sample_weight, queue=queue)
219
+ y_pred = clf.predict([[-1.0, 1.0]], queue=queue)
220
+ assert y_pred > 1.5
221
+
222
+ sample_weight = [1] * 6
223
+ clf.fit(X, Y, sample_weight=sample_weight, queue=queue)
224
+ y_pred = clf.predict([[-1.0, 1.0]], queue=queue)
225
+ assert y_pred == pytest.approx(1.5)
226
+
227
+
228
+ @pass_if_not_implemented_for_gpu(reason="Regression SVM is not implemented for GPU")
229
+ @pytest.mark.parametrize("queue", get_queues())
230
+ def test_pickle(queue):
231
+ diabetes = datasets.load_diabetes()
232
+ clf = SVR(kernel="rbf", C=10.0)
233
+ clf.fit(diabetes.data, diabetes.target, queue=queue)
234
+ expected = clf.predict(diabetes.data, queue=queue)
235
+
236
+ import pickle
237
+
238
+ dump = pickle.dumps(clf)
239
+ clf2 = pickle.loads(dump)
240
+
241
+ assert type(clf2) == clf.__class__
242
+ result = clf2.predict(diabetes.data, queue=queue)
243
+ assert_array_equal(expected, result)
@@ -0,0 +1,71 @@
1
+ # ==============================================================================
2
+ # Copyright 2024 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
+ import importlib
18
+ import os
19
+ from glob import glob
20
+
21
+ from onedal.tests.utils._dataframes_support import test_frameworks
22
+
23
+
24
+ def _check_primitive_usage_ban(primitive_name, package, allowed_locations=None):
25
+ """This test blocks the usage of the primitive in
26
+ in certain files.
27
+ """
28
+
29
+ loc = importlib.util.find_spec(package).origin
30
+
31
+ path = loc.replace("__init__.py", "")
32
+ files = [y for x in os.walk(path) for y in glob(os.path.join(x[0], "*.py"))]
33
+
34
+ output = []
35
+
36
+ for f in files:
37
+ if open(f, "r").read().find(primitive_name) != -1:
38
+ output += [f.replace(path, package + os.sep)]
39
+
40
+ # remove this file from the list
41
+ if allowed_locations:
42
+ for allowed in allowed_locations:
43
+ output = [i for i in output if allowed not in i]
44
+
45
+ return output
46
+
47
+
48
+ def test_sklearn_check_version_ban():
49
+ """This test blocks the use of sklearn_check_version
50
+ in onedal files. The versioning should occur in the
51
+ sklearnex package for clarity and maintainability.
52
+ """
53
+ output = _check_primitive_usage_ban(
54
+ primitive_name="sklearn_check_version", package="onedal"
55
+ )
56
+
57
+ # remove this file from the list
58
+ output = "\n".join([i for i in output if "test_common.py" not in i])
59
+ assert output == "", f"sklearn versioning is occurring in: \n{output}"
60
+
61
+
62
+ def test_frameworks_intentionality():
63
+ """Only silent skip frameworks which are not installed"""
64
+ fmwks = test_frameworks.replace("array_api", "array_api_strict").split(",")
65
+ for module in fmwks:
66
+ try:
67
+ importlib.import_module(module)
68
+ # If a module isn't installed, working as intended.
69
+ # If an ImportError occurs, then something is wrong.
70
+ except ModuleNotFoundError:
71
+ pass