scikit-learn-intelex 2024.4.0__py312-none-win_amd64.whl → 2025.10.0__py312-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) 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.cp312-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.cp312-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-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
  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-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -28
  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-2024.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
  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-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
  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-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -2
  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-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
  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.cp312-win_amd64.pyd +0 -0
  65. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  66. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
  67. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
  68. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
  69. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
  70. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  71. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  72. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
  73. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
  74. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
  75. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  76. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  77. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  78. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
  79. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  80. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  81. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
  82. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
  83. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  84. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
  85. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
  86. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  87. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
  88. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
  89. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
  90. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
  91. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
  92. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
  93. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
  94. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  95. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
  96. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  97. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
  98. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
  99. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
  100. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  101. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
  102. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  103. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  104. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
  105. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
  106. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
  107. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
  108. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
  109. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
  110. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  111. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  112. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/neighbors/__init__.py +19 -19
  113. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
  114. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  115. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  116. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
  117. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
  118. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  119. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  120. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
  121. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
  122. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  123. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  124. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  125. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  126. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
  127. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
  128. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
  129. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
  130. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
  131. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
  132. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  133. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
  134. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__init__.py +7 -3
  135. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
  136. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
  137. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
  138. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
  139. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  140. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  141. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
  142. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +128 -78
  143. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
  144. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +101 -32
  145. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  146. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +38 -29
  147. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
  148. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
  149. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
  150. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/conftest.py +20 -1
  151. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
  152. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
  153. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  154. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
  155. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +199 -21
  156. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
  157. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -17
  158. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
  159. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
  160. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +288 -440
  161. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
  162. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
  163. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +17 -3
  164. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  165. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
  166. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
  167. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
  168. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
  169. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
  170. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
  171. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
  172. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
  173. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  174. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
  175. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  176. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +11 -0
  177. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
  178. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +3 -0
  179. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
  180. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +3 -0
  181. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +30 -62
  182. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +56 -9
  183. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +45 -101
  184. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +63 -94
  185. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +49 -25
  186. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +6 -4
  187. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  188. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
  189. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +54 -8
  190. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  191. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  192. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
  193. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  194. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
  195. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  196. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
  197. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
  198. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +9 -4
  199. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
  200. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
  201. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +3 -4
  202. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
  203. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
  204. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
  205. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
  206. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
  207. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
  208. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
  209. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
  210. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
  211. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
  212. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
  213. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
  214. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
  215. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
  216. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
  217. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
  218. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
  219. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +1 -3
  220. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
  221. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
  222. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +99 -117
  223. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +55 -16
  224. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +95 -113
  225. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +51 -16
  226. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +43 -20
  227. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
  228. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
  229. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
  230. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
  231. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +5 -4
  232. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
  233. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +122 -75
  234. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
  235. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
  236. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
  237. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  238. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
  239. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
  240. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
  241. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
  242. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
  243. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  244. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
  245. scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
  246. scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
  247. {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/WHEEL +1 -1
  248. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_config.py +0 -110
  249. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -250
  250. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_utils.py +0 -109
  251. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
  252. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
  253. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -130
  254. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -143
  255. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -335
  256. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -56
  257. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -113
  258. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -316
  259. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  260. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -385
  261. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -117
  262. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -91
  263. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
  264. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  265. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
  266. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -133
  267. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
  268. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
  269. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -185
  270. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -164
  271. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -39
  272. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -227
  273. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -99
  274. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
  275. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -20
  276. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py +0 -97
  277. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
  278. scikit_learn_intelex-2024.4.0.dist-info/METADATA +0 -230
  279. scikit_learn_intelex-2024.4.0.dist-info/RECORD +0 -101
  280. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
  281. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  282. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  283. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  284. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  285. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  286. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  287. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  288. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  289. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  290. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  291. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  292. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  293. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  294. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  295. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  296. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  297. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  298. {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/LICENSE.txt +0 -0
  299. {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,314 @@
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.basic_statistics.tests.utils import options_and_tests
22
+ from onedal.tests.utils._dataframes_support import (
23
+ _as_numpy,
24
+ _convert_to_dataframe,
25
+ get_dataframes_and_queues,
26
+ )
27
+ from sklearnex import config_context
28
+ from sklearnex.tests.utils.spmd import (
29
+ _generate_statistic_data,
30
+ _get_local_tensor,
31
+ _mpi_libs_and_gpu_available,
32
+ )
33
+
34
+
35
+ @pytest.mark.skipif(
36
+ not _mpi_libs_and_gpu_available,
37
+ reason="GPU device and MPI libs required for test",
38
+ )
39
+ @pytest.mark.parametrize(
40
+ "dataframe,queue",
41
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
42
+ )
43
+ @pytest.mark.parametrize("weighted", [True, False])
44
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
45
+ @pytest.mark.mpi
46
+ def test_incremental_basic_statistics_fit_spmd_gold(dataframe, queue, weighted, dtype):
47
+ # Import spmd and batch algo
48
+ from sklearnex.basic_statistics import IncrementalBasicStatistics
49
+ from sklearnex.spmd.basic_statistics import (
50
+ IncrementalBasicStatistics as IncrementalBasicStatistics_SPMD,
51
+ )
52
+
53
+ # Create gold data and process into dpt
54
+ data = np.array(
55
+ [
56
+ [0.0, 0.0, 0.0],
57
+ [0.0, 1.0, 2.0],
58
+ [0.0, 2.0, 4.0],
59
+ [0.0, 3.0, 8.0],
60
+ [0.0, 4.0, 16.0],
61
+ [0.0, 5.0, 32.0],
62
+ [0.0, 6.0, 64.0],
63
+ [0.0, 7.0, 128.0],
64
+ ],
65
+ dtype=dtype,
66
+ )
67
+ dpt_data = _convert_to_dataframe(data, sycl_queue=queue, target_df=dataframe)
68
+
69
+ local_dpt_data = _convert_to_dataframe(
70
+ _get_local_tensor(data), sycl_queue=queue, target_df=dataframe
71
+ )
72
+
73
+ if weighted:
74
+ # Create weights array containing the weight for each sample in the data
75
+ weights = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], dtype=dtype)
76
+ dpt_weights = _convert_to_dataframe(
77
+ weights, sycl_queue=queue, target_df=dataframe
78
+ )
79
+ local_dpt_weights = _convert_to_dataframe(
80
+ _get_local_tensor(weights), sycl_queue=queue, target_df=dataframe
81
+ )
82
+
83
+ # ensure results of batch algo match spmd
84
+
85
+ incbs_spmd = IncrementalBasicStatistics_SPMD().fit(
86
+ local_dpt_data, sample_weight=local_dpt_weights if weighted else None
87
+ )
88
+ incbs = IncrementalBasicStatistics().fit(
89
+ dpt_data, sample_weight=dpt_weights if weighted else None
90
+ )
91
+
92
+ for option in options_and_tests:
93
+ attr = option + "_"
94
+ assert_allclose(
95
+ getattr(incbs_spmd, attr),
96
+ getattr(incbs, attr),
97
+ err_msg=f"Result for {option} is incorrect",
98
+ )
99
+
100
+
101
+ @pytest.mark.skipif(
102
+ not _mpi_libs_and_gpu_available,
103
+ reason="GPU device and MPI libs required for test",
104
+ )
105
+ @pytest.mark.parametrize(
106
+ "dataframe,queue",
107
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
108
+ )
109
+ @pytest.mark.parametrize("num_blocks", [1, 2])
110
+ @pytest.mark.parametrize("weighted", [True, False])
111
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
112
+ @pytest.mark.mpi
113
+ def test_incremental_basic_statistics_partial_fit_spmd_gold(
114
+ dataframe, queue, num_blocks, weighted, dtype
115
+ ):
116
+ # Import spmd and batch algo
117
+ from sklearnex.basic_statistics import IncrementalBasicStatistics
118
+ from sklearnex.spmd.basic_statistics import (
119
+ IncrementalBasicStatistics as IncrementalBasicStatistics_SPMD,
120
+ )
121
+
122
+ # Create gold data and process into dpt
123
+ data = np.array(
124
+ [
125
+ [0.0, 0.0, 0.0],
126
+ [0.0, 1.0, 2.0],
127
+ [0.0, 2.0, 4.0],
128
+ [0.0, 3.0, 8.0],
129
+ [0.0, 4.0, 16.0],
130
+ [0.0, 5.0, 32.0],
131
+ [0.0, 6.0, 64.0],
132
+ [0.0, 7.0, 128.0],
133
+ ],
134
+ dtype=dtype,
135
+ )
136
+ dpt_data = _convert_to_dataframe(data, sycl_queue=queue, target_df=dataframe)
137
+ local_data = _get_local_tensor(data)
138
+ split_local_data = np.array_split(local_data, num_blocks)
139
+
140
+ if weighted:
141
+ # Create weights array containing the weight for each sample in the data
142
+ weights = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], dtype=dtype)
143
+ dpt_weights = _convert_to_dataframe(
144
+ weights, sycl_queue=queue, target_df=dataframe
145
+ )
146
+ local_weights = _get_local_tensor(weights)
147
+ split_local_weights = np.array_split(local_weights, num_blocks)
148
+
149
+ incbs_spmd = IncrementalBasicStatistics_SPMD()
150
+ incbs = IncrementalBasicStatistics()
151
+
152
+ for i in range(num_blocks):
153
+ local_dpt_data = _convert_to_dataframe(
154
+ split_local_data[i], sycl_queue=queue, target_df=dataframe
155
+ )
156
+ if weighted:
157
+ local_dpt_weights = _convert_to_dataframe(
158
+ split_local_weights[i], sycl_queue=queue, target_df=dataframe
159
+ )
160
+ incbs_spmd.partial_fit(
161
+ local_dpt_data, sample_weight=local_dpt_weights if weighted else None
162
+ )
163
+
164
+ incbs.fit(dpt_data, sample_weight=dpt_weights if weighted else None)
165
+
166
+ for option in options_and_tests:
167
+ attr = option + "_"
168
+ assert_allclose(
169
+ getattr(incbs_spmd, attr),
170
+ getattr(incbs, attr),
171
+ err_msg=f"Result for {option} is incorrect",
172
+ )
173
+
174
+
175
+ @pytest.mark.skipif(
176
+ not _mpi_libs_and_gpu_available,
177
+ reason="GPU device and MPI libs required for test",
178
+ )
179
+ @pytest.mark.parametrize(
180
+ "dataframe,queue",
181
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
182
+ )
183
+ @pytest.mark.parametrize("num_blocks", [1, 2])
184
+ @pytest.mark.parametrize("weighted", [True, False])
185
+ @pytest.mark.parametrize("option", options_and_tests.keys())
186
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
187
+ @pytest.mark.mpi
188
+ def test_incremental_basic_statistics_single_option_partial_fit_spmd_gold(
189
+ dataframe, queue, num_blocks, weighted, option, dtype
190
+ ):
191
+ # Import spmd and batch algo
192
+ from sklearnex.basic_statistics import IncrementalBasicStatistics
193
+ from sklearnex.spmd.basic_statistics import (
194
+ IncrementalBasicStatistics as IncrementalBasicStatistics_SPMD,
195
+ )
196
+
197
+ # Create gold data and process into dpt
198
+ data = np.array(
199
+ [
200
+ [0.0, 0.0, 0.0],
201
+ [0.0, 1.0, 2.0],
202
+ [0.0, 2.0, 4.0],
203
+ [0.0, 3.0, 8.0],
204
+ [0.0, 4.0, 16.0],
205
+ [0.0, 5.0, 32.0],
206
+ [0.0, 6.0, 64.0],
207
+ [0.0, 7.0, 128.0],
208
+ ],
209
+ dtype=dtype,
210
+ )
211
+ dpt_data = _convert_to_dataframe(data, sycl_queue=queue, target_df=dataframe)
212
+ local_data = _get_local_tensor(data)
213
+ split_local_data = np.array_split(local_data, num_blocks)
214
+
215
+ if weighted:
216
+ # Create weights array containing the weight for each sample in the data
217
+ weights = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], dtype=dtype)
218
+ dpt_weights = _convert_to_dataframe(
219
+ weights, sycl_queue=queue, target_df=dataframe
220
+ )
221
+ local_weights = _get_local_tensor(weights)
222
+ split_local_weights = np.array_split(local_weights, num_blocks)
223
+
224
+ incbs_spmd = IncrementalBasicStatistics_SPMD(result_options=option)
225
+ incbs = IncrementalBasicStatistics(result_options=option)
226
+
227
+ for i in range(num_blocks):
228
+ local_dpt_data = _convert_to_dataframe(
229
+ split_local_data[i], sycl_queue=queue, target_df=dataframe
230
+ )
231
+ if weighted:
232
+ local_dpt_weights = _convert_to_dataframe(
233
+ split_local_weights[i], sycl_queue=queue, target_df=dataframe
234
+ )
235
+ incbs_spmd.partial_fit(
236
+ local_dpt_data, sample_weight=local_dpt_weights if weighted else None
237
+ )
238
+
239
+ incbs.fit(dpt_data, sample_weight=dpt_weights if weighted else None)
240
+ attr = option + "_"
241
+ assert_allclose(getattr(incbs_spmd, attr), getattr(incbs, attr))
242
+
243
+
244
+ @pytest.mark.skipif(
245
+ not _mpi_libs_and_gpu_available,
246
+ reason="GPU device and MPI libs required for test",
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("num_blocks", [1, 2])
253
+ @pytest.mark.parametrize("weighted", [True, False])
254
+ @pytest.mark.parametrize("n_samples", [100, 10000])
255
+ @pytest.mark.parametrize("n_features", [10, 100])
256
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
257
+ @pytest.mark.parametrize("use_raw_input", [True, False])
258
+ @pytest.mark.mpi
259
+ def test_incremental_basic_statistics_partial_fit_spmd_synthetic(
260
+ dataframe, queue, num_blocks, weighted, n_samples, n_features, dtype, use_raw_input
261
+ ):
262
+ # Import spmd and batch algo
263
+ from sklearnex.basic_statistics import IncrementalBasicStatistics
264
+ from sklearnex.spmd.basic_statistics import (
265
+ IncrementalBasicStatistics as IncrementalBasicStatistics_SPMD,
266
+ )
267
+
268
+ tol = 2e-3 if dtype == np.float32 else 1e-7
269
+
270
+ # Create gold data and process into dpt
271
+ data = _generate_statistic_data(n_samples, n_features, dtype=dtype)
272
+ local_data = _get_local_tensor(data)
273
+ split_local_data = np.array_split(local_data, num_blocks)
274
+ split_data = np.array_split(data, num_blocks)
275
+
276
+ if weighted:
277
+ # Create weights array containing the weight for each sample in the data
278
+ weights = _generate_statistic_data(n_samples, dtype=dtype)
279
+ local_weights = _get_local_tensor(weights)
280
+ split_local_weights = np.array_split(local_weights, num_blocks)
281
+ split_weights = np.array_split(weights, num_blocks)
282
+
283
+ incbs_spmd = IncrementalBasicStatistics_SPMD()
284
+ incbs = IncrementalBasicStatistics()
285
+
286
+ for i in range(num_blocks):
287
+ local_dpt_data = _convert_to_dataframe(
288
+ split_local_data[i], sycl_queue=queue, target_df=dataframe
289
+ )
290
+ dpt_data = _convert_to_dataframe(
291
+ split_data[i], sycl_queue=queue, target_df=dataframe
292
+ )
293
+ if weighted:
294
+ local_dpt_weights = _convert_to_dataframe(
295
+ split_local_weights[i], sycl_queue=queue, target_df=dataframe
296
+ )
297
+ dpt_weights = _convert_to_dataframe(
298
+ split_weights[i], sycl_queue=queue, target_df=dataframe
299
+ )
300
+ # Configure raw input status for spmd estimator
301
+ with config_context(use_raw_input=use_raw_input):
302
+ incbs_spmd.partial_fit(
303
+ local_dpt_data, sample_weight=local_dpt_weights if weighted else None
304
+ )
305
+ incbs.partial_fit(dpt_data, sample_weight=dpt_weights if weighted else None)
306
+
307
+ for option in options_and_tests:
308
+ attr = option + "_"
309
+ assert_allclose(
310
+ _as_numpy(getattr(incbs_spmd, attr)),
311
+ _as_numpy(getattr(incbs, attr)),
312
+ atol=tol,
313
+ err_msg=f"Result for {option} is incorrect",
314
+ )
@@ -14,8 +14,13 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from onedal.spmd.basic_statistics import BasicStatistics
17
+ from abc import ABC
18
18
 
19
- # TODO:
20
- # Currently it uses `onedal` module interface.
21
- # Add sklearnex dispatching.
19
+ from onedal.spmd.cluster import DBSCAN as onedal_DBSCAN
20
+
21
+ from ...cluster import DBSCAN as DBSCAN_Batch
22
+
23
+
24
+ class DBSCAN(DBSCAN_Batch):
25
+ __doc__ = DBSCAN_Batch.__doc__
26
+ _onedal_dbscan = staticmethod(onedal_DBSCAN)
@@ -0,0 +1,108 @@
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
+
20
+ from onedal.tests.utils._dataframes_support import (
21
+ _convert_to_dataframe,
22
+ get_dataframes_and_queues,
23
+ )
24
+ from sklearnex import config_context
25
+ from sklearnex.tests.utils.spmd import (
26
+ _generate_clustering_data,
27
+ _get_local_tensor,
28
+ _mpi_libs_and_gpu_available,
29
+ _spmd_assert_allclose,
30
+ )
31
+
32
+
33
+ @pytest.mark.skipif(
34
+ not _mpi_libs_and_gpu_available,
35
+ reason="GPU device and MPI libs required for test",
36
+ )
37
+ @pytest.mark.parametrize(
38
+ "dataframe,queue",
39
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
40
+ )
41
+ @pytest.mark.mpi
42
+ def test_dbscan_spmd_gold(dataframe, queue):
43
+ # Import spmd and batch algo
44
+ from sklearnex.cluster import DBSCAN as DBSCAN_Batch
45
+ from sklearnex.spmd.cluster import DBSCAN as DBSCAN_SPMD
46
+
47
+ data = np.array([[1, 2], [2, 2], [2, 3], [8, 7], [8, 8], [25, 80]])
48
+
49
+ local_dpt_data = _convert_to_dataframe(
50
+ _get_local_tensor(data), sycl_queue=queue, target_df=dataframe
51
+ )
52
+
53
+ # Ensure labels from fit of batch algo matches spmd
54
+ spmd_model = DBSCAN_SPMD(eps=3, min_samples=2).fit(local_dpt_data)
55
+ batch_model = DBSCAN_Batch(eps=3, min_samples=2).fit(data)
56
+
57
+ _spmd_assert_allclose(spmd_model.labels_, batch_model.labels_)
58
+
59
+
60
+ @pytest.mark.skipif(
61
+ not _mpi_libs_and_gpu_available,
62
+ reason="GPU device and MPI libs required for test",
63
+ )
64
+ @pytest.mark.parametrize("n_samples", [200, 10000])
65
+ @pytest.mark.parametrize("n_features_and_eps", [(5, 3), (5, 10), (25, 10)])
66
+ @pytest.mark.parametrize("centers", [10, None])
67
+ @pytest.mark.parametrize("min_samples", [2, 5, 15])
68
+ @pytest.mark.parametrize(
69
+ "dataframe,queue",
70
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
71
+ )
72
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
73
+ @pytest.mark.parametrize("use_raw_input", [True, False])
74
+ @pytest.mark.mpi
75
+ def test_dbscan_spmd_synthetic(
76
+ n_samples,
77
+ n_features_and_eps,
78
+ centers,
79
+ min_samples,
80
+ dataframe,
81
+ queue,
82
+ dtype,
83
+ use_raw_input,
84
+ ):
85
+ n_features, eps = n_features_and_eps
86
+ # Import spmd and batch algo
87
+ from sklearnex.cluster import DBSCAN as DBSCAN_Batch
88
+ from sklearnex.spmd.cluster import DBSCAN as DBSCAN_SPMD
89
+
90
+ data, _ = _generate_clustering_data(
91
+ n_samples, n_features, centers=centers, dtype=dtype
92
+ )
93
+
94
+ local_dpt_data = _convert_to_dataframe(
95
+ _get_local_tensor(data), sycl_queue=queue, target_df=dataframe
96
+ )
97
+
98
+ # Ensure labels from fit of batch algo matches spmd
99
+ # Configure raw input status for spmd estimator
100
+ with config_context(use_raw_input=use_raw_input):
101
+ spmd_model = DBSCAN_SPMD(eps=eps, min_samples=min_samples).fit(local_dpt_data)
102
+ batch_model = DBSCAN_Batch(eps=eps, min_samples=min_samples).fit(data)
103
+
104
+ _spmd_assert_allclose(spmd_model.labels_, batch_model.labels_)
105
+
106
+ # Ensure meaningful test setup
107
+ if np.all(batch_model.labels_ == -1):
108
+ raise ValueError("No labels given - try raising epsilon")
@@ -0,0 +1,180 @@
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
+ _assert_kmeans_labels_allclose,
28
+ _assert_unordered_allclose,
29
+ _generate_clustering_data,
30
+ _get_local_tensor,
31
+ _mpi_libs_and_gpu_available,
32
+ )
33
+
34
+
35
+ @pytest.mark.skipif(
36
+ not _mpi_libs_and_gpu_available,
37
+ reason="GPU device and MPI libs required for test",
38
+ )
39
+ @pytest.mark.parametrize(
40
+ "dataframe,queue",
41
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
42
+ )
43
+ @pytest.mark.mpi
44
+ def test_kmeans_spmd_gold(dataframe, queue):
45
+ # Import spmd and batch algo
46
+ from sklearnex.cluster import KMeans as KMeans_Batch
47
+ from sklearnex.spmd.cluster import KMeans as KMeans_SPMD
48
+
49
+ X_train = np.array(
50
+ [
51
+ [1, 2],
52
+ [2, 2],
53
+ [2, 3],
54
+ [8, 7],
55
+ [8, 8],
56
+ [25, 80],
57
+ [5, 65],
58
+ [2, 8],
59
+ [1, 3],
60
+ [2, 2],
61
+ [1, 3],
62
+ [2, 2],
63
+ ],
64
+ dtype=np.float64,
65
+ )
66
+ X_test = np.array([[0, 0], [12, 3], [2, 2], [7, 8]], dtype=np.float64)
67
+
68
+ local_dpt_X_train = _convert_to_dataframe(
69
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
70
+ )
71
+ local_dpt_X_test = _convert_to_dataframe(
72
+ _get_local_tensor(X_test), sycl_queue=queue, target_df=dataframe
73
+ )
74
+
75
+ # Ensure labels from fit of batch algo matches spmd
76
+ spmd_model = KMeans_SPMD(n_clusters=2, random_state=0).fit(local_dpt_X_train)
77
+ batch_model = KMeans_Batch(n_clusters=2, random_state=0).fit(X_train)
78
+
79
+ _assert_unordered_allclose(spmd_model.cluster_centers_, batch_model.cluster_centers_)
80
+ _assert_kmeans_labels_allclose(
81
+ spmd_model.labels_,
82
+ batch_model.labels_,
83
+ spmd_model.cluster_centers_,
84
+ batch_model.cluster_centers_,
85
+ )
86
+ assert_allclose(spmd_model.n_iter_, batch_model.n_iter_, atol=1)
87
+
88
+ # Ensure predictions of batch algo match spmd
89
+ spmd_result = spmd_model.predict(local_dpt_X_test)
90
+ batch_result = batch_model.predict(X_test)
91
+
92
+ _assert_kmeans_labels_allclose(
93
+ spmd_result,
94
+ batch_result,
95
+ spmd_model.cluster_centers_,
96
+ batch_model.cluster_centers_,
97
+ )
98
+
99
+
100
+ @pytest.mark.skipif(
101
+ not _mpi_libs_and_gpu_available,
102
+ reason="GPU device and MPI libs required for test",
103
+ )
104
+ @pytest.mark.parametrize("n_samples", [200, 10000])
105
+ @pytest.mark.parametrize("n_features", [5, 25])
106
+ @pytest.mark.parametrize("n_clusters", [2, 5, 15])
107
+ @pytest.mark.parametrize(
108
+ "dataframe,queue",
109
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
110
+ )
111
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
112
+ @pytest.mark.parametrize("use_raw_input", [True, False])
113
+ @pytest.mark.mpi
114
+ def test_kmeans_spmd_synthetic(
115
+ n_samples, n_features, n_clusters, dataframe, queue, dtype, use_raw_input
116
+ ):
117
+ # Import spmd and batch algo
118
+ from sklearnex.cluster import KMeans as KMeans_Batch
119
+ from sklearnex.spmd.cluster import KMeans as KMeans_SPMD
120
+
121
+ # TODO: investigate issues when centers != n_clusters (spmd and batch results don't match for all values of K)
122
+ X_train, X_test = _generate_clustering_data(
123
+ n_samples, n_features, centers=n_clusters, dtype=dtype
124
+ )
125
+
126
+ local_dpt_X_train = _convert_to_dataframe(
127
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
128
+ )
129
+ local_dpt_X_test = _convert_to_dataframe(
130
+ _get_local_tensor(X_test), sycl_queue=queue, target_df=dataframe
131
+ )
132
+
133
+ # Validate KMeans init
134
+ spmd_model_init = KMeans_SPMD(n_clusters=n_clusters, max_iter=1, random_state=0).fit(
135
+ local_dpt_X_train
136
+ )
137
+ batch_model_init = KMeans_Batch(
138
+ n_clusters=n_clusters, max_iter=1, random_state=0
139
+ ).fit(X_train)
140
+ # TODO: centers do not match up after init
141
+ # _assert_unordered_allclose(spmd_model_init.cluster_centers_, batch_model_init.cluster_centers_)
142
+
143
+ # Ensure labels from fit of batch algo matches spmd, using same init
144
+ spmd_model = KMeans_SPMD(
145
+ n_clusters=n_clusters, init=spmd_model_init.cluster_centers_, random_state=0
146
+ )
147
+ # Configure raw input status for spmd estimator
148
+ with config_context(use_raw_input=use_raw_input):
149
+ spmd_model.fit(local_dpt_X_train)
150
+ batch_model = KMeans_Batch(
151
+ n_clusters=n_clusters, init=spmd_model_init.cluster_centers_, random_state=0
152
+ ).fit(X_train)
153
+
154
+ atol = 1e-5 if dtype == np.float32 else 1e-7
155
+ _assert_unordered_allclose(
156
+ spmd_model.cluster_centers_, batch_model.cluster_centers_, atol=atol
157
+ )
158
+ _assert_kmeans_labels_allclose(
159
+ spmd_model.labels_,
160
+ batch_model.labels_,
161
+ spmd_model.cluster_centers_,
162
+ batch_model.cluster_centers_,
163
+ atol=atol,
164
+ )
165
+ # TODO: KMeans iterations are not aligned
166
+ # assert_allclose(spmd_model.n_iter_, batch_model.n_iter_, atol=1)
167
+
168
+ # Ensure predictions of batch algo match spmd
169
+ # Configure raw input status for spmd estimator
170
+ with config_context(use_raw_input=use_raw_input):
171
+ spmd_result = spmd_model.predict(local_dpt_X_test)
172
+ batch_result = batch_model.predict(X_test)
173
+
174
+ _assert_kmeans_labels_allclose(
175
+ spmd_result,
176
+ batch_result,
177
+ spmd_model.cluster_centers_,
178
+ batch_model.cluster_centers_,
179
+ atol=atol,
180
+ )
@@ -14,8 +14,7 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from onedal.spmd.covariance import EmpiricalCovariance
17
+ from .covariance import EmpiricalCovariance
18
+ from .incremental_covariance import IncrementalEmpiricalCovariance
18
19
 
