scikit-learn-intelex 2025.7.0__py312-none-win_amd64.whl → 2025.9.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 (278) hide show
  1. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +19 -8
  3. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +17 -23
  4. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  5. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +4 -4
  6. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +545 -0
  7. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +5 -2
  8. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +2 -2
  9. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_device_offload.py +41 -40
  10. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  11. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  12. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +52 -76
  13. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +26 -41
  14. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +6 -7
  15. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +11 -11
  16. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +7 -25
  17. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +1 -1
  18. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +31 -11
  19. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +5 -0
  20. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +7 -16
  21. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +13 -18
  22. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +3 -3
  23. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +6 -3
  24. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
  25. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
  26. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +9 -24
  27. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +85 -18
  28. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -40
  29. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  30. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +11 -5
  31. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +5 -5
  32. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +48 -160
  33. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +75 -188
  34. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +25 -11
  35. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +10 -17
  36. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +5 -4
  37. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +14 -0
  38. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +3 -0
  39. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +51 -25
  40. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_third_party.py +52 -2
  41. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__init__.py +2 -1
  42. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -5
  43. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +13 -12
  44. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_utils.py +31 -4
  45. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +26 -37
  46. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +33 -42
  47. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +30 -27
  48. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +1 -0
  49. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +139 -98
  50. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +30 -0
  51. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  52. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
  53. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -6
  54. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +8 -2
  55. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +22 -7
  56. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +2 -0
  57. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +76 -68
  58. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +69 -53
  59. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +53 -41
  60. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +122 -38
  61. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +42 -31
  62. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +27 -61
  63. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
  64. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +8 -6
  65. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +260 -0
  66. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
  67. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  68. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +55 -1
  69. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +7 -4
  70. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +6 -3
  71. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +12 -8
  72. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
  73. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +7 -4
  74. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +18 -8
  75. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +7 -2
  76. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
  77. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +2 -2
  78. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +19 -6
  79. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
  80. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +21 -4
  81. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
  82. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +16 -8
  83. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -4
  84. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
  85. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +136 -13
  86. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +71 -8
  87. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +31 -0
  88. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -1
  89. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +55 -6
  90. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
  91. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +1 -1
  92. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +18 -14
  93. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +3 -21
  94. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
  95. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
  96. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +19 -1
  97. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/METADATA +83 -92
  98. scikit_learn_intelex-2025.9.0.dist-info/RECORD +259 -0
  99. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  100. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -1039
  101. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  102. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  103. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -110
  104. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +0 -200
  105. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -423
  106. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -115
  107. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -134
  108. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -129
  109. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -119
  110. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -227
  111. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
  112. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
  113. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  114. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -43
  115. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -82
  116. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
  117. scikit_learn_intelex-2025.7.0.dist-info/RECORD +0 -258
  118. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  119. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  120. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +0 -0
  121. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +0 -0
  122. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  123. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
  124. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  125. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  126. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
  127. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  128. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  129. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  130. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  131. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
  132. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
  133. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  134. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
  135. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  136. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  137. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  138. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  139. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  140. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  141. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  142. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  143. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  144. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  145. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
  147. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
  149. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  150. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  151. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  152. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  153. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  154. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
  155. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  156. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  157. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  158. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  159. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
  160. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
  161. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
  162. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  163. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  164. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  165. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
  166. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  167. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
  168. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  169. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  170. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
  171. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  172. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  173. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  174. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
  175. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  176. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  177. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  178. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
  179. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  180. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  181. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  182. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  183. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  184. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  185. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  186. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  187. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  188. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  189. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  190. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  191. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  192. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  193. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  194. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  195. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
  196. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +0 -0
  197. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
  198. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  199. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
  200. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
  201. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
  202. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
  203. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
  204. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
  205. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  206. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +0 -0
  207. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
  208. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
  209. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  210. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/base.py +0 -0
  211. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  213. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  214. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  215. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  216. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  217. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  218. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  219. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  220. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  221. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  222. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  223. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  224. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  225. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  226. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  227. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  228. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  229. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
  230. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  231. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  232. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  233. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  234. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  235. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  236. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  237. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  238. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
  240. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  241. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  242. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  243. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  244. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  245. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  246. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  248. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  249. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  250. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  251. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  252. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  253. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
  254. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  255. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  256. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  257. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  258. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  259. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  260. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  261. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  262. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
  263. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  264. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
  265. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  266. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
  267. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  268. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
  269. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  270. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  271. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
  272. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  273. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  274. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  275. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  276. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/LICENSE.txt +0 -0
  277. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/WHEEL +0 -0
  278. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/top_level.txt +0 -0
