scikit-learn-intelex 2025.10.0__py313-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
  5. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
  6. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
  7. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
  8. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp313-win_amd64.pyd +0 -0
  9. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  10. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
  11. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  12. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  13. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  14. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
  15. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  16. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +19 -0
  17. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
  18. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
  19. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
  20. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  21. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
  22. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  23. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
  24. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
  25. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
  26. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
  27. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
  28. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  29. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  30. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
  31. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  32. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
  33. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
  34. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  35. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
  36. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
  37. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  38. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
  39. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  40. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  41. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  42. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  43. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  44. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  45. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
  46. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  47. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
  48. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
  49. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  50. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
  51. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
  52. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
  53. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  54. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  55. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  56. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
  57. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +21 -0
  58. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
  59. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  60. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
  61. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
  62. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
  63. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
  64. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
  65. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
  66. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/__init__.py +20 -0
  67. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
  68. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
  69. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
  70. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
  71. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  72. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  73. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
  74. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
  75. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
  76. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  77. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  78. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  79. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
  80. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  81. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  82. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
  83. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
  84. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  85. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
  86. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
  87. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  88. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
  89. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
  90. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
  91. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
  92. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
  93. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
  94. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
  95. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/__init__.py +20 -0
  96. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
  97. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  98. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
  99. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
  100. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
  101. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  102. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
  103. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  104. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  105. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
  106. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
  107. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
  108. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
  109. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
  110. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
  111. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  112. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  113. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  114. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
  115. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  116. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  117. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
  118. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
  119. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  120. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  121. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
  122. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
  123. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  124. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  125. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  126. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  127. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
  128. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
  129. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
  130. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
  131. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
  132. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
  133. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  134. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
  135. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__init__.py +69 -0
  136. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/__main__.py +58 -0
  137. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
  138. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
  139. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
  140. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  141. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  142. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
  143. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +338 -0
  144. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
  145. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +455 -0
  146. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/__init__.py +20 -0
  147. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +199 -0
  148. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
  149. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +38 -0
  150. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
  151. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/conftest.py +82 -0
  152. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/__init__.py +19 -0
  153. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
  154. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
  155. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/__init__.py +19 -0
  156. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  157. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
  158. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dispatcher.py +572 -0
  159. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +629 -0
  160. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -0
  161. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
  162. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
  163. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +29 -0
  164. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1799 -0
  165. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
  166. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/__main__.py +72 -0
  167. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/glob/dispatcher.py +101 -0
  168. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  169. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
  170. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
  171. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
  172. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
  173. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
  174. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
  175. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
  176. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
  177. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  178. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
  179. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  180. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/__init__.py +19 -0
  181. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/t_sne.py +28 -0
  182. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
  183. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/__init__.py +23 -0
  184. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/pairwise.py +20 -0
  185. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/ranking.py +20 -0
  186. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +39 -0
  187. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/__init__.py +21 -0
  188. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/split.py +20 -0
  189. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +34 -0
  190. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/__init__.py +27 -0
  191. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/_lof.py +189 -0
  192. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/common.py +313 -0
  193. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +189 -0
  194. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +167 -0
  195. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +170 -0
  196. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +82 -0
  197. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/__init__.py +17 -0
  198. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +19 -0
  199. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
  200. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
  201. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  202. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  203. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
  204. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/__init__.py +25 -0
  205. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  206. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
  207. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  208. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
  209. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
  210. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +30 -0
  211. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
  212. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +21 -0
  213. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
  214. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
  215. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  216. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
  217. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
  218. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
  219. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
  220. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
  221. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
  222. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +23 -0
  223. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
  224. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
  225. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +19 -0
  226. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
  227. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
  228. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +21 -0
  229. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
  230. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +24 -0
  231. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +21 -0
  232. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
  233. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
  234. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
  235. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
  236. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
  237. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/__init__.py +29 -0
  238. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
  239. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvc.py +278 -0
  240. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/nusvr.py +158 -0
  241. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svc.py +306 -0
  242. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/svr.py +155 -0
  243. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +124 -0
  244. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
  245. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
  246. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
  247. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
  248. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +269 -0
  249. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
  250. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +48 -0
  251. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +418 -0
  252. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
  253. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
  254. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
  255. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  256. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +19 -0
  257. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
  258. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
  259. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
  260. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
  261. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  262. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
  263. scikit_learn_intelex-2025.10.0.dist-info/LICENSE.txt +202 -0
  264. scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
  265. scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
  266. scikit_learn_intelex-2025.10.0.dist-info/WHEEL +5 -0
  267. scikit_learn_intelex-2025.10.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,121 @@
