scikit-learn-intelex 2024.6.0__py312-none-win_amd64.whl → 2025.0.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.

Potentially problematic release.


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

Files changed (260) hide show
  1. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
  5. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
  6. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
  7. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  8. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  9. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +242 -0
  10. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +241 -0
  11. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  12. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  13. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
  14. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  15. {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
  16. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
  17. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
  18. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +318 -0
  19. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  20. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
  21. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  22. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
  23. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
  24. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
  25. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
  26. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
  27. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  28. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  29. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
  30. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  31. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +196 -0
  32. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  33. {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
  34. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
  35. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  36. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +155 -0
  37. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  38. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -2
  39. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  40. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  41. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  42. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  43. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
  44. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  45. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +87 -0
  46. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +118 -0
  47. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  48. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
  49. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
  50. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
  51. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  52. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  53. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  54. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
  55. {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
  56. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
  57. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  58. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
  59. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/__init__.py +83 -0
  60. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_config.py +53 -0
  61. {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal}/_device_offload.py +104 -132
  62. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  64. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
  65. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  66. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  67. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  68. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  69. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
  70. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +560 -0
  71. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
  72. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  73. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  74. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  75. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
  76. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  77. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  78. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
  79. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
  80. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +116 -0
  81. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +75 -0
  82. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  83. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
  84. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
  85. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  86. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
  87. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  88. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +95 -0
  89. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +235 -0
  90. {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  91. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
  92. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
  93. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
  94. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  95. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +720 -0
  96. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  97. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  98. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
  99. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
  100. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
  101. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
  102. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
  103. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +149 -0
  104. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  105. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  106. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  107. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +778 -0
  108. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  109. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  110. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
  111. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
  112. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  113. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  114. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
  115. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
  116. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  117. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  118. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  119. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  120. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/test_common.py +41 -0
  121. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +168 -0
  122. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +107 -0
  123. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
  124. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +91 -0
  125. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal/utils/validation.py +432 -0
  126. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/_config.py +3 -15
  127. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +121 -0
  128. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  129. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +140 -0
  130. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +5 -5
  131. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +251 -0
  132. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +1 -1
  133. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  134. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -1
  135. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +383 -0
  136. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +153 -0
  137. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +68 -17
  138. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +46 -0
  139. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +25 -1
  140. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +113 -9
  141. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +9 -36
  142. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +9 -12
  143. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +2 -0
  144. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +13 -0
  145. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +5 -6
  146. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +418 -0
  147. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +2 -34
  148. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +79 -59
  149. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +24 -0
  150. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +13 -10
  151. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  152. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +28 -3
  153. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +46 -3
  154. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +21 -0
  155. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +5 -0
  156. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
  157. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +5 -0
  158. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +11 -1
  159. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +45 -1
  160. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +1 -20
  161. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +1 -20
  162. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +31 -7
  163. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  164. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +8 -8
  165. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +2 -2
  166. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +19 -17
  167. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +419 -0
  168. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
  169. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  170. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  171. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
  172. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  173. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
  174. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
  175. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  176. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  177. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
  178. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  179. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
  180. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
  181. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  182. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
  183. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
  184. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
  185. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
  186. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  187. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
  188. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +166 -0
  189. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
  190. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +19 -21
  191. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +1 -1
  192. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +1 -1
  193. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +12 -20
  194. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/_utils.py +143 -20
  195. scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/tests/_utils_spmd.py +198 -0
  196. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +4 -0
  197. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +2 -1
  198. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +12 -4
  199. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +16 -14
  200. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +33 -20
  201. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +1 -2
  202. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +5 -20
  203. {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/METADATA +3 -2
  204. scikit_learn_intelex-2025.0.0.dist-info/RECORD +255 -0
  205. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
  206. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
  207. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  208. scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
  209. scikit_learn_intelex-2024.6.0.dist-info/RECORD +0 -108
  210. {scikit_learn_intelex-2024.6.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.0.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
  211. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  212. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  213. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
  214. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  215. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  216. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  217. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  218. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  219. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  220. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  221. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  222. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  223. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -0
  224. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  225. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  226. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  227. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  228. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  229. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  230. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  231. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  232. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  233. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
  234. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  235. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  236. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  237. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  238. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  239. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  240. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  241. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  242. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  243. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  244. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  245. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  246. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  247. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  248. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  249. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  250. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  251. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  252. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -0
  253. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  254. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  255. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  256. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -0
  257. {scikit_learn_intelex-2024.6.0.data → scikit_learn_intelex-2025.0.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  258. {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/LICENSE.txt +0 -0
  259. {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/WHEEL +0 -0
  260. {scikit_learn_intelex-2024.6.0.dist-info → scikit_learn_intelex-2025.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,198 @@
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
+ from numpy.testing import assert_allclose
19
+ from sklearn.datasets import make_blobs, make_classification, make_regression
20
+ from sklearn.model_selection import train_test_split
21
+
22
+ from onedal.tests.utils._dataframes_support import _as_numpy
23
+
24
+ try:
25
+ import dpctl
26
+ from dpctl import SyclQueue
27
+ from mpi4py import MPI
28
+
29
+ mpi_libs_available = True
30
+ gpu_is_available = dpctl.has_gpu_devices()
31
+ except (ImportError, ModuleNotFoundError):
32
+ mpi_libs_available = False
33
+
34
+ _mpi_libs_and_gpu_available = mpi_libs_available and gpu_is_available
35
+
36
+
37
+ def _get_local_tensor(full_data):
38
+ """Splits data across ranks.
39
+
40
+ Called on each rank to extract the subset of data assigned to that rank.
41
+
42
+ Args:
43
+ full_data (numpy or dpctl array): The entire set of data
44
+
45
+ Returns:
46
+ local_data (numpy or dpctl array): The subset of data used by the rank
47
+ """
48
+
49
+ # create sycl queue and gather communicator details
50
+ q = SyclQueue("gpu")
51
+ comm = MPI.COMM_WORLD
52
+ rank = comm.Get_rank()
53
+ size = comm.Get_size()
54
+
55
+ # divide data across ranks and move to dpt tensor
56
+ data_rows = full_data.shape[0]
57
+ local_start = rank * data_rows // size
58
+ local_end = (1 + rank) * data_rows // size
59
+ local_data = full_data[local_start:local_end]
60
+
61
+ return local_data
62
+
63
+
64
+ def _generate_regression_data(n_samples, n_features, dtype=np.float64, random_state=42):
65
+ # Generates regression data and divides between train and test
66
+ X, y = make_regression(
67
+ n_samples=n_samples, n_features=n_features, random_state=random_state
68
+ )
69
+ X = X.astype(dtype)
70
+ y = y.astype(dtype)
71
+ X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=random_state)
72
+ return X_train, X_test, y_train, y_test
73
+
74
+
75
+ def _generate_classification_data(
76
+ n_samples, n_features, n_classes=2, dtype=np.float64, random_state=42
77
+ ):
78
+ # Generates classification data and divides between train and test
79
+ X, y = make_classification(
80
+ n_samples=n_samples,
81
+ n_features=n_features,
82
+ n_classes=n_classes,
83
+ n_informative=int(0.5 * n_classes + 1),
84
+ random_state=random_state,
85
+ )
86
+ X = X.astype(dtype)
87
+ y = y.astype(dtype)
88
+ X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=random_state)
89
+ return X_train, X_test, y_train, y_test
90
+
91
+
92
+ def _generate_statistic_data(
93
+ n_samples, n_features=None, dtype=np.float64, random_state=42
94
+ ):
95
+ # Generates statistical data
96
+ gen = np.random.default_rng(random_state)
97
+ data = gen.uniform(
98
+ low=-0.3,
99
+ high=+0.7,
100
+ size=(n_samples, n_features) if n_features is not None else (n_samples,),
101
+ ).astype(dtype)
102
+ return data
103
+
104
+
105
+ def _generate_clustering_data(
106
+ n_samples, n_features, centers=None, dtype=np.float64, random_state=42
107
+ ):
108
+ # Generates clustering data and divides between train and test
109
+ X, _ = make_blobs(
110
+ n_samples=n_samples,
111
+ centers=centers,
112
+ n_features=n_features,
113
+ random_state=random_state,
114
+ )
115
+ X = X.astype(dtype)
116
+ X_train, X_test = train_test_split(X, random_state=random_state)
117
+ return X_train, X_test
118
+
119
+
120
+ def _spmd_assert_allclose(spmd_result, batch_result, **kwargs):
121
+ """Calls assert_allclose on spmd and batch results.
122
+
123
+ Called on each rank to compare the spmd result specific to that rank and
124
+ subset of batch result that corresponds to that rank.
125
+
126
+ Args:
127
+ spmd_result (numpy or dpctl array): The result for the subset of data on the rank the function is called from, computed by the spmd estimator
128
+ batch_result (numpy array): The result for all data, computed by the batch estimator
129
+
130
+ Raises:
131
+ AssertionError: If all results are not adequately close.
132
+ """
133
+
134
+ # extract chunk from batch result to match with local spmd result
135
+ local_batch_result = _get_local_tensor(batch_result)
136
+
137
+ assert_allclose(_as_numpy(spmd_result), _as_numpy(local_batch_result), **kwargs)
138
+
139
+
140
+ def _assert_unordered_allclose(spmd_result, batch_result, localize=False, **kwargs):
141
+ """Checks if rows in spmd and batch results are aligned, even if not in the same order.
142
+
143
+ Called to verify correct unordered results are present. Useful to check KMeans centers
144
+ or KNN neighbors, where order does not matter. Sorts inputs to handle unordering. Also
145
+ capable of handling localization.
146
+
147
+ Args:
148
+ spmd_result (numpy or dpctl array): Result computed by the spmd estimator
149
+ batch_result (numpy array): Result computed by batch estimator
150
+ localize (bool): Whether of not spmd result is specific to the rank, in which case batch result needs to be localized
151
+
152
+ Raises:
153
+ AssertionError: If results do not match.
154
+ """
155
+ np_spmd_result = _as_numpy(spmd_result)
156
+
157
+ sorted_spmd_result = np_spmd_result[
158
+ np.argsort(np.linalg.norm(np_spmd_result, axis=1))
159
+ ]
160
+ if localize:
161
+ local_batch_result = _get_local_tensor(batch_result)
162
+ sorted_batch_result = local_batch_result[
163
+ np.argsort(np.linalg.norm(local_batch_result, axis=1))
164
+ ]
165
+ else:
166
+ sorted_batch_result = batch_result[
167
+ np.argsort(np.linalg.norm(batch_result, axis=1))
168
+ ]
169
+
170
+ assert_allclose(sorted_spmd_result, sorted_batch_result, **kwargs)
171
+
172
+
173
+ def _assert_kmeans_labels_allclose(
174
+ spmd_labels, batch_labels, spmd_centers, batch_centers, **kwargs
175
+ ):
176
+ """Checks if labels for spmd and batch results are aligned, even cluster indices don't match.
177
+
178
+ Called to verify labels are assigned the same way on spmd and batch. Uses raw labels (which
179
+ may not match) to identify cluster center and ensure results match.
180
+
181
+ Args:
182
+ spmd_labels (numpy or dpctl array): The labels for the subset of data on the rank the function is called from, computed by the spmd estimator
183
+ batch_labels (numpy array): The labels for all data, computed by the batch estimator
184
+ spmd_centers (numpy or dpctl array): Centers computed by the spmd estimator
185
+ batch_centers (numpy array): Centers computed by batch estimator
186
+
187
+ Raises:
188
+ AssertionError: If clusters are not correctly assigned.
189
+ """
190
+
191
+ np_spmd_labels = _as_numpy(spmd_labels)
192
+ np_spmd_centers = _as_numpy(spmd_centers)
193
+ local_batch_labels = _get_local_tensor(batch_labels)
194
+ assert_allclose(
195
+ np_spmd_centers[np_spmd_labels],
196
+ batch_centers[local_batch_labels],
197
+ **kwargs,
198
+ )
@@ -16,6 +16,7 @@
16
16
 
17
17
  import sklearn
18
18
 
19
+ import onedal
19
20
  import sklearnex
20
21
 
21
22
 
@@ -33,7 +34,10 @@ def test_set_config_works():
33
34
  )
34
35
 
35
36
  config = sklearnex.get_config()
37
+ onedal_config = onedal._config._get_config()
36
38
  assert config["target_offload"] == "cpu:0"
37
39
  assert config["allow_fallback_to_host"]
38
40
  assert config["assume_finite"]
41
+ assert onedal_config["target_offload"] == "cpu:0"
42
+ assert onedal_config["allow_fallback_to_host"]
39
43
  sklearnex.set_config(**default_config)
@@ -38,7 +38,7 @@ from onedal.tests.utils._dataframes_support import (
38
38
  from onedal.tests.utils._device_selection import get_queues, is_dpctl_available
39
39
  from sklearnex import config_context
40
40
  from sklearnex.tests._utils import PATCHED_FUNCTIONS, PATCHED_MODELS, SPECIAL_INSTANCES
41
- from sklearnex.utils import get_namespace
41
+ from sklearnex.utils._array_api import get_namespace
42
42
 
43
43
  if _is_dpc_backend:
44
44
  from onedal import _backend
@@ -54,6 +54,7 @@ CPU_SKIP_LIST = (
54
54
  "IncrementalEmpiricalCovariance", # dataframe_f issues
55
55
  "IncrementalLinearRegression", # TODO fix memory leak issue in private CI for data_shape = (1000, 100), data_transform_function = dataframe_f
56
56
  "IncrementalPCA", # TODO fix memory leak issue in private CI for data_shape = (1000, 100), data_transform_function = dataframe_f
57
+ "IncrementalRidge", # TODO fix memory leak issue in private CI for data_shape = (1000, 100), data_transform_function = dataframe_f
57
58
  "LogisticRegression(solver='newton-cg')", # memory leak fortran (1000, 100)
58
59
  )
59
60
 
@@ -208,10 +208,11 @@ def test_preview_namespace():
208
208
  from sklearn.cluster import DBSCAN
209
209
  from sklearn.decomposition import PCA
210
210
  from sklearn.ensemble import RandomForestClassifier
211
- from sklearn.linear_model import LinearRegression
211
+ from sklearn.linear_model import LinearRegression, Ridge
212
212
  from sklearn.svm import SVC
213
213
 
214
214
  return (
215
+ Ridge(),
215
216
  LinearRegression(),
216
217
  PCA(),
217
218
  DBSCAN(),
@@ -226,9 +227,12 @@ def test_preview_namespace():
226
227
 
227
228
  assert _is_preview_enabled()
228
229
 
229
- lr, pca, dbscan, svc, rfc = get_estimators()
230
+ ridge, lr, pca, dbscan, svc, rfc = get_estimators()
230
231
  assert "sklearnex" in rfc.__module__
231
232
 
233
+ if daal_check_version((2024, "P", 600)):
234
+ assert "sklearnex.preview" in ridge.__module__
235
+
232
236
  if daal_check_version((2023, "P", 100)):
233
237
  assert "sklearnex" in lr.__module__
234
238
  else:
@@ -242,7 +246,8 @@ def test_preview_namespace():
242
246
  sklearnex.unpatch_sklearn()
243
247
 
244
248
  # no patching behavior
245
- lr, pca, dbscan, svc, rfc = get_estimators()
249
+ ridge, lr, pca, dbscan, svc, rfc = get_estimators()
250
+ assert "sklearn." in ridge.__module__ and "daal4py" not in ridge.__module__
246
251
  assert "sklearn." in lr.__module__ and "daal4py" not in lr.__module__
247
252
  assert "sklearn." in pca.__module__ and "daal4py" not in pca.__module__
248
253
  assert "sklearn." in dbscan.__module__ and "daal4py" not in dbscan.__module__
@@ -254,7 +259,10 @@ def test_preview_namespace():
254
259
  sklearnex.patch_sklearn()
255
260
  assert not _is_preview_enabled()
256
261
 
257
- lr, pca, dbscan, svc, rfc = get_estimators()
262
+ ridge, lr, pca, dbscan, svc, rfc = get_estimators()
263
+
264
+ assert "daal4py" in ridge.__module__
265
+
258
266
  if daal_check_version((2023, "P", 100)):
259
267
  assert "sklearnex" in lr.__module__
260
268
  else:
@@ -43,6 +43,7 @@ from sklearnex.tests._utils import (
43
43
  SPECIAL_INSTANCES,
44
44
  UNPATCHED_FUNCTIONS,
45
45
  UNPATCHED_MODELS,
46
+ call_method,
46
47
  gen_dataset,
47
48
  gen_models_info,
48
49
  )
@@ -132,13 +133,15 @@ def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator,
132
133
  elif dtype == np.float64 and not queue.sycl_device.has_aspect_fp64:
133
134
  pytest.skip("Hardware does not support fp64 SYCL testing")
134
135
  elif queue.sycl_device.is_gpu and estimator in [
135
- "KMeans",
136
136
  "ElasticNet",
137
137
  "Lasso",
138
138
  "Ridge",
139
139
  ]:
140
140
  pytest.skip(f"{estimator} does not support GPU queues")
141
141
 
142
+ if "NearestNeighbors" in estimator and "radius" in method:
143
+ pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
144
+
142
145
  if estimator == "TSNE" and method == "fit_transform":
143
146
  pytest.skip("TSNE.fit_transform is too slow for common testing")
144
147
  elif (
@@ -161,10 +164,8 @@ def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator,
161
164
  est.fit(X, y)
162
165
 
163
166
  if method:
164
- if method != "score":
165
- getattr(est, method)(X)
166
- else:
167
- est.score(X, y)
167
+ call_method(est, method, X, y)
168
+
168
169
  assert all(
169
170
  [
170
171
  "running accelerated version" in i.message
@@ -183,11 +184,15 @@ def test_special_estimator_patching(caplog, dataframe, queue, dtype, estimator,
183
184
  with caplog.at_level(logging.WARNING, logger="sklearnex"):
184
185
  est = SPECIAL_INSTANCES[estimator]
185
186
 
186
- # Its not possible to get the dpnp/dpctl arrays to be in the proper dtype
187
- if dtype == np.float16 and queue and not queue.sycl_device.has_aspect_fp16:
188
- pytest.skip("Hardware does not support fp16 SYCL testing")
189
- elif dtype == np.float64 and queue and not queue.sycl_device.has_aspect_fp64:
190
- pytest.skip("Hardware does not support fp64 SYCL testing")
187
+ if queue:
188
+ # Its not possible to get the dpnp/dpctl arrays to be in the proper dtype
189
+ if dtype == np.float16 and not queue.sycl_device.has_aspect_fp16:
190
+ pytest.skip("Hardware does not support fp16 SYCL testing")
191
+ elif dtype == np.float64 and not queue.sycl_device.has_aspect_fp64:
192
+ pytest.skip("Hardware does not support fp64 SYCL testing")
193
+
194
+ if "NearestNeighbors" in estimator and "radius" in method:
195
+ pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
191
196
 
192
197
  X, y = gen_dataset(est, queue=queue, target_df=dataframe, dtype=dtype)[0]
193
198
  est.fit(X, y)
@@ -196,10 +201,7 @@ def test_special_estimator_patching(caplog, dataframe, queue, dtype, estimator,
196
201
  pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
197
202
 
198
203
  if method:
199
- if method != "score":
200
- getattr(est, method)(X)
201
- else:
202
- est.score(X, y)
204
+ call_method(est, method, X, y)
203
205
 
204
206
  assert all(
205
207
  [
@@ -25,6 +25,7 @@ from _utils import (
25
25
  PATCHED_MODELS,
26
26
  SPECIAL_INSTANCES,
27
27
  _sklearn_clone_dict,
28
+ call_method,
28
29
  gen_dataset,
29
30
  gen_models_info,
30
31
  )
@@ -39,6 +40,7 @@ from sklearn.datasets import (
39
40
  )
40
41
 
41
42
  import daal4py as d4p
43
+ from daal4py.sklearn._utils import daal_check_version
42
44
  from onedal.tests.utils._dataframes_support import _as_numpy, get_dataframes_and_queues
43
45
  from sklearnex.cluster import DBSCAN, KMeans
44
46
  from sklearnex.decomposition import PCA
@@ -73,23 +75,23 @@ def eval_method(X, y, est, method):
73
75
  est.fit(X, y)
74
76
 
75
77
  if method:
76
- if method != "score":
77
- res = getattr(est, method)(X)
78
- else:
79
- res = est.score(X, y)
78
+ res = call_method(est, method, X, y)
80
79
 
81
80
  if not isinstance(res, Iterable):
82
- res = [res]
81
+ results = [_as_numpy(res)] if res is not est else []
82
+ else:
83
+ results = [_as_numpy(i) for i in res]
84
+
85
+ attributes = [method] * len(results)
83
86
 
84
87
  # if estimator follows sklearn design rules, then set attributes should have a
85
88
  # trailing underscore
86
- attributes = [
89
+ attributes += [
87
90
  i
88
91
  for i in dir(est)
89
92
  if hasattr(est, i) and not i.startswith("_") and i.endswith("_")
90
93
  ]
91
- results = [getattr(est, i) for i in attributes] + [_as_numpy(i) for i in res]
92
- attributes += [method for i in res]
94
+ results += [getattr(est, i) for i in attributes if i != method]
93
95
  return results, attributes
94
96
 
95
97
 
@@ -113,16 +115,16 @@ def _run_test(estimator, method, datasets):
113
115
  )
114
116
 
115
117
 
116
- SPARSE_INSTANCES = _sklearn_clone_dict(
117
- {
118
- str(i): i
119
- for i in [
120
- SVC(),
118
+ _sparse_instances = [SVC()]
119
+ if daal_check_version((2024, "P", 700)): # Test for > 2024.7.0
120
+ _sparse_instances.extend(
121
+ [
121
122
  KMeans(),
122
123
  KMeans(init="random"),
124
+ KMeans(init="k-means++"),
123
125
  ]
124
- }
125
- )
126
+ )
127
+ SPARSE_INSTANCES = _sklearn_clone_dict({str(i): i for i in _sparse_instances})
126
128
 
127
129
  STABILITY_INSTANCES = _sklearn_clone_dict(
128
130
  {
@@ -143,13 +145,18 @@ STABILITY_INSTANCES = _sklearn_clone_dict(
143
145
  )
144
146
 
145
147
 
146
- @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy"))
148
+ @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
147
149
  @pytest.mark.parametrize("estimator, method", gen_models_info(PATCHED_MODELS))
148
150
  def test_standard_estimator_stability(estimator, method, dataframe, queue):
149
151
  if estimator in ["LogisticRegression", "TSNE"]:
150
152
  pytest.skip(f"stability not guaranteed for {estimator}")
151
- if estimator in ["KMeans", "PCA"] and method == "score" and queue == None:
153
+ if estimator in ["KMeans", "PCA"] and "score" in method and queue == None:
152
154
  pytest.skip(f"variation observed in {estimator}.score")
155
+ if estimator in ["IncrementalEmpiricalCovariance"] and method == "mahalanobis":
156
+ pytest.skip("allowed fallback to sklearn occurs")
157
+
158
+ if "NearestNeighbors" in estimator and "radius" in method:
159
+ pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
153
160
 
154
161
  est = PATCHED_MODELS[estimator]()
155
162
 
@@ -166,13 +173,15 @@ def test_standard_estimator_stability(estimator, method, dataframe, queue):
166
173
 
167
174
 
168
175
  @pytest.mark.allow_sklearn_fallback
169
- @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy"))
176
+ @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
170
177
  @pytest.mark.parametrize("estimator, method", gen_models_info(SPECIAL_INSTANCES))
171
178
  def test_special_estimator_stability(estimator, method, dataframe, queue):
172
179
  if queue is None and estimator in ["LogisticRegression(solver='newton-cg')"]:
173
180
  pytest.skip(f"stability not guaranteed for {estimator}")
174
181
  if "KMeans" in estimator and method == "score" and queue == None:
175
182
  pytest.skip(f"variation observed in KMeans.score")
183
+ if "NearestNeighbors" in estimator and "radius" in method:
184
+ pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
176
185
 
177
186
  est = SPECIAL_INSTANCES[estimator]
178
187
 
@@ -188,12 +197,14 @@ def test_special_estimator_stability(estimator, method, dataframe, queue):
188
197
  _run_test(est, method, datasets)
189
198
 
190
199
 
191
- @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy"))
200
+ @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
192
201
  @pytest.mark.parametrize("estimator, method", gen_models_info(SPARSE_INSTANCES))
193
202
  def test_sparse_estimator_stability(estimator, method, dataframe, queue):
194
203
  if "KMeans" in estimator and method == "score" and queue == None:
195
204
  pytest.skip(f"variation observed in KMeans.score")
196
205
 
206
+ if "NearestNeighbors" in estimator and "radius" in method:
207
+ pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
197
208
  est = SPARSE_INSTANCES[estimator]
198
209
 
199
210
  if method and not hasattr(est, method):
@@ -210,11 +221,13 @@ def test_sparse_estimator_stability(estimator, method, dataframe, queue):
210
221
  _run_test(est, method, datasets)
211
222
 
212
223
 
213
- @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy"))
224
+ @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues("numpy,array_api"))
214
225
  @pytest.mark.parametrize("estimator, method", gen_models_info(STABILITY_INSTANCES))
215
226
  def test_other_estimator_stability(estimator, method, dataframe, queue):
216
227
  if "KMeans" in estimator and method == "score" and queue == None:
217
228
  pytest.skip(f"variation observed in KMeans.score")
229
+ if "NearestNeighbors" in estimator and "radius" in method:
230
+ pytest.skip(f"RadiusNeighbors estimator not implemented in sklearnex")
218
231
 
219
232
  est = STABILITY_INSTANCES[estimator]
220
233
 
@@ -14,7 +14,6 @@
14
14
  # limitations under the License.
15
15
  # ===============================================================================
16
16
 
17
- from ._namespace import get_namespace
18
17
  from .validation import _assert_all_finite
19
18
 
20
- __all__ = ["get_namespace", "_assert_all_finite"]
19
+ __all__ = ["_assert_all_finite"]
@@ -14,18 +14,16 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
+ """Tools to support array_api."""
18
+
17
19
  import numpy as np
18
20
 
19
21
  from daal4py.sklearn._utils import sklearn_check_version
20
-
21
- from .._device_offload import dpnp_available
22
+ from onedal.utils._array_api import _get_sycl_namespace
22
23
 
23
24
  if sklearn_check_version("1.2"):
24
25
  from sklearn.utils._array_api import get_namespace as sklearn_get_namespace
25
26
 
26
- if dpnp_available:
27
- import dpnp
28
-
29
27
 
30
28
  def get_namespace(*arrays):
31
29
  """Get namespace of arrays.
@@ -74,23 +72,10 @@ def get_namespace(*arrays):
74
72
  True of the arrays are containers that implement the Array API spec.
75
73
  """
76
74
 
77
- # sycl support designed to work regardless of array_api_dispatch sklearn global value
78
- sycl_type = {type(x): x for x in arrays if hasattr(x, "__sycl_usm_array_interface__")}
79
-
80
- if len(sycl_type) > 1:
81
- raise ValueError(f"Multiple SYCL types for array inputs: {sycl_type}")
75
+ sycl_type, xp, is_array_api_compliant = _get_sycl_namespace(*arrays)
82
76
 
83
77
  if sycl_type:
84
-
85
- (X,) = sycl_type.values()
86
-
87
- if hasattr(X, "__array_namespace__"):
88
- return X.__array_namespace__(), True
89
- elif dpnp_available and isinstance(X, dpnp.ndarray):
90
- return dpnp, False
91
- else:
92
- raise ValueError(f"SYCL type not recognized: {sycl_type}")
93
-
78
+ return xp, is_array_api_compliant
94
79
  elif sklearn_check_version("1.2"):
95
80
  return sklearn_get_namespace(*arrays)
96
81
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scikit-learn-intelex
3
- Version: 2024.6.0
3
+ Version: 2025.0.0
4
4
  Summary: Intel(R) Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application.
5
5
  Home-page: https://github.com/intel/scikit-learn-intelex
6
6
  Author: Intel Corporation
@@ -31,7 +31,8 @@ Classifier: Topic :: Software Development
31
31
  Requires-Python: >=3.7
32
32
  Description-Content-Type: text/markdown
33
33
  License-File: LICENSE.txt
34
- Requires-Dist: daal4py ==2024.6.0
34
+ Requires-Dist: daal ==2025.0.0
35
+ Requires-Dist: numpy >=1.19
35
36
  Requires-Dist: scikit-learn >=0.22
36
37
 
37
38