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,433 @@
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 numpy as np
18
+ import pytest
19
+ from numpy.testing import assert_allclose
20
+
21
+ from onedal.tests.utils._dataframes_support import (
22
+ _convert_to_dataframe,
23
+ get_dataframes_and_queues,
24
+ )
25
+ from sklearnex import config_context
26
+ from sklearnex.tests.utils.spmd import (
27
+ _generate_classification_data,
28
+ _generate_regression_data,
29
+ _generate_statistic_data,
30
+ _get_local_tensor,
31
+ _mpi_libs_and_gpu_available,
32
+ _spmd_assert_allclose,
33
+ )
34
+
35
+
36
+ @pytest.mark.skipif(
37
+ not _mpi_libs_and_gpu_available,
38
+ reason="GPU device and MPI libs required for test",
39
+ )
40
+ @pytest.mark.parametrize(
41
+ "dataframe,queue",
42
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
43
+ )
44
+ @pytest.mark.mpi
45
+ def test_knncls_spmd_gold(dataframe, queue):
46
+ # Import spmd and batch algo
47
+ from sklearnex.neighbors import KNeighborsClassifier as KNeighborsClassifier_Batch
48
+ from sklearnex.spmd.neighbors import KNeighborsClassifier as KNeighborsClassifier_SPMD
49
+
50
+ # Create gold data and convert to dataframe
51
+ X_train = np.array(
52
+ [
53
+ [0.0, 0.0],
54
+ [0.0, 1.0],
55
+ [1.0, 0.0],
56
+ [0.0, 2.0],
57
+ [2.0, 0.0],
58
+ [0.9, 1.0],
59
+ [0.0, -1.0],
60
+ [-1.0, 0.0],
61
+ [-1.0, -1.0],
62
+ ]
63
+ )
64
+ # TODO: handle situations where not all classes are present on all ranks?
65
+ y_train = np.array([0, 1, 0, 1, 0, 1, 0, 1, 0])
66
+ X_test = np.array(
67
+ [
68
+ [1.0, -0.5],
69
+ [-5.0, 1.0],
70
+ [0.0, 1.0],
71
+ [10.0, -10.0],
72
+ ]
73
+ )
74
+
75
+ local_dpt_X_train = _convert_to_dataframe(
76
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
77
+ )
78
+ local_dpt_y_train = _convert_to_dataframe(
79
+ _get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
80
+ )
81
+ local_dpt_X_test = _convert_to_dataframe(
82
+ _get_local_tensor(X_test), sycl_queue=queue, target_df=dataframe
83
+ )
84
+
85
+ # Ensure predictions of batch algo match spmd
86
+ spmd_model = KNeighborsClassifier_SPMD(n_neighbors=1, algorithm="brute").fit(
87
+ local_dpt_X_train, local_dpt_y_train
88
+ )
89
+ batch_model = KNeighborsClassifier_Batch(n_neighbors=1, algorithm="brute").fit(
90
+ X_train, y_train
91
+ )
92
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_test)
93
+ batch_dists, batch_indcs = batch_model.kneighbors(X_test)
94
+ spmd_result = spmd_model.predict(local_dpt_X_test)
95
+ batch_result = batch_model.predict(X_test)
96
+
97
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
98
+ _spmd_assert_allclose(spmd_dists, batch_dists)
99
+ _spmd_assert_allclose(spmd_result, batch_result)
100
+
101
+
102
+ @pytest.mark.skipif(
103
+ not _mpi_libs_and_gpu_available,
104
+ reason="GPU device and MPI libs required for test",
105
+ )
106
+ @pytest.mark.parametrize("n_samples", [200, 10000])
107
+ @pytest.mark.parametrize("n_features_and_classes", [(5, 2), (25, 2), (25, 10)])
108
+ @pytest.mark.parametrize("n_neighbors", [1, 5, 20])
109
+ @pytest.mark.parametrize("weights", ["uniform", "distance"])
110
+ @pytest.mark.parametrize(
111
+ "dataframe,queue",
112
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
113
+ )
114
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
115
+ @pytest.mark.parametrize("use_raw_input", [True, False])
116
+ @pytest.mark.mpi
117
+ def test_knncls_spmd_synthetic(
118
+ n_samples,
119
+ n_features_and_classes,
120
+ n_neighbors,
121
+ weights,
122
+ dataframe,
123
+ queue,
124
+ dtype,
125
+ use_raw_input,
126
+ metric="euclidean",
127
+ ):
128
+ n_features, n_classes = n_features_and_classes
129
+ # Import spmd and batch algo
130
+ from sklearnex.neighbors import KNeighborsClassifier as KNeighborsClassifier_Batch
131
+ from sklearnex.spmd.neighbors import KNeighborsClassifier as KNeighborsClassifier_SPMD
132
+
133
+ # Generate data and convert to dataframe
134
+ X_train, X_test, y_train, _ = _generate_classification_data(
135
+ n_samples, n_features, n_classes, dtype=dtype
136
+ )
137
+
138
+ local_dpt_X_train = _convert_to_dataframe(
139
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
140
+ )
141
+ local_dpt_y_train = _convert_to_dataframe(
142
+ _get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
143
+ )
144
+ local_dpt_X_test = _convert_to_dataframe(
145
+ _get_local_tensor(X_test), sycl_queue=queue, target_df=dataframe
146
+ )
147
+
148
+ # Ensure predictions of batch algo match spmd
149
+ spmd_model = KNeighborsClassifier_SPMD(
150
+ n_neighbors=n_neighbors, weights=weights, metric=metric, algorithm="brute"
151
+ )
152
+ # Configure raw input status for spmd estimator
153
+ with config_context(use_raw_input=use_raw_input):
154
+ spmd_model.fit(local_dpt_X_train, local_dpt_y_train)
155
+ batch_model = KNeighborsClassifier_Batch(
156
+ n_neighbors=n_neighbors, weights=weights, metric=metric, algorithm="brute"
157
+ ).fit(X_train, y_train)
158
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_test)
159
+ batch_dists, batch_indcs = batch_model.kneighbors(X_test)
160
+ # Configure raw input status for spmd estimator
161
+ with config_context(use_raw_input=use_raw_input):
162
+ spmd_result = spmd_model.predict(local_dpt_X_test)
163
+ batch_result = batch_model.predict(X_test)
164
+
165
+ tol = 1e-4
166
+ if dtype == np.float64:
167
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
168
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
169
+ _spmd_assert_allclose(spmd_result, batch_result)
170
+
171
+
172
+ @pytest.mark.skipif(
173
+ not _mpi_libs_and_gpu_available,
174
+ reason="GPU device and MPI libs required for test",
175
+ )
176
+ @pytest.mark.parametrize(
177
+ "dataframe,queue",
178
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
179
+ )
180
+ @pytest.mark.mpi
181
+ def test_knnreg_spmd_gold(dataframe, queue):
182
+ # Import spmd and batch algo
183
+ from sklearnex.neighbors import KNeighborsRegressor as KNeighborsRegressor_Batch
184
+ from sklearnex.spmd.neighbors import KNeighborsRegressor as KNeighborsRegressor_SPMD
185
+
186
+ # Create gold data and convert to dataframe
187
+ X_train = np.array(
188
+ [
189
+ [0.0, 0.0],
190
+ [0.0, 1.0],
191
+ [1.0, 0.0],
192
+ [0.0, 2.0],
193
+ [2.0, 0.0],
194
+ [1.0, 1.0],
195
+ [0.0, -1.0],
196
+ [-1.0, 0.0],
197
+ [-1.0, -1.0],
198
+ ]
199
+ )
200
+ y_train = np.array([3.0, 5.0, 4.0, 7.0, 5.0, 6.0, 1.0, 2.0, 0.0])
201
+ X_test = np.array(
202
+ [
203
+ [1.0, -0.5],
204
+ [-5.0, 1.0],
205
+ [0.0, 1.0],
206
+ [10.0, -10.0],
207
+ ]
208
+ )
209
+
210
+ local_dpt_X_train = _convert_to_dataframe(
211
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
212
+ )
213
+ local_dpt_y_train = _convert_to_dataframe(
214
+ _get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
215
+ )
216
+ local_dpt_X_test = _convert_to_dataframe(
217
+ _get_local_tensor(X_test), sycl_queue=queue, target_df=dataframe
218
+ )
219
+
220
+ # Ensure predictions of batch algo match spmd
221
+ spmd_model = KNeighborsRegressor_SPMD(n_neighbors=1, algorithm="brute").fit(
222
+ local_dpt_X_train, local_dpt_y_train
223
+ )
224
+ batch_model = KNeighborsRegressor_Batch(n_neighbors=1, algorithm="brute").fit(
225
+ X_train, y_train
226
+ )
227
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_test)
228
+ batch_dists, batch_indcs = batch_model.kneighbors(X_test)
229
+ spmd_result = spmd_model.predict(local_dpt_X_test)
230
+ batch_result = batch_model.predict(X_test)
231
+
232
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
233
+ _spmd_assert_allclose(spmd_dists, batch_dists)
234
+ _spmd_assert_allclose(spmd_result, batch_result)
235
+
236
+
237
+ @pytest.mark.skipif(
238
+ not _mpi_libs_and_gpu_available,
239
+ reason="GPU device and MPI libs required for test",
240
+ )
241
+ @pytest.mark.parametrize("n_samples", [200, 10000])
242
+ @pytest.mark.parametrize("n_features", [5, 25])
243
+ @pytest.mark.parametrize("n_neighbors", [1, 5, 20])
244
+ @pytest.mark.parametrize("weights", ["uniform", "distance"])
245
+ @pytest.mark.parametrize(
246
+ "metric", ["euclidean", "manhattan", "minkowski", "chebyshev", "cosine"]
247
+ )
248
+ @pytest.mark.parametrize(
249
+ "dataframe,queue",
250
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
251
+ )
252
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
253
+ @pytest.mark.parametrize("use_raw_input", [True, False])
254
+ @pytest.mark.mpi
255
+ def test_knnreg_spmd_synthetic(
256
+ n_samples,
257
+ n_features,
258
+ n_neighbors,
259
+ weights,
260
+ metric,
261
+ dataframe,
262
+ queue,
263
+ dtype,
264
+ use_raw_input,
265
+ ):
266
+ # Import spmd and batch algo
267
+ from sklearnex.neighbors import KNeighborsRegressor as KNeighborsRegressor_Batch
268
+ from sklearnex.spmd.neighbors import KNeighborsRegressor as KNeighborsRegressor_SPMD
269
+
270
+ # Generate data and convert to dataframe
271
+ X_train, X_test, y_train, _ = _generate_regression_data(
272
+ n_samples, n_features, dtype=dtype
273
+ )
274
+
275
+ local_dpt_X_train = _convert_to_dataframe(
276
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
277
+ )
278
+ local_dpt_y_train = _convert_to_dataframe(
279
+ _get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
280
+ )
281
+ local_dpt_X_test = _convert_to_dataframe(
282
+ _get_local_tensor(X_test), sycl_queue=queue, target_df=dataframe
283
+ )
284
+
285
+ # Ensure predictions of batch algo match spmd
286
+ spmd_model = KNeighborsRegressor_SPMD(
287
+ n_neighbors=n_neighbors, weights=weights, metric=metric, algorithm="brute"
288
+ )
289
+ # Configure raw input status for spmd estimator
290
+ with config_context(use_raw_input=use_raw_input):
291
+ spmd_model.fit(local_dpt_X_train, local_dpt_y_train)
292
+ batch_model = KNeighborsRegressor_Batch(
293
+ n_neighbors=n_neighbors, weights=weights, metric=metric, algorithm="brute"
294
+ ).fit(X_train, y_train)
295
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_test)
296
+ batch_dists, batch_indcs = batch_model.kneighbors(X_test)
297
+ # Configure raw input status for spmd estimator
298
+ with config_context(use_raw_input=use_raw_input):
299
+ spmd_result = spmd_model.predict(local_dpt_X_test)
300
+ batch_result = batch_model.predict(X_test)
301
+
302
+ tol = 0.005 if dtype == np.float32 else 1e-4
303
+ if dtype == np.float64:
304
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
305
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
306
+ _spmd_assert_allclose(spmd_result, batch_result, rtol=tol, atol=tol)
307
+
308
+
309
+ @pytest.mark.skipif(
310
+ not _mpi_libs_and_gpu_available,
311
+ reason="GPU device and MPI libs required for test",
312
+ )
313
+ @pytest.mark.parametrize(
314
+ "dataframe,queue",
315
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
316
+ )
317
+ @pytest.mark.mpi
318
+ def test_knnsearch_spmd_gold(dataframe, queue):
319
+ # Import spmd and batch algo
320
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
321
+ from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
322
+
323
+ # Create gold data and convert to dataframe
324
+ X_train = np.array(
325
+ [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
326
+ )
327
+ local_dpt_X_train = _convert_to_dataframe(
328
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
329
+ )
330
+
331
+ # Ensure predictions of batch algo match spmd
332
+ spmd_model = NearestNeighbors_SPMD(n_neighbors=2, algorithm="brute").fit(
333
+ local_dpt_X_train
334
+ )
335
+ batch_model = NearestNeighbors_Batch(n_neighbors=2, algorithm="brute").fit(X_train)
336
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
337
+ batch_dists, batch_indcs = batch_model.kneighbors(X_train)
338
+
339
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
340
+ _spmd_assert_allclose(spmd_dists, batch_dists)
341
+
342
+
343
+ @pytest.mark.skipif(
344
+ not _mpi_libs_and_gpu_available,
345
+ reason="GPU device and MPI libs required for test",
346
+ )
347
+ @pytest.mark.parametrize(
348
+ "dimensions", [{"n": 100, "m": 10, "k": 2}, {"n": 100000, "m": 100, "k": 100}]
349
+ )
350
+ @pytest.mark.parametrize(
351
+ "dataframe,queue",
352
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
353
+ )
354
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
355
+ @pytest.mark.mpi
356
+ def test_knnsearch_spmd_synthetic(
357
+ dimensions,
358
+ dataframe,
359
+ queue,
360
+ dtype,
361
+ ):
362
+ if dimensions["n"] > 10000 and dtype == np.float32:
363
+ pytest.skip("Skipping large float32 test due to expected precision issues")
364
+
365
+ # Import spmd and batch algo
366
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
367
+ from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
368
+
369
+ # Generate data and convert to dataframe
370
+ X_train = _generate_statistic_data(dimensions["n"], dimensions["m"], dtype=dtype)
371
+
372
+ local_dpt_X_train = _convert_to_dataframe(
373
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
374
+ )
375
+
376
+ # Ensure search results of batch algo match spmd
377
+ spmd_model = NearestNeighbors_SPMD(
378
+ n_neighbors=dimensions["k"], algorithm="brute"
379
+ ).fit(local_dpt_X_train)
380
+ batch_model = NearestNeighbors_Batch(
381
+ n_neighbors=dimensions["k"], algorithm="brute"
382
+ ).fit(X_train)
383
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
384
+ batch_dists, batch_indcs = batch_model.kneighbors(X_train)
385
+
386
+ tol = 0.005 if dtype == np.float32 else 1e-6
387
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
388
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
389
+
390
+
391
+ @pytest.mark.skipif(
392
+ not _mpi_libs_and_gpu_available,
393
+ reason="GPU device and MPI libs required for test",
394
+ )
395
+ @pytest.mark.parametrize(
396
+ "dataframe,queue",
397
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
398
+ )
399
+ @pytest.mark.mpi
400
+ def test_knn_spmd_empty_kneighbors(dataframe, queue):
401
+ # Import spmd and batch algo
402
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
403
+ from sklearnex.spmd.neighbors import (
404
+ KNeighborsClassifier,
405
+ KNeighborsRegressor,
406
+ NearestNeighbors,
407
+ )
408
+
409
+ # Create gold data and convert to dataframe
410
+ X_train = np.array(
411
+ [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
412
+ )
413
+ y_train = np.array([0, 1, 0, 1, 0, 1, 0, 1])
414
+ local_dpt_X_train = _convert_to_dataframe(
415
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
416
+ )
417
+ local_dpt_y_train = _convert_to_dataframe(
418
+ _get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
419
+ )
420
+
421
+ # Run each estimator without an input to kneighbors() and ensure functionality and equivalence
422
+ for CurrentEstimator in [KNeighborsClassifier, KNeighborsRegressor, NearestNeighbors]:
423
+ spmd_model = CurrentEstimator(n_neighbors=1, algorithm="brute").fit(
424
+ local_dpt_X_train, local_dpt_y_train
425
+ )
426
+ batch_model = NearestNeighbors_Batch(n_neighbors=1, algorithm="brute").fit(
427
+ X_train, y_train
428
+ )
429
+ spmd_dists, spmd_indcs = spmd_model.kneighbors()
430
+ batch_dists, batch_indcs = batch_model.kneighbors()
431
+
432
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
433
+ _spmd_assert_allclose(spmd_dists, batch_dists)
@@ -0,0 +1,29 @@
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 .._utils import get_sklearnex_version
18
+
19
+ if get_sklearnex_version((2021, "P", 300)):
20
+ from .nusvc import NuSVC
21
+ from .nusvr import NuSVR
22
+ from .svc import SVC
23
+ from .svr import SVR
24
+
25
+ __all__ = ["SVR", "SVC", "NuSVC", "NuSVR"]
26
+ else:
27
+ from daal4py.sklearn.svm import SVC
28
+
29
+ __all__ = ["SVC"]