1
+ # ===============================================================================
2
+ # Copyright 2023 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
+ from abc import ABCMeta
17
+
18
+ import numpy as np
19
+
20
+ from daal4py.sklearn._utils import daal_check_version
21
+ from onedal._device_offload import supports_queue
22
+ from onedal.common._backend import bind_default_backend
23
+
24
+ from .._config import _get_config
25
+ from ..common.hyperparameters import get_hyperparameters
26
+ from ..datatypes import from_table, to_table
27
+ from ..utils._array_api import _get_sycl_namespace
28
+ from ..utils.validation import _check_array
29
+
30
+
31
+ class BaseEmpiricalCovariance(metaclass=ABCMeta):
32
+ def __init__(self, method="dense", bias=False, assume_centered=False):
33
+ self.method = method
34
+ self.bias = bias
35
+ self.assume_centered = assume_centered
36
+
37
+ @bind_default_backend("covariance")
38
+ def compute(self, *args, **kwargs): ...
39
+
40
+ def _get_onedal_params(self, dtype=np.float32):
41
+ params = {
42
+ "fptype": dtype,
43
+ "method": self.method,
44
+ }
45
+ if daal_check_version((2024, "P", 1)):
46
+ params["bias"] = self.bias
47
+ if daal_check_version((2024, "P", 400)):
48
+ params["assumeCentered"] = self.assume_centered
49
+
50
+ return params
51
+
52
+
53
+ class EmpiricalCovariance(BaseEmpiricalCovariance):
54
+ """Covariance estimator.
55
+
56
+ Computes sample covariance matrix.
57
+
58
+ Parameters
59
+ ----------
60
+ method : str, default="dense"
61
+ Specifies computation method. Available methods: "dense".
62
+
63
+ bias : bool, default=False
64
+ If True biased estimation of covariance is computed which equals to
65
+ the unbiased one multiplied by (n_samples - 1) / n_samples.
66
+
67
+ assume_centered : bool, default=False
68
+ If True, data are not centered before computation.
69
+ Useful when working with data whose mean is almost, but not exactly
70
+ zero.
71
+ If False (default), data are centered before computation.
72
+
73
+ Attributes
74
+ ----------
75
+ location_ : ndarray of shape (n_features,)
76
+ Estimated location, i.e., the estimated mean.
77
+
78
+ covariance_ : ndarray of shape (n_features, n_features)
79
+ Estimated covariance matrix
80
+ """
81
+
82
+ @supports_queue
83
+ def fit(self, X, y=None, queue=None):
84
+ """Fit the sample covariance matrix of X.
85
+
86
+ Parameters
87
+ ----------
88
+ X : array-like of shape (n_samples, n_features)
89
+ Training data, where `n_samples` is the number of samples, and
90
+ `n_features` is the number of features.
91
+
92
+ y : Ignored
93
+ Not used, present for API consistency by convention.
94
+
95
+ queue : dpctl.SyclQueue
96
+ If not None, use this queue for computations.
97
+
98
+ Returns
99
+ -------
100
+ self : object
101
+ Returns the instance itself.
102
+ """
103
+
104
+ X_table = to_table(X, queue=queue)
105
+
106
+ params = self._get_onedal_params(X_table.dtype)
107
+ hparams = get_hyperparameters("covariance", "compute")
108
+ if hparams is not None and not hparams.is_default:
109
+ result = self.compute(params, hparams.backend, X_table)
110
+ else:
111
+ result = self.compute(params, X_table)
112
+ if daal_check_version((2024, "P", 1)) or (not self.bias):
113
+ self.covariance_ = from_table(result.cov_matrix, like=X)
114
+ else:
115
+ self.covariance_ = (
116
+ from_table(result.cov_matrix, like=X) * (X.shape[0] - 1) / X.shape[0]
117
+ )
118
+
119
+ self.location_ = from_table(result.means, like=X)[0, ...]
120
+
121
+ return self
@@ -0,0 +1,151 @@
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
+
19
+ from daal4py.sklearn._utils import daal_check_version
20
+
21
+ from .._config import _get_config
22
+ from .._device_offload import supports_queue
23
+ from ..common._backend import bind_default_backend
24
+ from ..datatypes import from_table, return_type_constructor, to_table
25
+ from ..utils import _sycl_queue_manager as QM
26
+ from ..utils._array_api import _get_sycl_namespace
27
+ from ..utils.validation import _check_array
28
+ from .covariance import BaseEmpiricalCovariance
29
+
30
+
31
+ class IncrementalEmpiricalCovariance(BaseEmpiricalCovariance):
32
+ """Covariance estimator based on oneDAL implementation.
33
+
34
+ Computes sample covariance matrix.
35
+
36
+ Parameters
37
+ ----------
38
+ method : str, default="dense"
39
+ Specifies computation method. Available methods: "dense".
40
+
41
+ bias : bool, default=False
42
+ If True biased estimation of covariance is computed which equals to
43
+ the unbiased one multiplied by (n_samples - 1) / n_samples.
44
+
45
+ assume_centered : bool, default=False
46
+ If True, data are not centered before computation.
47
+ Useful when working with data whose mean is almost, but not exactly
48
+ zero.
49
+ If False (default), data are centered before computation.
50
+
51
+ Attributes
52
+ ----------
53
+ location_ : ndarray of shape (n_features,)
54
+ Estimated location, i.e., the estimated mean.
55
+
56
+ covariance_ : ndarray of shape (n_features, n_features)
57
+ Estimated covariance matrix
58
+ """
59
+
60
+ def __init__(self, method="dense", bias=False, assume_centered=False):
61
+ super().__init__(method, bias, assume_centered)
62
+ self._reset()
63
+ self._queue = None
64
+
65
+ @bind_default_backend("covariance")
66
+ def partial_compute(self, params, partial_result, X_table): ...
67
+
68
+ @bind_default_backend("covariance")
69
+ def partial_compute_result(self): ...
70
+
71
+ @bind_default_backend("covariance")
72
+ def finalize_compute(self, params, partial_result): ...
73
+
74
+ def _reset(self):
75
+ self._need_to_finalize = False
76
+ self._queue = None
77
+ self._outtype = None
78
+ self._partial_result = self.partial_compute_result()
79
+
80
+ def __getstate__(self):
81
+ # Since finalize_fit can't be dispatched without directly provided queue
82
+ # and the dispatching policy can't be serialized, the computation is finalized
83
+ # here and the policy is not saved in serialized data.
84
+
85
+ self.finalize_fit()
86
+ data = self.__dict__.copy()
87
+ data.pop("_queue", None)
88
+
89
+ return data
90
+
91
+ @supports_queue
92
+ def partial_fit(self, X, y=None, queue=None):
93
+ """Generate partial covariance from batch data in `_partial_result`.
94
+
95
+ Parameters
96
+ ----------
97
+ X : array-like of shape (n_samples, n_features)
98
+ Training data batch, where `n_samples` is the number of samples
99
+ in the batch, and `n_features` is the number of features.
100
+
101
+ y : Ignored
102
+ Not used, present for API consistency by convention.
103
+
104
+ queue : SyclQueue or None, default=None
105
+ If not None, use this queue for computation.
106
+
107
+ Returns
108
+ -------
109
+ self : object
110
+ Returns the instance itself.
111
+ """
112
+
113
+ self._queue = queue
114
+ if not self._outtype:
115
+ self._outtype = return_type_constructor(X)
116
+ X_table = to_table(X, queue=queue)
117
+
118
+ if not hasattr(self, "_dtype"):
119
+ self._dtype = X_table.dtype
120
+
121
+ params = self._get_onedal_params(self._dtype)
122
+ self._partial_result = self.partial_compute(params, self._partial_result, X_table)
123
+ self._need_to_finalize = True
124
+
125
+ def finalize_fit(self):
126
+ """Finalize covariance matrix from the current `_partial_result`.
127
+
128
+ Results are stored in `location_` and `covariance_` attributes.
129
+
130
+ Returns
131
+ -------
132
+ self : object
133
+ Returns the instance itself.
134
+ """
135
+ if self._need_to_finalize:
136
+ params = self._get_onedal_params(self._dtype)
137
+ with QM.manage_global_queue(self._queue):
138
+ result = self.finalize_compute(params, self._partial_result)
139
+
140
+ self.covariance_ = from_table(result.cov_matrix, like=self._outtype)
141
+
142
+ if self.bias and not daal_check_version((2024, "P", 1)):
143
+ n_rows = self._partial_result.partial_n_rows
144
+ self.covariance_ *= (n_rows - 1) / n_rows
145
+
146
+ self.location_ = from_table(result.means, like=self._outtype)[0, ...]
147
+ self._outtype = None
148
+
149
+ self._need_to_finalize = False
150
+
151
+ return self
@@ -0,0 +1,50 @@
1
+ # ===============================================================================
2
+ # Copyright 2023 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._device_selection import get_queues
22
+
23
+
24
+ @pytest.mark.parametrize("queue", get_queues())
25
+ def test_onedal_import_covariance(queue):
26
+ from onedal.covariance import EmpiricalCovariance
27
+
28
+ X = np.array([[0, 1], [0, 1]], dtype=np.float64)
29
+ result = EmpiricalCovariance().fit(X, queue=queue)
30
+ expected_covariance = np.array([[0, 0], [0, 0]])
31
+ expected_means = np.array([0, 1])
32
+
33
+ assert_allclose(expected_covariance, result.covariance_)
34
+ assert_allclose(expected_means, result.location_)
35
+
36
+ X = np.array([[1, 2], [3, 6]], dtype=np.float64)
37
+ result = EmpiricalCovariance().fit(X, queue=queue)
38
+ expected_covariance = np.array([[2, 4], [4, 8]])
39
+ expected_means = np.array([2, 4])
40
+
41
+ assert_allclose(expected_covariance, result.covariance_)
42
+ assert_allclose(expected_means, result.location_)
43
+
44
+ X = np.array([[1, 2], [3, 6]], dtype=np.float64)
45
+ result = EmpiricalCovariance(bias=True).fit(X, queue=queue)
46
+ expected_covariance = np.array([[1, 2], [2, 4]])
47
+ expected_means = np.array([2, 4])
48
+
49
+ assert_allclose(expected_covariance, result.covariance_)
50
+ assert_allclose(expected_means, result.location_)
@@ -0,0 +1,190 @@
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.datatypes import from_table
22
+ from onedal.tests.utils._device_selection import get_queues
23
+
24
+
25
+ @pytest.mark.parametrize("queue", get_queues())
26
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
27
+ def test_on_gold_data_unbiased(queue, dtype):
28
+ from onedal.covariance import IncrementalEmpiricalCovariance
29
+
30
+ X = np.array([[0, 1], [0, 1]])
31
+ X = X.astype(dtype)
32
+ X_split = np.array_split(X, 2)
33
+ inccov = IncrementalEmpiricalCovariance()
34
+
35
+ for i in range(2):
36
+ inccov.partial_fit(X_split[i], queue=queue)
37
+ result = inccov.finalize_fit()
38
+
39
+ expected_covariance = np.array([[0, 0], [0, 0]])
40
+ expected_means = np.array([0, 1])
41
+
42
+ assert_allclose(expected_covariance, result.covariance_)
43
+ assert_allclose(expected_means, result.location_)
44
+
45
+ X = np.array([[1, 2], [3, 6]])
46
+ X = X.astype(dtype)
47
+ X_split = np.array_split(X, 2)
48
+ inccov = IncrementalEmpiricalCovariance()
49
+
50
+ for i in range(2):
51
+ inccov.partial_fit(X_split[i], queue=queue)
52
+ result = inccov.finalize_fit()
53
+
54
+ expected_covariance = np.array([[2, 4], [4, 8]])
55
+ expected_means = np.array([2, 4])
56
+
57
+ assert_allclose(expected_covariance, result.covariance_)
58
+ assert_allclose(expected_means, result.location_)
59
+
60
+
61
+ @pytest.mark.parametrize("queue", get_queues())
62
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
63
+ def test_on_gold_data_biased(queue, dtype):
64
+ from onedal.covariance import IncrementalEmpiricalCovariance
65
+
66
+ X = np.array([[0, 1], [0, 1]])
67
+ X = X.astype(dtype)
68
+ X_split = np.array_split(X, 2)
69
+ inccov = IncrementalEmpiricalCovariance(bias=True)
70
+
71
+ for i in range(2):
72
+ inccov.partial_fit(X_split[i], queue=queue)
73
+ result = inccov.finalize_fit()
74
+
75
+ expected_covariance = np.array([[0, 0], [0, 0]])
76
+ expected_means = np.array([0, 1])
77
+
78
+ assert_allclose(expected_covariance, result.covariance_)
79
+ assert_allclose(expected_means, result.location_)
80
+
81
+ X = np.array([[1, 2], [3, 6]])
82
+ X = X.astype(dtype)
83
+ X_split = np.array_split(X, 2)
84
+ inccov = IncrementalEmpiricalCovariance(bias=True)
85
+
86
+ for i in range(2):
87
+ inccov.partial_fit(X_split[i], queue=queue)
88
+ result = inccov.finalize_fit()
89
+
90
+ expected_covariance = np.array([[1, 2], [2, 4]])
91
+ expected_means = np.array([2, 4])
92
+
93
+ assert_allclose(expected_covariance, result.covariance_)
94
+ assert_allclose(expected_means, result.location_)
95
+
96
+
97
+ @pytest.mark.parametrize("queue", get_queues())
98
+ @pytest.mark.parametrize("num_batches", [2, 4, 6, 8, 10])
99
+ @pytest.mark.parametrize("row_count", [100, 1000, 2000])
100
+ @pytest.mark.parametrize("column_count", [10, 100, 200])
101
+ @pytest.mark.parametrize("bias", [True, False])
102
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
103
+ def test_partial_fit_on_random_data(
104
+ queue, num_batches, row_count, column_count, bias, dtype
105
+ ):
106
+ from onedal.covariance import IncrementalEmpiricalCovariance
107
+
108
+ seed = 77
109
+ gen = np.random.default_rng(seed)
110
+ X = gen.uniform(low=-0.3, high=+0.7, size=(row_count, column_count))
111
+ X = X.astype(dtype)
112
+ X_split = np.array_split(X, num_batches)
113
+ inccov = IncrementalEmpiricalCovariance(bias=bias)
114
+
115
+ for i in range(num_batches):
116
+ inccov.partial_fit(X_split[i], queue=queue)
117
+ result = inccov.finalize_fit()
118
+
119
+ expected_covariance = np.cov(X.T, bias=bias)
120
+ expected_means = np.mean(X, axis=0)
121
+
122
+ assert_allclose(expected_covariance, result.covariance_, atol=1e-6)
123
+ assert_allclose(expected_means, result.location_, atol=1e-6)
124
+
125
+
126
+ @pytest.mark.parametrize("queue", get_queues())
127
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
128
+ def test_incremental_estimator_pickle(queue, dtype):
129
+ import pickle
130
+
131
+ from onedal.covariance import IncrementalEmpiricalCovariance
132
+
133
+ inccov = IncrementalEmpiricalCovariance()
134
+
135
+ # Check that estimator can be serialized without any data.
136
+ dump = pickle.dumps(inccov)
137
+ inccov_loaded = pickle.loads(dump)
138
+ seed = 77
139
+ gen = np.random.default_rng(seed)
140
+ X = gen.uniform(low=-0.3, high=+0.7, size=(10, 10))
141
+ X = X.astype(dtype)
142
+ X_split = np.array_split(X, 2)
143
+ inccov.partial_fit(X_split[0], queue=queue)
144
+ inccov_loaded.partial_fit(X_split[0], queue=queue)
145
+
146
+ assert inccov._need_to_finalize == True
147
+ assert inccov_loaded._need_to_finalize == True
148
+
149
+ # Check that estimator can be serialized after partial_fit call.
150
+ dump = pickle.dumps(inccov)
151
+ inccov_loaded = pickle.loads(dump)
152
+
153
+ assert inccov._need_to_finalize == False
154
+ # Finalize is called during serialization to make sure partial results are finalized correctly.
155
+ assert inccov_loaded._need_to_finalize == False
156
+
157
+ partial_n_rows = from_table(inccov._partial_result.partial_n_rows)
158
+ partial_n_rows_loaded = from_table(inccov_loaded._partial_result.partial_n_rows)
159
+ assert_allclose(partial_n_rows, partial_n_rows_loaded)
160
+
161
+ partial_crossproduct = from_table(inccov._partial_result.partial_crossproduct)
162
+ partial_crossproduct_loaded = from_table(
163
+ inccov_loaded._partial_result.partial_crossproduct
164
+ )
165
+ assert_allclose(partial_crossproduct, partial_crossproduct_loaded)
166
+
167
+ partial_sums = from_table(inccov._partial_result.partial_sums)
168
+ partial_sums_loaded = from_table(inccov_loaded._partial_result.partial_sums)
169
+ assert_allclose(partial_sums, partial_sums_loaded)
170
+
171
+ inccov.partial_fit(X_split[1], queue=queue)
172
+ inccov_loaded.partial_fit(X_split[1], queue=queue)
173
+ assert inccov._need_to_finalize == True
174
+ assert inccov_loaded._need_to_finalize == True
175
+
176
+ dump = pickle.dumps(inccov_loaded)
177
+ inccov_loaded = pickle.loads(dump)
178
+
179
+ assert inccov._need_to_finalize == True
180
+ assert inccov_loaded._need_to_finalize == False
181
+
182
+ inccov.finalize_fit()
183
+ inccov_loaded.finalize_fit()
184
+
185
+ # Check that finalized estimator can be serialized.
186
+ dump = pickle.dumps(inccov_loaded)
187
+ inccov_loaded = pickle.loads(dump)
188
+
189
+ assert_allclose(inccov.location_, inccov_loaded.location_, atol=1e-6)
190
+ assert_allclose(inccov.covariance_, inccov_loaded.covariance_, atol=1e-6)
@@ -0,0 +1,29 @@
1
+ # ==============================================================================
2
+ # Copyright 2021 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ from ._data_conversion import from_table, return_type_constructor, to_table
18
+ from ._dlpack import dlpack_to_numpy, get_torch_queue
19
+ from ._sycl_usm import copy_to_dpnp, copy_to_usm
20
+
21
+ __all__ = [
22
+ "copy_to_dpnp",
23
+ "copy_to_usm",
24
+ "dlpack_to_numpy",
25
+ "from_table",
26
+ "get_torch_queue",
27
+ "to_table",
28
+ "return_type_constructor",
29
+ ]