@@ -14,10 +14,8 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- import numpy as np
18
17
  from sklearn.base import BaseEstimator
19
- from sklearn.utils import check_array, gen_batches
20
- from sklearn.utils.validation import _check_sample_weight
18
+ from sklearn.utils import gen_batches
21
19
 
22
20
  from daal4py.sklearn._n_jobs_support import control_n_jobs
23
21
  from daal4py.sklearn._utils import sklearn_check_version
@@ -29,7 +27,8 @@ from .._config import get_config
29
27
  from .._device_offload import dispatch
30
28
  from .._utils import PatchingConditionsChain, _add_inc_serialization_note
31
29
  from ..base import oneDALEstimator
32
- from ..utils.validation import validate_data
30
+ from ..utils._array_api import enable_array_api, get_namespace
31
+ from ..utils.validation import _check_sample_weight, validate_data
33
32
 
34
33
  if sklearn_check_version("1.2"):
35
34
  from sklearn.utils._param_validation import Interval, StrOptions
@@ -38,6 +37,7 @@ import numbers
38
37
  import warnings
39
38
 
40
39
 
40
+ @enable_array_api
41
41
  @control_n_jobs(decorated_methods=["partial_fit", "_onedal_finalize_fit"])
42
42
  class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
43
43
  """
@@ -159,12 +159,7 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
159
159
  }
160
160
 
161
161
  def __init__(self, result_options="all", batch_size=None):
162
- if result_options == "all":
163
- self.result_options = (
164
- self._onedal_incremental_basic_statistics.get_all_result_options()
165
- )
166
- else:
167
- self.result_options = result_options
162
+ self.result_options = result_options
168
163
  self._need_to_finalize = False
169
164
  self.batch_size = batch_size
170
165
 
@@ -177,15 +172,7 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
177
172
  _onedal_cpu_supported = _onedal_supported
178
173
  _onedal_gpu_supported = _onedal_supported
179
174
 
180
- def _get_onedal_result_options(self, options):
181
- if isinstance(options, list):
182
- onedal_options = "|".join(self.result_options)
183
- else:
184
- onedal_options = options
185
- assert isinstance(onedal_options, str)
186
- return options
187
-
188
- def _onedal_finalize_fit(self):
175
+ def _onedal_finalize_fit(self, queue=None):
189
176
  assert hasattr(self, "_onedal_estimator")
190
177
  self._onedal_estimator.finalize_fit()
191
178
  self._need_to_finalize = False
@@ -193,19 +180,20 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
193
180
  def _onedal_partial_fit(self, X, sample_weight=None, queue=None, check_input=True):
194
181
  first_pass = not hasattr(self, "n_samples_seen_") or self.n_samples_seen_ == 0
195
182
 
196
- use_raw_input = get_config().get("use_raw_input", False) is True
197
183
  # never check input when using raw input
198
- check_input &= use_raw_input is False
199
- if check_input:
184
+ if check_input and not get_config()["use_raw_input"]:
185
+ xp, _ = get_namespace(X)
200
186
  X = validate_data(
201
187
  self,
202
188
  X,
203
- dtype=[np.float64, np.float32],
189
+ dtype=[xp.float64, xp.float32],
204
190
  reset=first_pass,
205
191
  )
206
192
 
207
- if not use_raw_input and sample_weight is not None:
208
- sample_weight = _check_sample_weight(sample_weight, X)
193
+ if sample_weight is not None:
194
+ sample_weight = _check_sample_weight(
195
+ sample_weight, X, dtype=[xp.float64, xp.float32]
196
+ )
209
197
 
210
198
  if first_pass:
211
199
  self.n_samples_seen_ = X.shape[0]
@@ -213,28 +201,25 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
213
201
  else:
214
202
  self.n_samples_seen_ += X.shape[0]
215
203
 
216
- onedal_params = {
217
- "result_options": self._get_onedal_result_options(self.result_options)
218
- }
219
204
  if not hasattr(self, "_onedal_estimator"):
220
205
  self._onedal_estimator = self._onedal_incremental_basic_statistics(
221
- **onedal_params
206
+ result_options=self.result_options
222
207
  )
223
- self._onedal_estimator.partial_fit(X, weights=sample_weight, queue=queue)
208
+
209
+ self._onedal_estimator.partial_fit(X, sample_weight=sample_weight, queue=queue)
224
210
  self._need_to_finalize = True
225
211
 
226
212
  def _onedal_fit(self, X, sample_weight=None, queue=None):
227
- use_raw_input = get_config().get("use_raw_input", False) is True
228
- if not use_raw_input:
229
- if sklearn_check_version("1.2"):
230
- self._validate_params()
231
-
232
- X = validate_data(self, X, dtype=[np.float64, np.float32])
213
+ if not get_config()["use_raw_input"]:
214
+ xp, _ = get_namespace(X, sample_weight)
215
+ X = validate_data(self, X, dtype=[xp.float64, xp.float32])
233
216
 
234
217
  if sample_weight is not None:
235
- sample_weight = _check_sample_weight(sample_weight, X)
218
+ sample_weight = _check_sample_weight(
219
+ sample_weight, X, dtype=[xp.float64, xp.float32]
220
+ )
236
221
 
237
- n_samples, n_features = X.shape
222
+ _, n_features = X.shape
238
223
  if self.batch_size is None:
239
224
  self.batch_size_ = 5 * n_features
240
225
  else:
@@ -258,11 +243,12 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
258
243
  return self
259
244
 
260
245
  def __getattr__(self, attr):
261
- result_options = self.__dict__["result_options"]
262
246
  sattr = attr.removesuffix("_")
263
247
  is_statistic_attr = (
264
- isinstance(result_options, str) and (sattr == result_options)
265
- ) or (isinstance(result_options, list) and (sattr in result_options))
248
+ sattr in self._onedal_estimator.options
249
+ if "_onedal_estimator" in self.__dict__
250
+ else False
251
+ )
266
252
  if is_statistic_attr:
267
253
  if self._need_to_finalize:
268
254
  self._onedal_finalize_fit()
@@ -270,7 +256,8 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
270
256
  warnings.warn(
271
257
  "Result attributes without a trailing underscore were deprecated in version 2025.1 and will be removed in 2026.0"
272
258
  )
273
- return getattr(self._onedal_estimator, sattr)
259
+ attr += "_"
260
+ return getattr(self._onedal_estimator, attr)
274
261
  if attr in self.__dict__:
275
262
  return self.__dict__[attr]
276
263
 
@@ -301,6 +288,8 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
301
288
  self : IncrementalBasicStatistics
302
289
  Returns the instance itself.
303
290
  """
