scikit-learn-intelex 2025.1.0__py39-none-win_amd64.whl → 2025.2.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 (270) hide show
  1. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp39-win_amd64.pyd +0 -0
  3. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +6 -3
  4. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_device_offload.py +10 -28
  5. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  6. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  7. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +5 -5
  8. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +34 -19
  9. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +16 -72
  10. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +100 -17
  11. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  12. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +5 -10
  13. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +9 -16
  14. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +7 -10
  15. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_policy.py +0 -4
  16. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +128 -0
  17. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +6 -9
  18. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +41 -26
  19. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +69 -1
  20. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  21. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +10 -43
  22. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +83 -22
  23. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +42 -32
  24. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +7 -7
  25. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +87 -0
  26. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +20 -11
  27. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +86 -52
  28. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +19 -23
  29. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +9 -11
  30. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +70 -25
  31. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +64 -0
  32. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +13 -4
  33. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +21 -25
  34. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +3 -4
  35. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/svm.py +9 -9
  36. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  37. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/validation.py +38 -14
  38. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_utils.py +19 -8
  39. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +39 -8
  40. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +7 -0
  41. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +171 -36
  42. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +79 -28
  43. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +2 -0
  44. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -2
  45. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +7 -0
  46. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +50 -0
  47. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -10
  48. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +23 -18
  49. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +25 -12
  50. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +7 -0
  51. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +1 -1
  52. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +11 -11
  53. {scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex}/linear_model/ridge.py +390 -424
  54. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +65 -5
  55. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +61 -0
  56. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +11 -36
  57. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  58. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +250 -0
  59. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  60. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +1 -1
  61. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +12 -1
  62. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +70 -0
  63. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +3 -3
  64. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +6 -7
  65. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +3 -2
  66. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +16 -14
  67. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +130 -29
  68. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +43 -0
  69. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +7 -39
  70. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -11
  71. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -8
  72. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -2
  73. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +4 -0
  74. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +65 -0
  75. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
  76. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  77. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +208 -0
  78. {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/METADATA +2 -2
  79. scikit_learn_intelex-2025.2.0.dist-info/RECORD +259 -0
  80. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/daal4py/_daal4py.cp39-win_amd64.pyd +0 -0
  81. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp39-win_amd64.pyd +0 -0
  82. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-win_amd64.pyd +0 -0
  83. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -19
  84. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -24
  85. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
  86. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -19
  87. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -102
  88. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -19
  89. scikit_learn_intelex-2025.1.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -89
  90. scikit_learn_intelex-2025.1.0.dist-info/RECORD +0 -257
  91. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  92. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  93. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -0
  94. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +0 -0
  95. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mb/model_builders.py +0 -0
  96. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  97. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
  98. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  99. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  100. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
  101. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  102. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  103. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  104. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  105. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
  106. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
  107. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  108. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
  109. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  110. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  111. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  112. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  113. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  114. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  115. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  116. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  117. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -0
  118. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  119. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  120. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  121. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  122. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
  123. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  124. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
  125. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  126. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  127. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  128. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  129. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  130. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
  131. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  132. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  133. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  134. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  135. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  136. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
  137. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
  138. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
  139. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  140. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  141. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  142. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
  143. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  144. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
  145. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  146. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  147. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
  148. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  149. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  150. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  151. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  152. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  153. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_base.py +0 -0
  154. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  155. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  156. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -0
  157. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +0 -0
  158. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -0
  159. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  160. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  161. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  162. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  163. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  164. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  165. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  166. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  167. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  168. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  169. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  170. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  171. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
  172. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
  173. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  174. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
  175. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
  176. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
  177. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
  178. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
  179. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
  180. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  181. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +0 -0
  182. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/__init__.py +0 -0
  183. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +0 -0
  184. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -0
  185. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  186. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  187. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
  188. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +0 -0
  189. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  190. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  191. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
  192. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  193. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  194. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  195. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  196. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -0
  197. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  198. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  199. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  200. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +0 -0
  201. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  202. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  203. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  204. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
  205. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
  206. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  207. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
  208. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  209. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  210. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  211. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  212. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  213. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  214. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  215. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  216. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
  217. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +0 -0
  218. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  219. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  220. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  221. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  222. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  223. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
  224. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  225. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  226. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  227. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  228. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  229. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  231. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  232. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  233. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  234. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  235. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  236. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
  237. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
  238. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  240. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  241. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
  242. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
  243. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  244. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  245. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
  246. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  248. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  249. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  250. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
  251. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
  252. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  253. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  254. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
  255. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  256. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +0 -0
  257. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
  258. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  259. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
  260. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  261. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  262. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
  263. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  264. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  265. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  266. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  267. {scikit_learn_intelex-2025.1.0.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  268. {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/LICENSE.txt +0 -0
  269. {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/WHEEL +0 -0
  270. {scikit_learn_intelex-2025.1.0.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/top_level.txt +0 -0
@@ -19,7 +19,7 @@ import numpy as np
19
19
  from daal4py.sklearn._utils import get_dtype
20
20
 
21
21
  from ..common.hyperparameters import get_hyperparameters
22
- from ..datatypes import _convert_to_supported, from_table, to_table
22
+ from ..datatypes import from_table, to_table
23
23
  from ..utils import _check_X_y, _num_features
24
24
  from .linear_model import BaseLinearRegression
25
25
 
@@ -47,10 +47,22 @@ class IncrementalLinearRegression(BaseLinearRegression):
47
47
  self._reset()
48
48
 
49
49
  def _reset(self):
50
+ self._need_to_finalize = False
50
51
  self._partial_result = self._get_backend(
51
52
  "linear_model", "regression", "partial_train_result"
52
53
  )
53
54
 
55
+ def __getstate__(self):
56
+ # Since finalize_fit can't be dispatched without directly provided queue
57
+ # and the dispatching policy can't be serialized, the computation is finalized
58
+ # here and the policy is not saved in serialized data.
59
+
60
+ self.finalize_fit()
61
+ data = self.__dict__.copy()
62
+ data.pop("_queue", None)
63
+
64
+ return data
65
+
54
66
  def partial_fit(self, X, y, queue=None):
55
67
  """
56
68
  Computes partial data for linear regression
@@ -77,20 +89,19 @@ class IncrementalLinearRegression(BaseLinearRegression):
77
89
  self._queue = queue
78
90
  policy = self._get_policy(queue, X)
79
91
 
80
- X, y = _convert_to_supported(policy, X, y)
81
-
82
- if not hasattr(self, "_dtype"):
83
- self._dtype = get_dtype(X)
84
- self._params = self._get_onedal_params(self._dtype)
85
-
86
- y = np.asarray(y, dtype=self._dtype)
87
-
88
92
  X, y = _check_X_y(
89
93
  X, y, dtype=[np.float64, np.float32], accept_2d_y=True, force_all_finite=False
90
94
  )
95
+ y = np.asarray(y, dtype=X.dtype)
91
96
 
92
97
  self.n_features_in_ = _num_features(X, fallback_1d=True)
93
- X_table, y_table = to_table(X, y)
98
+
99
+ X_table, y_table = to_table(X, y, queue=queue)
100
+
101
+ if not hasattr(self, "_dtype"):
102
+ self._dtype = X_table.dtype
103
+ self._params = self._get_onedal_params(self._dtype)
104
+
94
105
  hparams = get_hyperparameters("linear_regression", "train")
95
106
  if hparams is not None and not hparams.is_default:
96
107
  self._partial_result = module.partial_train(
@@ -106,6 +117,9 @@ class IncrementalLinearRegression(BaseLinearRegression):
106
117
  policy, self._params, self._partial_result, X_table, y_table
107
118
  )
108
119
 
120
+ self._need_to_finalize = True
121
+ return self
122
+
109
123
  def finalize_fit(self, queue=None):
110
124
  """
111
125
  Finalizes linear regression computation and obtains coefficients
@@ -122,27 +136,30 @@ class IncrementalLinearRegression(BaseLinearRegression):
122
136
  Returns the instance itself.
123
137
  """
124
138
 
125
- if queue is not None:
126
- policy = self._get_policy(queue)
127
- else:
128
- policy = self._get_policy(self._queue)
129
-
130
- module = self._get_backend("linear_model", "regression")
131
- hparams = get_hyperparameters("linear_regression", "train")
132
- if hparams is not None and not hparams.is_default:
133
- result = module.finalize_train(
134
- policy, self._params, hparams.backend, self._partial_result
139
+ if self._need_to_finalize:
140
+ if queue is not None:
141
+ policy = self._get_policy(queue)
142
+ else:
143
+ policy = self._get_policy(self._queue)
144
+
145
+ module = self._get_backend("linear_model", "regression")
146
+ hparams = get_hyperparameters("linear_regression", "train")
147
+ if hparams is not None and not hparams.is_default:
148
+ result = module.finalize_train(
149
+ policy, self._params, hparams.backend, self._partial_result
150
+ )
151
+ else:
152
+ result = module.finalize_train(policy, self._params, self._partial_result)
153
+
154
+ self._onedal_model = result.model
155
+
156
+ packed_coefficients = from_table(result.model.packed_coefficients)
157
+ self.coef_, self.intercept_ = (
158
+ packed_coefficients[:, 1:].squeeze(),
159
+ packed_coefficients[:, 0].squeeze(),
135
160
  )
136
- else:
137
- result = module.finalize_train(policy, self._params, self._partial_result)
138
161
 
139
- self._onedal_model = result.model
140
-
141
- packed_coefficients = from_table(result.model.packed_coefficients)
142
- self.coef_, self.intercept_ = (
143
- packed_coefficients[:, 1:].squeeze(),
144
- packed_coefficients[:, 0].squeeze(),
145
- )
162
+ self._need_to_finalize = False
146
163
 
147
164
  return self
148
165
 
@@ -171,15 +188,26 @@ class IncrementalRidge(BaseLinearRegression):
171
188
  """
172
189
 
173
190
  def __init__(self, alpha=1.0, fit_intercept=True, copy_X=False, algorithm="norm_eq"):
174
- module = self._get_backend("linear_model", "regression")
175
191
  super().__init__(
176
192
  fit_intercept=fit_intercept, alpha=alpha, copy_X=copy_X, algorithm=algorithm
177
193
  )
178
- self._partial_result = module.partial_train_result()
194
+ self._reset()
179
195
 
180
196
  def _reset(self):
181
197
  module = self._get_backend("linear_model", "regression")
182
198
  self._partial_result = module.partial_train_result()
199
+ self._need_to_finalize = False
200
+
201
+ def __getstate__(self):
202
+ # Since finalize_fit can't be dispatched without directly provided queue
203
+ # and the dispatching policy can't be serialized, the computation is finalized
204
+ # here and the policy is not saved in serialized data.
205
+
206
+ self.finalize_fit()
207
+ data = self.__dict__.copy()
208
+ data.pop("_queue", None)
209
+
210
+ return data
183
211
 
184
212
  def partial_fit(self, X, y, queue=None):
185
213
  """
@@ -207,24 +235,26 @@ class IncrementalRidge(BaseLinearRegression):
207
235
  self._queue = queue
208
236
  policy = self._get_policy(queue, X)
209
237
 
210
- X, y = _convert_to_supported(policy, X, y)
211
-
212
- if not hasattr(self, "_dtype"):
213
- self._dtype = get_dtype(X)
214
- self._params = self._get_onedal_params(self._dtype)
215
-
216
- y = np.asarray(y, dtype=self._dtype)
217
-
218
238
  X, y = _check_X_y(
219
239
  X, y, dtype=[np.float64, np.float32], accept_2d_y=True, force_all_finite=False
220
240
  )
241
+ y = np.asarray(y, dtype=X.dtype)
221
242
 
222
243
  self.n_features_in_ = _num_features(X, fallback_1d=True)
223
- X_table, y_table = to_table(X, y)
244
+
245
+ X_table, y_table = to_table(X, y, queue=queue)
246
+
247
+ if not hasattr(self, "_dtype"):
248
+ self._dtype = X_table.dtype
249
+ self._params = self._get_onedal_params(self._dtype)
250
+
224
251
  self._partial_result = module.partial_train(
225
252
  policy, self._params, self._partial_result, X_table, y_table
226
253
  )
227
254
 
255
+ self._need_to_finalize = True
256
+ return self
257
+
228
258
  def finalize_fit(self, queue=None):
229
259
  """
230
260
  Finalizes ridge regression computation and obtains coefficients
@@ -240,19 +270,23 @@ class IncrementalRidge(BaseLinearRegression):
240
270
  self : object
241
271
  Returns the instance itself.
242
272
  """
243
- module = self._get_backend("linear_model", "regression")
244
- if queue is not None:
245
- policy = self._get_policy(queue)
246
- else:
247
- policy = self._get_policy(self._queue)
248
- result = module.finalize_train(policy, self._params, self._partial_result)
249
273
 
250
- self._onedal_model = result.model
274
+ if self._need_to_finalize:
275
+ module = self._get_backend("linear_model", "regression")
276
+ if queue is not None:
277
+ policy = self._get_policy(queue)
278
+ else:
279
+ policy = self._get_policy(self._queue)
280
+ result = module.finalize_train(policy, self._params, self._partial_result)
251
281
 
252
- packed_coefficients = from_table(result.model.packed_coefficients)
253
- self.coef_, self.intercept_ = (
254
- packed_coefficients[:, 1:].squeeze(),
255
- packed_coefficients[:, 0].squeeze(),
256
- )
282
+ self._onedal_model = result.model
283
+
284
+ packed_coefficients = from_table(result.model.packed_coefficients)
285
+ self.coef_, self.intercept_ = (
286
+ packed_coefficients[:, 1:].squeeze(),
287
+ packed_coefficients[:, 0].squeeze(),
288
+ )
289
+
290
+ self._need_to_finalize = False
257
291
 
258
292
  return self
@@ -24,7 +24,7 @@ from daal4py.sklearn._utils import daal_check_version, get_dtype, make2d
24
24
  from ..common._base import BaseEstimator
25
25
  from ..common._estimator_checks import _check_is_fitted
26
26
  from ..common.hyperparameters import get_hyperparameters
27
- from ..datatypes import _convert_to_supported, from_table, to_table
27
+ from ..datatypes import from_table, to_table
28
28
  from ..utils import _check_array, _check_n_features, _check_X_y, _num_features
29
29
 
30
30
 
@@ -43,7 +43,7 @@ class BaseLinearRegression(BaseEstimator, metaclass=ABCMeta):
43
43
  def _get_onedal_params(self, dtype=np.float32):
44
44
  intercept = "intercept|" if self.fit_intercept else ""
45
45
  params = {
46
- "fptype": "float" if dtype == np.float32 else "double",
46
+ "fptype": dtype,
47
47
  "method": self.algorithm,
48
48
  "intercept": self.fit_intercept,
49
49
  "result_option": (intercept + "coefficients"),
@@ -91,9 +91,9 @@ class BaseLinearRegression(BaseEstimator, metaclass=ABCMeta):
91
91
  if self.fit_intercept:
92
92
  packed_coefficients[:, 0][:, np.newaxis] = intercept
93
93
 
94
- packed_coefficients = _convert_to_supported(policy, packed_coefficients)
95
-
96
- model.packed_coefficients = to_table(packed_coefficients)
94
+ model.packed_coefficients = to_table(
95
+ packed_coefficients, queue=getattr(policy, "_queue", None)
96
+ )
97
97
 
98
98
  self._onedal_model = model
99
99
 
@@ -131,11 +131,9 @@ class BaseLinearRegression(BaseEstimator, metaclass=ABCMeta):
131
131
  else:
132
132
  model = self._create_model(policy)
133
133
 
134
- X = make2d(X)
135
- X = _convert_to_supported(policy, X)
136
- params = self._get_onedal_params(get_dtype(X))
134
+ X_table = to_table(X, queue=queue)
135
+ params = self._get_onedal_params(X_table.dtype)
137
136
 
138
- X_table = to_table(X)
139
137
  result = module.infer(policy, params, model, X_table)
140
138
  y = from_table(result.responses)
141
139
 
@@ -211,9 +209,8 @@ class LinearRegression(BaseLinearRegression):
211
209
 
212
210
  self.n_features_in_ = _num_features(X, fallback_1d=True)
213
211
 
214
- X, y = _convert_to_supported(policy, X, y)
215
- params = self._get_onedal_params(get_dtype(X))
216
- X_table, y_table = to_table(X, y)
212
+ X_table, y_table = to_table(X, y, queue=queue)
213
+ params = self._get_onedal_params(X_table.dtype)
217
214
 
218
215
  hparams = get_hyperparameters("linear_regression", "train")
219
216
  if hparams is not None and not hparams.is_default:
@@ -293,15 +290,15 @@ class Ridge(BaseLinearRegression):
293
290
  """
294
291
  module = self._get_backend("linear_model", "regression")
295
292
 
296
- X = _check_array(
297
- X,
298
- dtype=[np.float64, np.float32],
299
- force_all_finite=False,
300
- ensure_2d=False,
301
- copy=self.copy_X,
302
- )
293
+ if not isinstance(X, np.ndarray):
294
+ X = np.asarray(X)
303
295
 
304
- y = np.asarray(y).astype(dtype=get_dtype(X))
296
+ dtype = get_dtype(X)
297
+ if dtype not in [np.float32, np.float64]:
298
+ dtype = np.float64
299
+ X = X.astype(dtype, copy=self.copy_X)
300
+
301
+ y = np.asarray(y).astype(dtype=dtype)
305
302
 
306
303
  X, y = _check_X_y(X, y, force_all_finite=False, accept_2d_y=True)
307
304
 
@@ -309,9 +306,8 @@ class Ridge(BaseLinearRegression):
309
306
 
310
307
  self.n_features_in_ = _num_features(X, fallback_1d=True)
311
308
 
312
- X, y = _convert_to_supported(policy, X, y)
313
- params = self._get_onedal_params(get_dtype(X))
314
- X_table, y_table = to_table(X, y)
309
+ X_table, y_table = to_table(X, y, queue=queue)
310
+ params = self._get_onedal_params(X.dtype)
315
311
 
316
312
  result = module.train(policy, params, X_table, y_table)
317
313
  self._onedal_model = result.model
@@ -24,7 +24,7 @@ from daal4py.sklearn._utils import daal_check_version, get_dtype, make2d
24
24
  from ..common._base import BaseEstimator as onedal_BaseEstimator
25
25
  from ..common._estimator_checks import _check_is_fitted
26
26
  from ..common._mixin import ClassifierMixin
27
- from ..datatypes import _convert_to_supported, from_table, to_table
27
+ from ..datatypes import from_table, to_table
28
28
  from ..utils import (
29
29
  _check_array,
30
30
  _check_n_features,
@@ -48,7 +48,7 @@ class BaseLogisticRegression(onedal_BaseEstimator, metaclass=ABCMeta):
48
48
  def _get_onedal_params(self, is_csr, dtype=np.float32):
49
49
  intercept = "intercept|" if self.fit_intercept else ""
50
50
  return {
51
- "fptype": "float" if dtype == np.float32 else "double",
51
+ "fptype": dtype,
52
52
  "method": "sparse" if is_csr else self.algorithm,
53
53
  "intercept": self.fit_intercept,
54
54
  "tol": self.tol,
@@ -83,9 +83,8 @@ class BaseLogisticRegression(onedal_BaseEstimator, metaclass=ABCMeta):
83
83
  y = y.astype(dtype=np.int32)
84
84
 
85
85
  policy = self._get_policy(queue, X, y)
86
- X, y = _convert_to_supported(policy, X, y)
87
- params = self._get_onedal_params(is_csr, get_dtype(X))
88
- X_table, y_table = to_table(X, y)
86
+ X_table, y_table = to_table(X, y, queue=queue)
87
+ params = self._get_onedal_params(is_csr, X_table.dtype)
89
88
 
90
89
  result = module.train(policy, params, X_table, y_table)
91
90
 
@@ -144,9 +143,9 @@ class BaseLogisticRegression(onedal_BaseEstimator, metaclass=ABCMeta):
144
143
  if self.fit_intercept:
145
144
  packed_coefficients[:, 0][:, np.newaxis] = intercept
146
145
 
147
- packed_coefficients = _convert_to_supported(policy, packed_coefficients)
148
-
149
- m.packed_coefficients = to_table(packed_coefficients)
146
+ m.packed_coefficients = to_table(
147
+ packed_coefficients, queue=getattr(policy, "_queue", None)
148
+ )
150
149
 
151
150
  self._onedal_model = m
152
151
 
@@ -175,10 +174,9 @@ class BaseLogisticRegression(onedal_BaseEstimator, metaclass=ABCMeta):
175
174
  else:
176
175
  model = self._create_model(module, policy)
177
176
 
178
- X = _convert_to_supported(policy, X)
179
- params = self._get_onedal_params(is_csr, get_dtype(X))
177
+ X_table = to_table(X, queue=queue)
178
+ params = self._get_onedal_params(is_csr, X.dtype)
180
179
 
181
- X_table = to_table(X)
182
180
  result = module.infer(policy, params, model, X_table)
183
181
  return result
184
182
 
@@ -16,11 +16,12 @@
16
16
 
17
17
  import numpy as np
18
18
  import pytest
19
- from numpy.testing import assert_allclose, assert_array_equal
19
+ from numpy.testing import assert_allclose
20
20
  from sklearn.datasets import load_diabetes
21
21
  from sklearn.metrics import mean_squared_error
22
22
  from sklearn.model_selection import train_test_split
23
23
 
24
+ from onedal.datatypes import from_table
24
25
  from onedal.linear_model import IncrementalLinearRegression
25
26
  from onedal.tests.utils._device_selection import get_queues
26
27
 
@@ -43,29 +44,6 @@ def test_diabetes(queue, dtype):
43
44
  assert mean_squared_error(y_test, y_pred) < 2396
44
45
 
45
46
 
46
- @pytest.mark.parametrize("queue", get_queues())
47
- @pytest.mark.parametrize("dtype", [np.float32, np.float64])
48
- @pytest.mark.skip(reason="pickling not implemented for oneDAL entities")
49
- def test_pickle(queue, dtype):
50
- # TODO Implement pickling for oneDAL entities
51
- X, y = load_diabetes(return_X_y=True)
52
- X, y = X.astype(dtype), y.astype(dtype)
53
- model = IncrementalLinearRegression(fit_intercept=True)
54
- model.partial_fit(X, y, queue=queue)
55
- model.finalize_fit()
56
- expected = model.predict(X, queue=queue)
57
-
58
- import pickle
59
-
60
- dump = pickle.dumps(model)
61
- model2 = pickle.loads(dump)
62
-
63
- assert isinstance(model2, model.__class__)
64
- result = model2.predict(X, queue=queue)
65
-
66
- assert_array_equal(expected, result)
67
-
68
-
69
47
  @pytest.mark.parametrize("queue", get_queues())
70
48
  @pytest.mark.parametrize("num_blocks", [1, 2, 10])
71
49
  @pytest.mark.parametrize("dtype", [np.float32, np.float64])
@@ -92,7 +70,8 @@ def test_full_results(queue, num_blocks, dtype):
92
70
  tol = 5e-3 if model.coef_.dtype == np.float32 else 1e-5
93
71
  else:
94
72
  tol = 3e-3 if model.coef_.dtype == np.float32 else 1e-5
95
- assert_allclose(coef, model.coef_.T, rtol=tol)
73
+ atol = 1e-4 if model.coef_.dtype == np.float32 else 1e-6
74
+ assert_allclose(coef, model.coef_.T, rtol=tol, atol=atol)
96
75
 
97
76
  tol = 3e-3 if model.intercept_.dtype == np.float32 else 1e-5
98
77
  assert_allclose(intercept, model.intercept_, rtol=tol)
@@ -166,3 +145,69 @@ def test_reconstruct_model(queue, dtype):
166
145
 
167
146
  tol = 1e-5 if res.dtype == np.float32 else 1e-7
168
147
  assert_allclose(gtr, res, rtol=tol)
148
+
149
+
150
+ @pytest.mark.parametrize("queue", get_queues())
151
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
152
+ def test_incremental_estimator_pickle(queue, dtype):
153
+ import pickle
154
+
155
+ from onedal.linear_model import IncrementalLinearRegression
156
+
157
+ inclr = IncrementalLinearRegression()
158
+
159
+ # Check that estimator can be serialized without any data.
160
+ dump = pickle.dumps(inclr)
161
+ inclr_loaded = pickle.loads(dump)
162
+ seed = 77
163
+ gen = np.random.default_rng(seed)
164
+ X = gen.uniform(low=-0.3, high=+0.7, size=(10, 10))
165
+ X = X.astype(dtype)
166
+ coef = gen.random(size=(1, 10), dtype=dtype).T
167
+ y = X @ coef
168
+ X_split = np.array_split(X, 2)
169
+ y_split = np.array_split(y, 2)
170
+ inclr.partial_fit(X_split[0], y_split[0], queue=queue)
171
+ inclr_loaded.partial_fit(X_split[0], y_split[0], queue=queue)
172
+
173
+ # inclr.finalize_fit()
174
+
175
+ assert inclr._need_to_finalize == True
176
+ assert inclr_loaded._need_to_finalize == True
177
+
178
+ # Check that estimator can be serialized after partial_fit call.
179
+ dump = pickle.dumps(inclr)
180
+ inclr_loaded = pickle.loads(dump)
181
+
182
+ partial_xtx = from_table(inclr._partial_result.partial_xtx)
183
+ partial_xtx_loaded = from_table(inclr_loaded._partial_result.partial_xtx)
184
+ assert_allclose(partial_xtx, partial_xtx_loaded)
185
+
186
+ partial_xty = from_table(inclr._partial_result.partial_xty)
187
+ partial_xty_loaded = from_table(inclr_loaded._partial_result.partial_xty)
188
+ assert_allclose(partial_xty, partial_xty_loaded)
189
+
190
+ assert inclr._need_to_finalize == False
191
+ # Finalize is called during serialization to make sure partial results are finalized correctly.
192
+ assert inclr_loaded._need_to_finalize == False
193
+
194
+ inclr.partial_fit(X_split[1], y_split[1], queue=queue)
195
+ inclr_loaded.partial_fit(X_split[1], y_split[1], queue=queue)
196
+ assert inclr._need_to_finalize == True
197
+ assert inclr_loaded._need_to_finalize == True
198
+
199
+ dump = pickle.dumps(inclr_loaded)
200
+ inclr_loaded = pickle.loads(dump)
201
+
202
+ assert inclr._need_to_finalize == True
203
+ assert inclr_loaded._need_to_finalize == False
204
+
205
+ inclr.finalize_fit()
206
+ inclr_loaded.finalize_fit()
207
+
208
+ # Check that finalized estimator can be serialized.
209
+ dump = pickle.dumps(inclr_loaded)
210
+ inclr_loaded = pickle.loads(dump)
211
+
212
+ assert_allclose(inclr.coef_, inclr_loaded.coef_, atol=1e-6)
213
+ assert_allclose(inclr.intercept_, inclr_loaded.intercept_, atol=1e-6)
@@ -24,6 +24,7 @@ if daal_check_version((2024, "P", 600)):
24
24
  from sklearn.metrics import mean_squared_error
25
25
  from sklearn.model_selection import train_test_split
26
26
 
27
+ from onedal.datatypes import from_table
27
28
  from onedal.linear_model import IncrementalRidge
28
29
  from onedal.tests.utils._device_selection import get_queues
29
30
 
@@ -105,3 +106,66 @@ if daal_check_version((2024, "P", 600)):
105
106
 
106
107
  tol = 2e-4 if res.dtype == np.float32 else 1e-7
107
108
  assert_allclose(gtr, res, rtol=tol)
109
+
110
+ @pytest.mark.parametrize("queue", get_queues())
111
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
112
+ def test_incremental_estimator_pickle(queue, dtype):
113
+ import pickle
114
+
115
+ model = IncrementalRidge()
116
+
117
+ # Check that estimator can be serialized without any data.
118
+ dump = pickle.dumps(model)
119
+ model_loaded = pickle.loads(dump)
120
+ seed = 77
121
+ gen = np.random.default_rng(seed)
122
+ X = gen.uniform(low=-0.3, high=+0.7, size=(10, 10))
123
+ X = X.astype(dtype)
124
+ coef = gen.random(size=(1, 10), dtype=dtype).T
125
+ y = X @ coef
126
+ X_split = np.array_split(X, 2)
127
+ y_split = np.array_split(y, 2)
128
+ model.partial_fit(X_split[0], y_split[0], queue=queue)
129
+ model_loaded.partial_fit(X_split[0], y_split[0], queue=queue)
130
+
131
+ # model.finalize_fit()
132
+
133
+ assert model._need_to_finalize == True
134
+ assert model_loaded._need_to_finalize == True
135
+
136
+ # Check that estimator can be serialized after partial_fit call.
137
+ dump = pickle.dumps(model)
138
+ model_loaded = pickle.loads(dump)
139
+
140
+ partial_xtx = from_table(model._partial_result.partial_xtx)
141
+ partial_xtx_loaded = from_table(model_loaded._partial_result.partial_xtx)
142
+ assert_allclose(partial_xtx, partial_xtx_loaded)
143
+
144
+ partial_xty = from_table(model._partial_result.partial_xty)
145
+ partial_xty_loaded = from_table(model_loaded._partial_result.partial_xty)
146
+ assert_allclose(partial_xty, partial_xty_loaded)
147
+
148
+ assert model._need_to_finalize == False
149
+ # Finalize is called during serialization to make sure partial results are finalized correctly.
150
+ assert model_loaded._need_to_finalize == False
151
+
152
+ model.partial_fit(X_split[1], y_split[1], queue=queue)
153
+ model_loaded.partial_fit(X_split[1], y_split[1], queue=queue)
154
+ assert model._need_to_finalize == True
155
+ assert model_loaded._need_to_finalize == True
156
+
157
+ dump = pickle.dumps(model_loaded)
158
+ model_loaded = pickle.loads(dump)
159
+
160
+ assert model._need_to_finalize == True
161
+ assert model_loaded._need_to_finalize == False
162
+
163
+ model.finalize_fit()
164
+ model_loaded.finalize_fit()
165
+
166
+ # Check that finalized estimator can be serialized.
167
+ dump = pickle.dumps(model_loaded)
168
+ model_loaded = pickle.loads(dump)
169
+
170
+ assert_allclose(model.coef_, model_loaded.coef_, atol=1e-6)
171
+ assert_allclose(model.intercept_, model_loaded.intercept_, atol=1e-6)
@@ -150,7 +150,7 @@ def test_reconstruct_model(queue, dtype):
150
150
  assert_allclose(gtr, res, rtol=tol)
151
151
 
152
152
 
153
- @pytest.mark.parametrize("queue", get_queues("cpu"))
153
+ @pytest.mark.parametrize("queue", get_queues())
154
154
  @pytest.mark.parametrize("dtype", [np.float32, np.float64])
155
155
  @pytest.mark.parametrize("fit_intercept", [False, True])
156
156
  @pytest.mark.skipif(
@@ -158,6 +158,8 @@ def test_reconstruct_model(queue, dtype):
158
158
  reason="Functionality introduced in later versions",
159
159
  )
160
160
  def test_overdetermined_system(queue, dtype, fit_intercept):
161
+ if queue and queue.sycl_device.is_gpu and not daal_check_version((2025, "P", 200)):
162
+ pytest.skip("Functionality introduced in later versions")
161
163
  gen = np.random.default_rng(seed=123)
162
164
  X = gen.standard_normal(size=(10, 20))
163
165
  y = gen.standard_normal(size=X.shape[0])
@@ -176,7 +178,7 @@ def test_overdetermined_system(queue, dtype, fit_intercept):
176
178
  assert np.all(np.abs(residual) < 1e-6)
177
179
 
178
180
 
179
- @pytest.mark.parametrize("queue", get_queues("cpu"))
181
+ @pytest.mark.parametrize("queue", get_queues())
180
182
  @pytest.mark.parametrize("dtype", [np.float32, np.float64])
181
183
  @pytest.mark.parametrize("fit_intercept", [False, True])
182
184
  @pytest.mark.skipif(
@@ -184,6 +186,8 @@ def test_overdetermined_system(queue, dtype, fit_intercept):
184
186
  reason="Functionality introduced in later versions",
185
187
  )
186
188
  def test_singular_matrix(queue, dtype, fit_intercept):
189
+ if queue and queue.sycl_device.is_gpu and not daal_check_version((2025, "P", 200)):
190
+ pytest.skip("Functionality introduced in later versions")
187
191
  gen = np.random.default_rng(seed=123)
188
192
  X = gen.standard_normal(size=(20, 4))
189
193
  X[:, 2] = X[:, 3]
@@ -212,8 +216,13 @@ def test_singular_matrix(queue, dtype, fit_intercept):
212
216
  reason="Functionality introduced in the versions >= 2025.0",
213
217
  )
214
218
  def test_multioutput_regression(queue, dtype, fit_intercept, problem_type):
215
- if problem_type != "regular" and queue and queue.sycl_device.is_gpu:
216
- pytest.skip("Not yet implemented on GPU")
219
+ if (
220
+ problem_type != "regular"
221
+ and queue
222
+ and queue.sycl_device.is_gpu
223
+ and not daal_check_version((2025, "P", 200))
224
+ ):
225
+ pytest.skip("Functionality introduced in later versions")
217
226
  gen = np.random.default_rng(seed=123)
218
227
  if problem_type == "regular":
219
228
  X = gen.standard_normal(size=(20, 5))