19
- # TODO:
20
- # Currently it uses `onedal` module interface.
21
- # Add sklearnex dispatching.
20
+ __all__ = ["EmpiricalCovariance", "IncrementalEmpiricalCovariance"]
@@ -0,0 +1,24 @@
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
+ from onedal.spmd.covariance import EmpiricalCovariance as onedal_EmpiricalCovariance
18
+
19
+ from ...preview.covariance import EmpiricalCovariance as EmpiricalCovariance_Batch
20
+
21
+
22
+ class EmpiricalCovariance(EmpiricalCovariance_Batch):
23
+ __doc__ = EmpiricalCovariance_Batch.__doc__
24
+ _onedal_covariance = staticmethod(onedal_EmpiricalCovariance)
@@ -0,0 +1,29 @@
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
+ from onedal.spmd.covariance import (
18
+ IncrementalEmpiricalCovariance as onedalSPMD_IncrementalEmpiricalCovariance,
19
+ )
20
+
21
+ from ...covariance import (
22
+ IncrementalEmpiricalCovariance as base_IncrementalEmpiricalCovariance,
23
+ )
24
+
25
+
26
+ class IncrementalEmpiricalCovariance(base_IncrementalEmpiricalCovariance):
27
+ _onedal_incremental_covariance = staticmethod(
28
+ onedalSPMD_IncrementalEmpiricalCovariance
29
+ )