scikit-learn-intelex 2025.7.0__py39-none-win_amd64.whl → 2025.9.0__py39-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.cp39-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.cp39-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.cp39-win_amd64.pyd +0 -0
  11. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-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.cp39-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.cp39-win_amd64.pyd +0 -0
  102. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-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
@@ -24,9 +24,9 @@ from onedal.tests.utils._dataframes_support import (
24
24
  )
25
25
  from sklearnex import config_context
26
26
  from sklearnex.tests.utils.spmd import (
27
- _assert_unordered_allclose,
28
27
  _generate_classification_data,
29
28
  _generate_regression_data,
29
+ _generate_statistic_data,
30
30
  _get_local_tensor,
31
31
  _mpi_libs_and_gpu_available,
32
32
  _spmd_assert_allclose,
@@ -94,8 +94,8 @@ def test_knncls_spmd_gold(dataframe, queue):
94
94
  spmd_result = spmd_model.predict(local_dpt_X_test)
95
95
  batch_result = batch_model.predict(X_test)
96
96
 
97
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
98
- _assert_unordered_allclose(spmd_dists, batch_dists, localize=True)
97
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
98
+ _spmd_assert_allclose(spmd_dists, batch_dists)
99
99
  _spmd_assert_allclose(spmd_result, batch_result)
100
100
 
101
101
 
@@ -164,10 +164,8 @@ def test_knncls_spmd_synthetic(
164
164
 
165
165
  tol = 1e-4
166
166
  if dtype == np.float64:
167
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
168
- _assert_unordered_allclose(
169
- spmd_dists, batch_dists, localize=True, rtol=tol, atol=tol
170
- )
167
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
168
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
171
169
  _spmd_assert_allclose(spmd_result, batch_result)
172
170
 
173
171
 
@@ -231,8 +229,8 @@ def test_knnreg_spmd_gold(dataframe, queue):
231
229
  spmd_result = spmd_model.predict(local_dpt_X_test)
232
230
  batch_result = batch_model.predict(X_test)
233
231
 
234
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
235
- _assert_unordered_allclose(spmd_dists, batch_dists, localize=True)
232
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
233
+ _spmd_assert_allclose(spmd_dists, batch_dists)
236
234
  _spmd_assert_allclose(spmd_result, batch_result)
237
235
 
238
236
 
@@ -303,8 +301,133 @@ def test_knnreg_spmd_synthetic(
303
301
 
304
302
  tol = 0.005 if dtype == np.float32 else 1e-4
305
303
  if dtype == np.float64:
306
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
307
- _assert_unordered_allclose(
308
- spmd_dists, batch_dists, localize=True, rtol=tol, atol=tol
309
- )
304
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
305
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
310
306
  _spmd_assert_allclose(spmd_result, batch_result, rtol=tol, atol=tol)
307
+
308
+
309
+ @pytest.mark.skipif(
310
+ not _mpi_libs_and_gpu_available,
311
+ reason="GPU device and MPI libs required for test",
312
+ )
313
+ @pytest.mark.parametrize(
314
+ "dataframe,queue",
315
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
316
+ )
317
+ @pytest.mark.mpi
318
+ def test_knnsearch_spmd_gold(dataframe, queue):
319
+ # Import spmd and batch algo
320
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
321
+ from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
322
+
323
+ # Create gold data and convert to dataframe
324
+ X_train = np.array(
325
+ [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
326
+ )
327
+ local_dpt_X_train = _convert_to_dataframe(
328
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
329
+ )
330
+
331
+ # Ensure predictions of batch algo match spmd
332
+ spmd_model = NearestNeighbors_SPMD(n_neighbors=2, algorithm="brute").fit(
333
+ local_dpt_X_train
334
+ )
335
+ batch_model = NearestNeighbors_Batch(n_neighbors=2, algorithm="brute").fit(X_train)
336
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
337
+ batch_dists, batch_indcs = batch_model.kneighbors(X_train)
338
+
339
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
340
+ _spmd_assert_allclose(spmd_dists, batch_dists)
341
+
342
+
343
+ @pytest.mark.skipif(
344
+ not _mpi_libs_and_gpu_available,
345
+ reason="GPU device and MPI libs required for test",
346
+ )
347
+ @pytest.mark.parametrize(
348
+ "dimensions", [{"n": 100, "m": 10, "k": 2}, {"n": 100000, "m": 100, "k": 100}]
349
+ )
350
+ @pytest.mark.parametrize(
351
+ "dataframe,queue",
352
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
353
+ )
354
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
355
+ @pytest.mark.mpi
356
+ def test_knnsearch_spmd_synthetic(
357
+ dimensions,
358
+ dataframe,
359
+ queue,
360
+ dtype,
361
+ ):
362
+ if dimensions["n"] > 10000 and dtype == np.float32:
363
+ pytest.skip("Skipping large float32 test due to expected precision issues")
364
+
365
+ # Import spmd and batch algo
366
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
367
+ from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
368
+
369
+ # Generate data and convert to dataframe
370
+ X_train = _generate_statistic_data(dimensions["n"], dimensions["m"], dtype=dtype)
371
+
372
+ local_dpt_X_train = _convert_to_dataframe(
373
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
374
+ )
375
+
376
+ # Ensure search results of batch algo match spmd
377
+ spmd_model = NearestNeighbors_SPMD(
378
+ n_neighbors=dimensions["k"], algorithm="brute"
379
+ ).fit(local_dpt_X_train)
380
+ batch_model = NearestNeighbors_Batch(
381
+ n_neighbors=dimensions["k"], algorithm="brute"
382
+ ).fit(X_train)
383
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
384
+ batch_dists, batch_indcs = batch_model.kneighbors(X_train)
385
+
386
+ tol = 0.005 if dtype == np.float32 else 1e-6
387
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
388
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
389
+
390
+
391
+ @pytest.mark.skipif(
392
+ not _mpi_libs_and_gpu_available,
393
+ reason="GPU device and MPI libs required for test",
394
+ )
395
+ @pytest.mark.parametrize(
396
+ "dataframe,queue",
397
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
398
+ )
399
+ @pytest.mark.mpi
400
+ def test_knn_spmd_empty_kneighbors(dataframe, queue):
401
+ # Import spmd and batch algo
402
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
403
+ from sklearnex.spmd.neighbors import (
404
+ KNeighborsClassifier,
405
+ KNeighborsRegressor,
406
+ NearestNeighbors,
407
+ )
408
+
409
+ # Create gold data and convert to dataframe
410
+ X_train = np.array(
411
+ [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
412
+ )
413
+ y_train = np.array([0, 1, 0, 1, 0, 1, 0, 1])
414
+ local_dpt_X_train = _convert_to_dataframe(
415
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
416
+ )
417
+ local_dpt_y_train = _convert_to_dataframe(
418
+ _get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
419
+ )
420
+
421
+ # Run each estimator without an input to kneighbors() and ensure functionality and equivalence
422
+ for CurrentEstimator in [KNeighborsClassifier, KNeighborsRegressor, NearestNeighbors]:
423
+ spmd_model = CurrentEstimator(n_neighbors=1, algorithm="brute").fit(
424
+ local_dpt_X_train, local_dpt_y_train
425
+ )
426
+ batch_model = NearestNeighbors_Batch(n_neighbors=1, algorithm="brute").fit(
427
+ X_train, y_train
428
+ )
429
+ spmd_dists, spmd_indcs = spmd_model.kneighbors()
430
+ batch_dists, batch_indcs = batch_model.kneighbors()
431
+
432
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
433
+ _spmd_assert_allclose(spmd_dists, batch_dists)
@@ -19,20 +19,69 @@ from numbers import Number, Real
19
19
 
20
20
  import numpy as np
21
21
  from scipy import sparse as sp
22
- from sklearn.base import BaseEstimator, ClassifierMixin
22
+ from sklearn.base import ClassifierMixin
23
23
  from sklearn.calibration import CalibratedClassifierCV
24
24
  from sklearn.metrics import r2_score
25
25
  from sklearn.preprocessing import LabelEncoder
26
26
 
27
27
  from daal4py.sklearn._utils import sklearn_check_version
28
28
  from daal4py.sklearn.utils.validation import get_requires_y_tag
29
- from onedal.utils.validation import _check_array, _check_X_y, _column_or_1d
29
+ from onedal.utils.validation import _check_array, _column_or_1d
30
30
 
31
31
  from .._config import config_context, get_config
32
32
  from .._utils import PatchingConditionsChain
33
33
  from ..base import oneDALEstimator
34
34
  from ..utils.validation import validate_data
35
35
 
36
+ if sklearn_check_version("1.6"):
37
+ from sklearn.calibration import _fit_calibrator
38
+ from sklearn.frozen import FrozenEstimator
39
+ from sklearn.utils import indexable
40
+ from sklearn.utils._response import _get_response_values
41
+ from sklearn.utils.multiclass import check_classification_targets
42
+ from sklearn.utils.validation import check_is_fitted
43
+
44
+ def _prefit_CalibratedClassifierCV_fit(self, X, y, **fit_params):
45
+ # This is a stop-gap solution where the cv='prefit' of CalibratedClassifierCV
46
+ # was removed and the single fold solution needs to be maintained. Discussion
47
+ # of the mathematical and performance implications of this choice can be found
48
+ # here: https://github.com/uxlfoundation/scikit-learn-intelex/pull/1879
49
+ # This is distilled from the sklearn CalibratedClassifierCV for sklearn <1.8 for
50
+ # use in sklearn > 1.8 to maintain performance.
51
+ check_classification_targets(y)
52
+ X, y = indexable(X, y)
53
+
54
+ estimator = self._get_estimator()
55
+
56
+ self.calibrated_classifiers_ = []
57
+ check_is_fitted(self.estimator, attributes=["classes_"])
58
+ self.classes_ = self.estimator.classes_
59
+
60
+ predictions, _ = _get_response_values(
61
+ estimator,
62
+ X,
63
+ response_method=["decision_function", "predict_proba"],
64
+ )
65
+ if predictions.ndim == 1:
66
+ # Reshape binary output from `(n_samples,)` to `(n_samples, 1)`
67
+ predictions = predictions.reshape(-1, 1)
68
+
69
+ calibrated_classifier = _fit_calibrator(
70
+ estimator,
71
+ predictions,
72
+ y,
73
+ self.classes_,
74
+ self.method,
75
+ )
76
+ self.calibrated_classifiers_.append(calibrated_classifier)
77
+
78
+ first_clf = self.calibrated_classifiers_[0].estimator
79
+ if hasattr(first_clf, "n_features_in_"):
80
+ self.n_features_in_ = first_clf.n_features_in_
81
+ if hasattr(first_clf, "feature_names_in_"):
82
+ self.feature_names_in_ = first_clf.feature_names_in_
83
+ return self
84
+
36
85
 
37
86
  class BaseSVM(oneDALEstimator):
38
87
 
@@ -262,12 +311,26 @@ class BaseSVC(BaseSVM):
262
311
  cfg["target_offload"] = queue
263
312
  with config_context(**cfg):
264
313
  clf_base.fit(X, y)
265
- self.clf_prob = CalibratedClassifierCV(
266
- clf_base,
267
- ensemble=False,
268
- cv="prefit",
269
- method="sigmoid",
270
- ).fit(X, y)
314
+
315
+ # Forced use of FrozenEstimator starting in sklearn 1.6
316
+ if sklearn_check_version("1.6"):
317
+ clf_base = FrozenEstimator(clf_base)
318
+
319
+ self.clf_prob = CalibratedClassifierCV(
320
+ clf_base,
321
+ ensemble=False,
322
+ method="sigmoid",
323
+ )
324
+ # see custom stopgap solution defined above
325
+ _prefit_CalibratedClassifierCV_fit(self.clf_prob, X, y)
326
+ else:
327
+
328
+ self.clf_prob = CalibratedClassifierCV(
329
+ clf_base,
330
+ ensemble=False,
331
+ cv="prefit",
332
+ method="sigmoid",
333
+ ).fit(X, y)
271
334
 
272
335
  def _save_attributes(self):
273
336
  self.support_vectors_ = self._onedal_estimator.support_vectors_
@@ -18,6 +18,11 @@ import numpy as np
18
18
  import pytest
19
19
  from numpy.testing import assert_allclose
20
20
 
21
+ try:
22
+ from scipy.sparse import csr_array as csr_class
23
+ except ImportError:
24
+ from scipy.sparse import csr_matrix as csr_class
25
+
21
26
  from onedal.tests.utils._dataframes_support import (
22
27
  _as_numpy,
23
28
  _convert_to_dataframe,
@@ -91,3 +96,29 @@ def test_sklearnex_import_nusvr(dataframe, queue):
91
96
  _as_numpy(svc.dual_coef_), [[-1.0, 0.611111, 1.0, -0.611111]], rtol=1e-3
92
97
  )
93
98
  assert_allclose(_as_numpy(svc.support_), [1, 2, 3, 5])
99
+
100
+
101
+ # https://github.com/uxlfoundation/scikit-learn-intelex/issues/1880
102
+ def test_works_with_unsorted_indices():
103
+ from sklearnex.svm import SVC
104
+
105
+ X = csr_class(
106
+ (
107
+ np.array(
108
+ [0.44943642, 0.6316672, 0.6316672, 0.44943642, 0.6316672, 0.6316672]
109
+ ),
110
+ np.array([1, 4, 3, 1, 2, 0], dtype=np.int32),
111
+ np.array([0, 3, 6], dtype=np.int32),
112
+ ),
113
+ shape=(2, 5),
114
+ )
115
+ y = np.array([1, 0])
116
+ X_test_single = np.array([[1, 0, 0, 0, 0]], dtype=np.float64)
117
+ X_test_multi = np.array([[1, 0, 0, 0, 0], [1, 0, 0, 0, 0]], dtype=np.float64)
118
+ model = SVC(probability=True).fit(X, y)
119
+ pred_single = model.predict_proba(X_test_single)
120
+ pred_multi = model.predict_proba(X_test_multi)[0]
121
+ np.testing.assert_array_equal(
122
+ pred_single.reshape(-1),
123
+ pred_multi.reshape(-1),
124
+ )
@@ -52,7 +52,6 @@ TARGET_OFFLOAD_ALLOWED_LOCATIONS = [
52
52
  ]
53
53
 
54
54
  _DESIGN_RULE_VIOLATIONS = {
55
- "PCA-fit_transform-call_validate_data": "calls both 'fit' and 'transform'",
56
55
  "IncrementalEmpiricalCovariance-score-call_validate_data": "must call clone of itself",
57
56
  "SVC(probability=True)-fit-call_validate_data": "SVC fit can use sklearn estimator",
58
57
  "NuSVC(probability=True)-fit-call_validate_data": "NuSVC fit can use sklearn estimator",
@@ -15,6 +15,8 @@
15
15
  # ==============================================================================
16
16
 
17
17
  import logging
18
+ from contextlib import nullcontext
19
+ from unittest.mock import patch
18
20
 
19
21
  import numpy as np
20
22
  import pytest
@@ -160,6 +162,11 @@ def test_fallback_to_host(caplog):
160
162
  from sklearnex._device_offload import dispatch
161
163
  from sklearnex._utils import PatchingConditionsChain
162
164
 
165
+ # This is done due to the use of name mangling in _sycl_queue_manager which
166
+ # doesn't operate in classes directly. This impacts sklearnex's ``dispatch``
167
+ # routine, which expects class methods rather than instance methods.
168
+ is_fallback = lambda: QM.__global_queue == QM.__fallback_queue
169
+
163
170
  class _Estimator:
164
171
  def _onedal_gpu_supported(self, method_name, *data):
165
172
  patching_status = PatchingConditionsChain("")
@@ -172,11 +179,7 @@ def test_fallback_to_host(caplog):
172
179
 
173
180
  def _onedal_test(self, *args, queue=None):
174
181
  if args[0] == "cpu":
175
- assert (
176
- queue is None
177
- and QM.__global_queue == QM.__fallback_queue
178
- and QM.get_global_queue() is None
179
- )
182
+ assert queue is None and is_fallback() and QM.get_global_queue() is None
180
183
  elif args[0] == "gpu":
181
184
  assert queue is not None and QM.get_global_queue() is not None
182
185
 
@@ -194,7 +197,7 @@ def test_fallback_to_host(caplog):
194
197
  dispatch(
195
198
  est,
196
199
  "test",
197
- {"onedal": est._onedal_test, "sklearn": None},
200
+ {"onedal": _Estimator._onedal_test, "sklearn": None},
198
201
  "cpu" if fallback else "gpu",
199
202
  )
200
203
 
@@ -205,3 +208,49 @@ def test_fallback_to_host(caplog):
205
208
  in caplog.messages[start:]
206
209
  )
207
210
  start = len(caplog.messages)
211
+
212
+
213
+ def test_other_device_fallback():
214
+ # force a fallback to cpu with direct use of dispatch and PatchingConditionsChain
215
+ # it should complete with allow_fallback_to_host. The data should be moved to cpu
216
+ # by calling ``to_device``.
217
+ from onedal.utils import _sycl_queue_manager as QM
218
+ from sklearnex._device_offload import dispatch
219
+ from sklearnex._utils import PatchingConditionsChain
220
+
221
+ class FakeCUDA:
222
+ def __init__(self, data):
223
+ self.__data = data
224
+
225
+ def to_device(self, *args):
226
+ return self.__data
227
+
228
+ def __dlpack_device__(self):
229
+ return (2, 0)
230
+
231
+ class _CPUEstimator:
232
+ def _onedal_cpu_supported(self, method_name, *data):
233
+ patching_status = PatchingConditionsChain("")
234
+ return patching_status
235
+
236
+ def _onedal_test(self, data, queue=None):
237
+ assert queue is None and QM.get_global_queue() is None
238
+ assert isinstance(data, np.ndarray)
239
+
240
+ est = _CPUEstimator()
241
+ err_msg = "Device support is not implemented for the supplied data type."
242
+ data = FakeCUDA(np.eye(5, 8))
243
+
244
+ for fallback in [True, False]:
245
+ ctx = nullcontext() if fallback else pytest.raises(RuntimeError, match=err_msg)
246
+ _mock = patch.object(FakeCUDA, "to_device", wraps=data.to_device)
247
+ with sklearnex.config_context(allow_fallback_to_host=fallback), ctx, _mock as spy:
248
+ dispatch(
249
+ est,
250
+ "test",
251
+ {"onedal": _CPUEstimator._onedal_test, "sklearn": None},
252
+ data,
253
+ )
254
+ if fallback:
255
+ # verify ``FakeCUDA.to_device`` was used
256
+ spy.assert_called_once_with("cpu")
@@ -0,0 +1,111 @@
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 sklearn.datasets import make_classification, make_regression
20
+
21
+ from daal4py.sklearn._utils import daal_check_version
22
+ from sklearnex.decomposition import PCA
23
+ from sklearnex.ensemble import RandomForestClassifier
24
+ from sklearnex.linear_model import IncrementalLinearRegression, LinearRegression
25
+ from sklearnex.preview.covariance import EmpiricalCovariance
26
+
27
+ # Table of estimators to test hyperparameter reset functionality.
28
+ # Each row contains the following elements:
29
+ #
30
+ # [estimator, estimator_type, operation, hyperparameter_name, non_default_value]
31
+ #
32
+ # estimator: the estimator class to test. For example, EmpiricalCovariance.
33
+ # estimator_type: the type of operation to get.
34
+ # Possible values: "compute", "regression", "classification".
35
+ # operation: the argument used in get_hyperparameters() and reset_hyperparameters()
36
+ # methods of the estimator.
37
+ # hyperparameter_name: the name of the hyperparameter to test.
38
+ # non_default_value: the value to set for the hyperparameter before resetting it.
39
+ # This value should be different from the default value of the hyperparameter.
40
+ test_estimators = [
41
+ [EmpiricalCovariance, "compute", "fit", "cpu_macro_block", 10],
42
+ [IncrementalLinearRegression, "regression", "fit", "cpu_macro_block", 10],
43
+ [IncrementalLinearRegression, "regression", "partial_fit", "cpu_macro_block", 10],
44
+ [LinearRegression, "regression", "fit", "cpu_macro_block", 10],
45
+ ]
46
+
47
+ if daal_check_version((2024, "P", 300)):
48
+ test_estimators.append(
49
+ [RandomForestClassifier, "classification", "predict", "block_size", 8]
50
+ )
51
+
52
+ if daal_check_version((2025, "P", 700)):
53
+ test_estimators.append([EmpiricalCovariance, "compute", "fit", "cpu_grain_size", 2])
54
+ test_estimators.append([PCA, "compute", "fit", "cpu_macro_block", 10])
55
+
56
+
57
+ def call_estimator(estimator_object, estimator_type, op, X, y=None):
58
+ if estimator_type == "compute":
59
+ return estimator_object.fit(X)
60
+ elif estimator_type == "regression" or estimator_type == "classification":
61
+ if y is None:
62
+ raise ValueError("y must be provided for regression or classification tasks")
63
+ if op == "partial_fit":
64
+ result = estimator_object.partial_fit(X, y)
65
+ else:
66
+ result = estimator_object.fit(X, y)
67
+ if op == "predict":
68
+ return estimator_object.predict(X)
69
+ else:
70
+ return result
71
+ else:
72
+ raise ValueError(f"Unknown estimator type: {estimator_type}")
73
+
74
+
75
+ def test_reset_hyperparameters():
76
+ for estimator, estimator_type, op, param_name, non_default_value in test_estimators:
77
+
78
+ if estimator_type == "compute":
79
+ X = np.random.rand(100, 5)
80
+ y = None
81
+ elif estimator_type == "regression":
82
+ X, y = make_regression(n_features=5, n_informative=5, random_state=777)
83
+ elif estimator_type == "classification":
84
+ X, y = make_classification(n_features=5, random_state=777)
85
+
86
+ # Create an instance of the estimator
87
+ est_object = estimator()
88
+
89
+ # Fit the model to the data with the default hyperparameters
90
+ call_estimator(est_object, estimator_type, op, X, y)
91
+
92
+ # Get the hyperparameters before resetting
93
+ hparams_before = estimator.get_hyperparameters(op)
94
+ default_hparam_value = getattr(hparams_before, param_name)
95
+
96
+ # Fit the model to the data with non-default hyperparameters
97
+ setattr(hparams_before, param_name, non_default_value)
98
+ call_estimator(est_object, estimator_type, op, X, y)
99
+
100
+ # Check if the hyperparameters have been set to non-default values
101
+ assert getattr(hparams_before, param_name) == non_default_value
102
+ assert getattr(estimator.get_hyperparameters(op), param_name) == non_default_value
103
+
104
+ # Reset the hyperparameters
105
+ estimator.reset_hyperparameters(op)
106
+ call_estimator(est_object, estimator_type, op, X, y)
107
+
108
+ # Check if the hyperparameters have been reset to default values
109
+ assert (
110
+ getattr(estimator.get_hyperparameters(op), param_name) == default_hparam_value
111
+ )
@@ -273,7 +273,7 @@ def _kfold_function_template(
273
273
 
274
274
  @pytest.mark.parametrize("order", ["F", "C"])
275
275
  @pytest.mark.parametrize(
276
- "dataframe,queue", get_dataframes_and_queues("numpy,pandas,dpctl", "cpu")
276
+ "dataframe,queue", get_dataframes_and_queues("numpy,pandas", "cpu")
277
277
  )
278
278
  @pytest.mark.parametrize("estimator", CPU_ESTIMATORS.keys())
279
279
  @pytest.mark.parametrize("data_shape", data_shapes)
@@ -27,7 +27,7 @@ import numpy.random as nprnd
27
27
  import pytest
28
28
  from sklearn.base import BaseEstimator
29
29
 
30
- from daal4py.sklearn._utils import sklearn_check_version
30
+ from daal4py.sklearn._utils import _package_check_version, sklearn_check_version
31
31
  from onedal.tests.utils._dataframes_support import (
32
32
  _convert_to_dataframe,
33
33
  get_dataframes_and_queues,
@@ -168,25 +168,29 @@ def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator,
168
168
  )
169
169
  elif method and not hasattr(est, method):
170
170
  pytest.skip(f"sklearn available_if prevents testing {estimator}.{method}")
171
- elif dataframe == "array_api" and estimator == "PCA" and "score" in method:
172
- pytest.skip(
173
- f"PCA.{method} has sklearn array_api support which breaks with array_api_dispatching"
174
- )
175
- elif (
176
- dataframe == "array_api"
177
- and not sklearn_check_version("1.3")
178
- and estimator == "IncrementalEmpiricalCovariance"
179
- and method == "score"
180
- ):
181
- pytest.skip(
182
- f"array checking in sklearn <1.3 does not fully support array_api inputs, causes sklearnex-only estimator failure"
183
- )
184
171
 
185
172
  if dataframe == "array_api":
186
173
  # as array_api dispatching is experimental, sklearn support isn't guaranteed.
187
174
  # the infrastructure from sklearn that sklearnex depends on is also susceptible
188
175
  # to failure. In this case compare to sklearn for the same failure. By design
189
176
  # the patching of sklearn should act similarly. Technically this is conformance.
177
+ if (
178
+ (estimator == "PCA" and "transform" in method)
179
+ or (estimator == "IncrementalEmpiricalCovariance" and method == "mahalanobis")
180
+ ) and not _package_check_version("2.0", np.__version__):
181
+ # issue not to be observed with normal numpy usage
182
+ pytest.skip(
183
+ f"numpy backend does not properly handle the __dlpack__ attribute."
184
+ )
185
+ elif (
186
+ not sklearn_check_version("1.3")
187
+ and estimator == "IncrementalEmpiricalCovariance"
188
+ and method == "score"
189
+ ):
190
+ pytest.skip(
191
+ f"array checking in sklearn <1.3 does not fully support array_api inputs, causes sklearnex-only estimator failure"
192
+ )
193
+
190
194
  with config_context(array_api_dispatch=True):
191
195
  try:
192
196
  _check_estimator_patching(caplog, dataframe, queue, dtype, est, method)
@@ -398,25 +398,13 @@ def _get_processor_info():
398
398
  class DummyEstimator(BaseEstimator):
399
399
 
400
400
  def fit(self, X, y=None):
401
- sua_iface, xp, _ = _get_sycl_namespace(X)
402
401
  X_table = to_table(X)
403
402
  y_table = to_table(y)
404
403
  # The presence of the fitted attributes (ending with a trailing
405
404
  # underscore) is required for the correct check. The cleanup of
406
405
  # the memory will occur at the estimator instance deletion.
407
- if sua_iface:
408
- self.x_attr_ = from_table(
409
- X_table, sua_iface=sua_iface, sycl_queue=X.sycl_queue, xp=xp
410
- )
411
- self.y_attr_ = from_table(
412
- y_table,
413
- sua_iface=sua_iface,
414
- sycl_queue=X.sycl_queue if y is None else y.sycl_queue,
415
- xp=xp,
416
- )
417
- else:
418
- self.x_attr_ = from_table(X_table)
419
- self.y_attr_ = from_table(y_table)
406
+ self.x_attr_ = from_table(X_table, like=X)
407
+ self.y_attr_ = from_table(y_table, like=X if y is None else y)
420
408
 
421
409
  return self
422
410
 
@@ -424,13 +412,7 @@ class DummyEstimator(BaseEstimator):
424
412
  # Checks if the estimator is fitted by verifying the presence of
425
413
  # fitted attributes (ending with a trailing underscore).
426
414
  check_is_fitted(self)
427
- sua_iface, xp, _ = _get_sycl_namespace(X)
428
415
  X_table = to_table(X)
429
- if sua_iface:
430
- returned_X = from_table(
431
- X_table, sua_iface=sua_iface, sycl_queue=X.sycl_queue, xp=xp
432
- )
433
- else:
434
- returned_X = from_table(X_table)
416
+ returned_X = from_table(X_table, like=X)
435
417
 
436
418
  return returned_X