291
+ if sklearn_check_version("1.2") and check_input:
292
+ self._validate_params()
304
293
  dispatch(
305
294
  self,
306
295
  "partial_fit",
@@ -334,6 +323,8 @@ class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
334
323
  self : IncrementalBasicStatistics
335
324
  Returns the instance itself.
336
325
  """
326
+ if sklearn_check_version("1.2"):
327
+ self._validate_params()
337
328
  dispatch(
338
329
  self,
339
330
  "fit",
@@ -14,42 +14,30 @@
14
14
  # limitations under the License.
15
15
  # ===============================================================================
16
16
 
17
- import numbers
18
- from abc import ABC
19
-
20
17
  from scipy import sparse as sp
21
18
  from sklearn.cluster import DBSCAN as _sklearn_DBSCAN
22
- from sklearn.utils.validation import _check_sample_weight
23
19
 
24
20
  from daal4py.sklearn._n_jobs_support import control_n_jobs
25
21
  from daal4py.sklearn._utils import sklearn_check_version
26
22
  from onedal.cluster import DBSCAN as onedal_DBSCAN
23
+ from onedal.utils._array_api import _is_numpy_namespace
27
24
 
28
25
  from .._config import get_config
29
26
  from .._device_offload import dispatch
30
27
  from .._utils import PatchingConditionsChain
31
28
  from ..base import oneDALEstimator
32
- from ..utils.validation import validate_data
29
+ from ..utils._array_api import enable_array_api, get_namespace
30
+ from ..utils.validation import _check_sample_weight, validate_data
33
31
 
34
32
  if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
35
- from sklearn.utils import check_scalar
36
-
37
-
38
- class BaseDBSCAN(oneDALEstimator):
39
- def _onedal_dbscan(self, **onedal_params):
40
- return onedal_DBSCAN(**onedal_params)
33
+ import numbers
41
34
 
42
- def _save_attributes(self):
43
- assert hasattr(self, "_onedal_estimator")
44
-
45
- self.labels_ = self._onedal_estimator.labels_
46
- self.core_sample_indices_ = self._onedal_estimator.core_sample_indices_
47
- self.components_ = self._onedal_estimator.components_
48
- self.n_features_in_ = self._onedal_estimator.n_features_in_
35
+ from sklearn.utils import check_scalar
49
36
 
50
37
 
38
+ @enable_array_api
51
39
  @control_n_jobs(decorated_methods=["fit"])
52
- class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
40
+ class DBSCAN(oneDALEstimator, _sklearn_DBSCAN):
53
41
  __doc__ = _sklearn_DBSCAN.__doc__
54
42
 
55
43
  if sklearn_check_version("1.2"):
@@ -86,9 +74,18 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
86
74
  self.p = p
87
75
  self.n_jobs = n_jobs
88
76
 
77
+ _onedal_dbscan = staticmethod(onedal_DBSCAN)
78
+
89
79
  def _onedal_fit(self, X, y, sample_weight=None, queue=None):
90
- if get_config()["use_raw_input"] is False:
91
- X = validate_data(self, X, ensure_all_finite=False)
80
+ xp, _ = get_namespace(X, y, sample_weight)
81
+ if not get_config()["use_raw_input"]:
82
+ X = validate_data(
83
+ self, X, accept_sparse="csr", dtype=[xp.float64, xp.float32]
84
+ )
85
+ if sample_weight is not None:
86
+ sample_weight = _check_sample_weight(
87
+ sample_weight, X, dtype=[xp.float64, xp.float32]
88
+ )
92
89
 
93
90
  onedal_params = {
94
91
  "eps": self.eps,
@@ -103,7 +100,17 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
103
100
  self._onedal_estimator = self._onedal_dbscan(**onedal_params)
104
101
 
105
102
  self._onedal_estimator.fit(X, y=y, sample_weight=sample_weight, queue=queue)
106
- self._save_attributes()
103
+ if self._onedal_estimator.core_sample_indices_ is None:
104
+ kwargs = {"dtype": xp.int32} # always the same
105
+ if not _is_numpy_namespace(xp):
106
+ kwargs["device"] = X.device
107
+ self.core_sample_indices_ = xp.empty((0,), **kwargs)
108
+ else:
109
+ self.core_sample_indices_ = self._onedal_estimator.core_sample_indices_
110
+
111
+ self.components_ = xp.take(X, self.core_sample_indices_, axis=0)
112
+ self.labels_ = self._onedal_estimator.labels_
113
+ self.n_features_in_ = X.shape[1]
107
114
 
108
115
  def _onedal_supported(self, method_name, *data):
109
116
  class_name = self.__class__.__name__
@@ -111,7 +118,7 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
111
118
  f"sklearn.cluster.{class_name}.{method_name}"
112
119
  )
113
120
  if method_name == "fit":
114
- X, y, sample_weight = data
121
+ X = data[0]
115
122
  patching_status.and_conditions(
116
123
  [
117
124
  (
@@ -175,10 +182,6 @@ class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
175
182
  else:
176
183
  if self.eps <= 0.0:
177
184
  raise ValueError(f"eps == {self.eps}, must be > 0.0.")
178
-
179
- use_raw_input = get_config().get("use_raw_input", False) is True
180
- if not use_raw_input and sample_weight is not None:
181
- sample_weight = _check_sample_weight(sample_weight, X)
182
185
  dispatch(
183
186
  self,
184
187
  "fit",
@@ -334,6 +334,7 @@ if daal_check_version((2023, "P", 200)):
334
334
  return X
335
335
 
336
336
  _transform = support_input_format(_sklearn_KMeans._transform)
337
+ transform = support_input_format(_sklearn_KMeans.transform)
337
338
 
338
339
  @wrap_output_data
339
340
  def score(self, X, y=None, sample_weight=None):
@@ -16,39 +16,40 @@
16
16
 
17
17
  import numbers
18
18
  import warnings
19
+ from functools import partial
19
20
 
20
21
  import numpy as np
21
22
  from scipy import linalg
22
23
  from sklearn.base import BaseEstimator, clone
23
24
  from sklearn.covariance import EmpiricalCovariance as _sklearn_EmpiricalCovariance
24
- from sklearn.covariance import log_likelihood
25
- from sklearn.utils import check_array, gen_batches
25
+ from sklearn.utils import gen_batches
26
26
  from sklearn.utils.validation import _num_features, check_is_fitted
27
27
 
28
28
  from daal4py.sklearn._n_jobs_support import control_n_jobs
29
29
  from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
30
+ from daal4py.sklearn.metrics import pairwise_distances
31
+ from onedal._device_offload import support_input_format, support_sycl_format
30
32
  from onedal.covariance import (
31
33
  IncrementalEmpiricalCovariance as onedal_IncrementalEmpiricalCovariance,
32
34
  )
33
35
  from onedal.utils._array_api import _is_numpy_namespace
34
- from sklearnex import config_context
35
36
 
36
- from .._config import get_config
37
+ from .._config import config_context, get_config
37
38
  from .._device_offload import dispatch, wrap_output_data
38
- from .._utils import (
39
- PatchingConditionsChain,
40
- _add_inc_serialization_note,
41
- register_hyperparameters,
42
- )
39
+ from .._utils import PatchingConditionsChain, _add_inc_serialization_note
43
40
  from ..base import oneDALEstimator
44
- from ..metrics import pairwise_distances
45
- from ..utils._array_api import get_namespace
46
- from ..utils.validation import check_feature_names, validate_data
41
+ from ..utils._array_api import _pinvh, enable_array_api, get_namespace, log_likelihood
42
+ from ..utils.validation import validate_data
47
43
 
48
44
  if sklearn_check_version("1.2"):
49
45
  from sklearn.utils._param_validation import Interval
50
46
 
47
+ # This is a temporary workaround for issues with sklearnex._device_offload._get_host_inputs
48
+ # passing kwargs with sycl queues with other host data will cause failures
49
+ _mahalanobis = support_input_format(partial(pairwise_distances, metric="mahalanobis"))
50
+
51
51
 
52
+ @enable_array_api
52
53
  @control_n_jobs(decorated_methods=["partial_fit", "fit", "_onedal_finalize_fit"])
53
54
  class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
54
55
  """
@@ -135,9 +136,6 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
135
136
  "copy": ["boolean"],
136
137
  }
137
138
 
138
- get_precision = _sklearn_EmpiricalCovariance.get_precision
139
- error_norm = wrap_output_data(_sklearn_EmpiricalCovariance.error_norm)
140
-
141
139
  def __init__(
142
140
  self, *, store_precision=False, assume_centered=False, batch_size=None, copy=True
143
141
  ):
@@ -158,11 +156,12 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
158
156
  self._need_to_finalize = False
159
157
 
160
158
  if not daal_check_version((2024, "P", 400)) and self.assume_centered:
159
+ xp, _ = get_namespace(self._onedal_estimator.location_)
161
160
  location = self._onedal_estimator.location_[None, :]
162
- self._onedal_estimator.covariance_ += np.dot(location.T, location)
163
- self._onedal_estimator.location_ = np.zeros_like(np.squeeze(location))
161
+ self._onedal_estimator.covariance_ += xp.dot(location.T, location)
162
+ self._onedal_estimator.location_ = xp.zeros_like(xp.squeeze(location))
164
163
  if self.store_precision:
165
- self.precision_ = linalg.pinvh(
164
+ self.precision_ = _pinvh(
166
165
  self._onedal_estimator.covariance_, check_finite=False
167
166
  )
168
167
  else:
@@ -193,21 +192,14 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
193
192
  def _onedal_partial_fit(self, X, queue=None, check_input=True):
194
193
  first_pass = not hasattr(self, "n_samples_seen_") or self.n_samples_seen_ == 0
195
194
 
196
- use_raw_input = get_config().get("use_raw_input", False) is True
197
- # never check input when using raw input
198
- check_input &= use_raw_input is False
199
- # finite check occurs on onedal side
200
- if check_input:
201
- if sklearn_check_version("1.2"):
202
- self._validate_params()
203
-
195
+ if check_input and not get_config()["use_raw_input"]:
196
+ xp, _ = get_namespace(X)
204
197
  X = validate_data(
205
198
  self,
206
199
  X,
207
- dtype=[np.float64, np.float32],
200
+ dtype=[xp.float64, xp.float32],
208
201
  reset=first_pass,
209
202
  copy=self.copy,
210
- ensure_all_finite=False,
211
203
  )
212
204
 
213
205
  onedal_params = {
@@ -230,38 +222,12 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
230
222
 
231
223
  return self
232
224
 
233
- @wrap_output_data
234
- def score(self, X_test, y=None):
235
- xp, _ = get_namespace(X_test)
236
-
237
- check_is_fitted(self)
238
- location = self.location_
239
- X = validate_data(
240
- self,
241
- X_test,
242
- dtype=[xp.float64, xp.float32],
243
- reset=False,
244
- )
245
-
246
- if not _is_numpy_namespace(xp):
247
- location = xp.asarray(location, device=X_test.device)
248
- # depending on the sklearn version, check_array
249
- # and validate_data will return only numpy arrays
250
- # which will break dpnp/dpctl support. If the
251
- # array namespace isn't from numpy and the data
252
- # is now a numpy array, it has been validated and
253
- # the original can be used.
254
- if isinstance(X, np.ndarray):
255
- X = X_test
256
-
257
- est = clone(self)
258
- est.set_params(**{"assume_centered": True})
259
-
260
- # test_cov is a numpy array, but calculated on device
261
- test_cov = est.fit(X - location).covariance_
262
- res = log_likelihood(test_cov, self.get_precision())
263
-
264
- return res
225
+ def get_precision(self):
226
+ if self.store_precision:
227
+ precision = self.precision_
228
+ else:
229
+ precision = _pinvh(self.covariance_, check_finite=False)
230
+ return precision
265
231
 
266
232
  def partial_fit(self, X, y=None, check_input=True):
267
233
  """
@@ -284,6 +250,8 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
284
250
  self : IncrementalEmpiricalCovariance
285
251
  Returns the instance itself.
286
252
  """
253
+ if sklearn_check_version("1.2") and check_input:
254
+ self._validate_params()
287
255
  return dispatch(
288
256
  self,
289
257
  "partial_fit",
@@ -313,7 +281,8 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
313
281
  self : IncrementalEmpiricalCovariance
314
282
  Returns the instance itself.
315
283
  """
316
-
284
+ if sklearn_check_version("1.2"):
285
+ self._validate_params()
317
286
  return dispatch(
318
287
  self,
319
288
  "fit",
@@ -329,19 +298,9 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
329
298
  if hasattr(self, "_onedal_estimator"):
330
299
  self._onedal_estimator._reset()
331
300
 
332
- use_raw_input = get_config().get("use_raw_input", False) is True
333
- if not use_raw_input:
334
- if sklearn_check_version("1.2"):
335
- self._validate_params()
336
-
337
- # finite check occurs on onedal side
338
- X = validate_data(
339
- self,
340
- X,
341
- dtype=[np.float64, np.float32],
342
- copy=self.copy,
343
- ensure_all_finite=False,
344
- )
301
+ if not get_config()["use_raw_input"]:
302
+ xp, _ = get_namespace(X)
303
+ X = validate_data(self, X, dtype=[xp.float64, xp.float32], copy=self.copy)
345
304
 
346
305
  self.batch_size_ = self.batch_size if self.batch_size else 5 * self.n_features_in_
347
306
 
@@ -351,40 +310,121 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
351
310
  )
352
311
 
353
312
  for batch in gen_batches(X.shape[0], self.batch_size_):
354
- X_batch = X[batch]
313
+ X_batch = X[batch, ...]
355
314
  self._onedal_partial_fit(X_batch, queue=queue, check_input=False)
356
315
 
357
316
  self._onedal_finalize_fit()
358
317
 
359
318
  return self
360
319
 
361
- # expose sklearnex pairwise_distances if mahalanobis distance eventually supported
362
- def mahalanobis(self, X):
363
- check_feature_names(self, X, reset=False)
320
+ @wrap_output_data
321
+ @support_sycl_format
322
+ def score(self, X_test, y=None):
364
323
 
365
- xp, _ = get_namespace(X)
324
+ check_is_fitted(self)
325
+ # Only covariance evaluated for get_namespace due to dpnp/dpctl
326
+ # support without array_api_dispatch
327
+ xp, _ = get_namespace(X_test, self.covariance_)
328
+
329
+ X = validate_data(
330
+ self,
331
+ X_test,
332
+ dtype=[xp.float64, xp.float32],
333
+ reset=False,
334
+ )
335
+
336
+ location = self.location_
366
337
  precision = self.get_precision()
367
- # compute mahalanobis distances
368
- # pairwise_distances will check n_features (via n_feature matching with
369
- # self.location_) , and will check for finiteness via check array
370
- # check_feature_names will match _validate_data functionally
371
- location = self.location_[np.newaxis, :]
338
+
339
+ est = clone(self)
340
+ est.set_params(assume_centered=True)
341
+
342
+ # test_cov is a numpy array, but calculated on device
343
+ test_cov = est.fit(X - self.location_).covariance_
372
344
  if not _is_numpy_namespace(xp):
373
- # Guarantee that inputs to pairwise_distances match in type and location
374
- location = xp.asarray(location, device=X.device)
345
+ test_cov = xp.asarray(test_cov, device=X_test.device)
346
+ res = log_likelihood(test_cov, self.get_precision())
375
347
 
376
- try:
377
- dist = pairwise_distances(X, location, metric="mahalanobis", VI=precision)
378
-
379
- except ValueError as e:
380
- # Throw the expected sklearn error in an n_feature length violation
381
- if "Incompatible dimension for X and Y matrices: X.shape[1] ==" in str(e):
382
- raise ValueError(
383
- f"X has {_num_features(X)} features, but {self.__class__.__name__} "
384
- f"is expecting {self.n_features_in_} features as input."
385
- )
386
- else:
387
- raise e
348
+ return res
349
+
350
+ @wrap_output_data
351
+ @support_sycl_format
352
+ def error_norm(self, comp_cov, norm="frobenius", scaling=True, squared=True):
353
+ # equivalent to the sklearn implementation but written for array API
354
+ # in the case of numpy-like inputs it will use sklearn's version instead.
355
+ # This can be deprecated if/when sklearn makes the equivalent array API enabled.
356
+ # This includes a validate_data call and an unusual call to get_namespace in
357
+ # order to also support dpnp/dpctl without array_api_dispatch.
358
+ check_is_fitted(self)
359
+ # Only covariance evaluated for get_namespace due to dpnp/dpctl
360
+ # support without array_api_dispatch
361
+ xp, _ = get_namespace(self.covariance_)
362
+ c_cov = validate_data(
363
+ self,
364
+ comp_cov,
365
+ dtype=[xp.float64, xp.float32],
366
+ reset=False,
367
+ )
368
+
369
+ if _is_numpy_namespace(xp):
370
+ # must be done this way is it does not inherit from sklearn
371
+ return _sklearn_EmpiricalCovariance.error_norm(
372
+ self, c_cov, norm=norm, scaling=scaling, squared=squared
373
+ )
374
+
375
+ # compute the error
376
+ error = c_cov - self.covariance_
377
+ # compute the error norm
378
+ if norm == "frobenius":
379
+ # variance from sklearn version to leverage BLAS GEMM
380
+ # squared_norm = xp.sum(error**2)
381
+ squared_norm = xp.matmul(xp.reshape(error, (-1)), xp.reshape(error, (-1)))
382
+ elif norm == "spectral":
383
+ squared_norm = xp.max(xp.linalg.svdvals(xp.matmul(error.T, error)))
384
+ else:
385
+ raise NotImplementedError("Only spectral and frobenius norms are implemented")
386
+ # optionally scale the error norm
387
+ if scaling:
388
+ squared_norm = squared_norm / error.shape[0]
389
+ # finally get either the squared norm or the norm
390
+ if squared:
391
+ result = squared_norm
392
+ else:
393
+ result = xp.sqrt(squared_norm)
394
+
395
+ return result
396
+
397
+ # expose sklearnex pairwise_distances if mahalanobis distance eventually supported
398
+ @support_sycl_format
399
+ def mahalanobis(self, X):
400
+ # This must be done as ```support_input_format``` is insufficient for array API
401
+ # support when attributes are non-numpy.
402
+ check_is_fitted(self)
403
+ precision = self.get_precision()
404
+ loc = self.location_[None, :]
405
+ xp, _ = get_namespace(X, precision, loc)
406
+ # do not check dtype, done in pairwise_distances
407
+ X_in = validate_data(self, X, reset=False)
408
+
409
+ if not _is_numpy_namespace(xp) and isinstance(X_in, np.ndarray):
410
+ # corrects issues with respect to dpnp/dpctl support without array_api_dispatch
411
+ X_in = X
412
+ loc = xp.asarray(loc, device=X.device)
413
+ precision = xp.asarray(precision, device=X.device)
414
+
415
+ with config_context(assume_finite=True):
416
+ try:
417
+ dist = _mahalanobis(X_in, loc, VI=precision)
418
+
419
+ except ValueError as e:
420
+ # Throw the expected sklearn error in an n_feature length violation
421
+ if "Incompatible dimension for X and Y matrices: X.shape[1] ==" in str(e):
422
+ raise ValueError(
423
+ f"X has {_num_features(X)} features, but {self.__class__.__name__} "
424
+ f"is expecting {self.n_features_in_} features as input."
425
+ ) from None
426
+ else:
427
+ raise e
388
428
 
389
429
  if not _is_numpy_namespace(xp):
390
430
  dist = xp.asarray(dist, device=X.device)
@@ -397,3 +437,4 @@ class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
397
437
  mahalanobis.__doc__ = _sklearn_EmpiricalCovariance.mahalanobis.__doc__
398
438
  error_norm.__doc__ = _sklearn_EmpiricalCovariance.error_norm.__doc__
399
439
  score.__doc__ = _sklearn_EmpiricalCovariance.score.__doc__
440
+ get_precision.__doc__ = _sklearn_EmpiricalCovariance.get_precision.__doc__
@@ -14,6 +14,7 @@
14
14
  # limitations under the License.
15
15
  # ===============================================================================
16
16
 
17
+ from contextlib import nullcontext
17
18
  from os import environ
18
19
 
19
20
  from daal4py.sklearn._utils import sklearn_check_version
@@ -285,3 +286,32 @@ def test_IncrementalEmpiricalCovariance_against_sklearn(monkeypatch, sklearn_tes
285
286
  class_name = ".".join([sklearn_test.__module__, "EmpiricalCovariance"])
286
287
  monkeypatch.setattr(class_name, IncrementalEmpiricalCovariance)
287
288
  sklearn_test()
289
+
290
+
291
+ @pytest.mark.skipif(
292
+ not sklearn_check_version("1.4"), reason="requires array_api_support sklearn config"
293
+ )
294
+ @pytest.mark.parametrize("dispatch", [True, False])
295
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues("dpnp"))
296
+ def test_score_verify_namespace(dispatch, dataframe, queue):
297
+ from sklearnex import config_context
298
+ from sklearnex.covariance import IncrementalEmpiricalCovariance
299
+
300
+ est = IncrementalEmpiricalCovariance()
301
+
302
+ rng = np.random.seed(42)
303
+ X = np.random.rand(5, 10)
304
+ X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
305
+
306
+ if dispatch:
307
+ cfg_context = config_context(array_api_dispatch=True)
308
+ err = pytest.raises(TypeError)
309
+ else:
310
+ # support_sycl_format will cause it to function
311
+ cfg_context = nullcontext()
312
+ err = nullcontext()
313
+
314
+ # calculate and store data on SYCL device (CPU or GPU)
315
+ with cfg_context, err:
316
+ est.fit(X_df)
317
+ est.score(X + 3)