scikit-learn-intelex 2025.0.1__py312-none-win_amd64.whl → 2025.2.0__py312-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (276) hide show
  1. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  3. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +21 -15
  4. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +11 -7
  5. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +9 -5
  6. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +35 -16
  7. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +12 -0
  8. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +91 -10
  9. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +4 -1
  10. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +3 -4
  11. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +6 -3
  12. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_config.py +1 -0
  13. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/_device_offload.py +15 -40
  14. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  15. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  16. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +5 -5
  17. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +34 -19
  18. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +16 -72
  19. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +100 -17
  20. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  21. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +5 -10
  22. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +16 -19
  23. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +7 -10
  24. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_policy.py +0 -4
  25. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +22 -13
  26. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/tests/test_policy.py +4 -3
  27. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +128 -0
  28. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +6 -9
  29. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +41 -26
  30. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +69 -1
  31. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  32. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +121 -0
  33. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +126 -0
  34. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +475 -0
  35. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +42 -32
  36. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +7 -7
  37. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +87 -0
  38. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +30 -14
  39. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +86 -52
  40. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +19 -23
  41. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +9 -11
  42. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +72 -27
  43. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +64 -0
  44. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +110 -0
  45. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +55 -70
  46. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +3 -4
  47. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/svm.py +10 -10
  48. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +8 -0
  49. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +25 -9
  50. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +4 -10
  51. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +19 -24
  52. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +12 -22
  53. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +56 -0
  54. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  55. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/validation.py +52 -20
  56. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__init__.py +1 -0
  57. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_config.py +19 -1
  58. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +17 -12
  59. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/_utils.py +45 -11
  60. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +123 -27
  61. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +65 -34
  62. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +190 -36
  63. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +99 -28
  64. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +12 -7
  65. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +56 -42
  66. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +15 -11
  67. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/conftest.py +9 -0
  68. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +32 -13
  69. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +61 -0
  70. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +30 -19
  71. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -10
  72. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +72 -59
  73. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +40 -20
  74. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +52 -40
  75. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +18 -4
  76. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +114 -75
  77. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +49 -39
  78. {scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex}/linear_model/ridge.py +390 -419
  79. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +70 -6
  80. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +61 -0
  81. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +41 -41
  82. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  83. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +250 -0
  84. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +16 -11
  85. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +4 -4
  86. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +20 -15
  87. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +18 -14
  88. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +22 -14
  89. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +4 -2
  90. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  91. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +18 -13
  92. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +1 -1
  93. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +30 -14
  94. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +70 -0
  95. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +4 -4
  96. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +7 -8
  97. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +1 -1
  98. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +4 -3
  99. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +1 -1
  100. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +1 -1
  101. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +1 -1
  102. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +1 -1
  103. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +1 -1
  104. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +17 -15
  105. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +1 -1
  106. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +1 -5
  107. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +1 -1
  108. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +58 -47
  109. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +68 -29
  110. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +40 -18
  111. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +66 -27
  112. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +36 -18
  113. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +491 -0
  114. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +123 -0
  115. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +43 -0
  116. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +69 -13
  117. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -11
  118. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +108 -0
  119. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +1 -9
  120. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +43 -13
  121. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
  122. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/_utils.py → scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +117 -9
  123. scikit_learn_intelex-2025.0.1.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
  124. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  125. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +208 -0
  126. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/METADATA +2 -2
  127. scikit_learn_intelex-2025.2.0.dist-info/RECORD +259 -0
  128. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  129. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  130. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  131. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -19
  132. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -95
  133. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +0 -235
  134. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  135. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -24
  136. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
  137. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -19
  138. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -102
  139. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -54
  140. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -43
  141. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -103
  142. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -19
  143. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -89
  144. scikit_learn_intelex-2025.0.1.dist-info/RECORD +0 -255
  145. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  147. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -0
  148. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +0 -0
  149. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/mb/model_builders.py +0 -0
  150. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  151. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  152. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
  153. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  154. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  155. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  156. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  157. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  158. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
  159. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  160. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  161. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  162. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  163. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  164. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  165. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  166. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  167. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -0
  168. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  169. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  170. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  171. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
  172. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  173. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  174. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  175. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  176. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  177. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  178. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
  179. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  180. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  181. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  182. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
  183. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
  184. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
  185. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  186. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  187. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  188. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
  189. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  190. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
  191. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  192. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  193. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  194. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  195. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  196. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  197. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  198. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_base.py +0 -0
  199. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  200. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  201. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -0
  202. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  203. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  204. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  206. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  207. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  208. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  209. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  210. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  211. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  212. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  213. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
  214. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
  215. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  216. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
  217. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
  218. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
  219. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
  220. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/onedal/utils/__init__.py +0 -0
  221. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  222. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  223. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  224. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  225. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  226. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  227. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  228. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  229. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  231. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  232. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  233. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
  234. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
  235. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  236. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
  237. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  238. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  239. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  240. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  241. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  242. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  243. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  244. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  245. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  246. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  248. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  249. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  250. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  251. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  252. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  253. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  254. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  255. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  256. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  257. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  258. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  259. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  260. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  261. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  262. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  263. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  264. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  265. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  266. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  267. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  268. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  269. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  270. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  271. /scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/tests/_utils_spmd.py → /scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  272. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  273. {scikit_learn_intelex-2025.0.1.data → scikit_learn_intelex-2025.2.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  274. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/LICENSE.txt +0 -0
  275. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/WHEEL +0 -0
  276. {scikit_learn_intelex-2025.0.1.dist-info → scikit_learn_intelex-2025.2.0.dist-info}/top_level.txt +0 -0
@@ -20,13 +20,13 @@ from abc import ABC
20
20
 
21
21
  import numpy as np
22
22
  from scipy import sparse as sp
23
- from sklearn.base import clone
24
- from sklearn.ensemble import ExtraTreesClassifier as sklearn_ExtraTreesClassifier
25
- from sklearn.ensemble import ExtraTreesRegressor as sklearn_ExtraTreesRegressor
26
- from sklearn.ensemble import RandomForestClassifier as sklearn_RandomForestClassifier
27
- from sklearn.ensemble import RandomForestRegressor as sklearn_RandomForestRegressor
28
- from sklearn.ensemble._forest import ForestClassifier as sklearn_ForestClassifier
29
- from sklearn.ensemble._forest import ForestRegressor as sklearn_ForestRegressor
23
+ from sklearn.base import BaseEstimator, clone
24
+ from sklearn.ensemble import ExtraTreesClassifier as _sklearn_ExtraTreesClassifier
25
+ from sklearn.ensemble import ExtraTreesRegressor as _sklearn_ExtraTreesRegressor
26
+ from sklearn.ensemble import RandomForestClassifier as _sklearn_RandomForestClassifier
27
+ from sklearn.ensemble import RandomForestRegressor as _sklearn_RandomForestRegressor
28
+ from sklearn.ensemble._forest import ForestClassifier as _sklearn_ForestClassifier
29
+ from sklearn.ensemble._forest import ForestRegressor as _sklearn_ForestRegressor
30
30
  from sklearn.ensemble._forest import _get_n_samples_bootstrap
31
31
  from sklearn.exceptions import DataConversionWarning
32
32
  from sklearn.metrics import accuracy_score, r2_score
@@ -57,6 +57,8 @@ from onedal.ensemble import RandomForestClassifier as onedal_RandomForestClassif
57
57
  from onedal.ensemble import RandomForestRegressor as onedal_RandomForestRegressor
58
58
  from onedal.primitives import get_tree_state_cls, get_tree_state_reg
59
59
  from onedal.utils import _num_features, _num_samples
60
+ from sklearnex import get_hyperparameters
61
+ from sklearnex._utils import register_hyperparameters
60
62
 
61
63
  from .._device_offload import dispatch, wrap_output_data
62
64
  from .._utils import PatchingConditionsChain
@@ -67,12 +69,18 @@ if sklearn_check_version("1.2"):
67
69
  if sklearn_check_version("1.4"):
68
70
  from daal4py.sklearn.utils import _assert_all_finite
69
71
 
72
+ if sklearn_check_version("1.6"):
73
+ from sklearn.utils.validation import validate_data
74
+ else:
75
+ validate_data = BaseEstimator._validate_data
76
+
70
77
 
71
78
  class BaseForest(ABC):
72
79
  _onedal_factory = None
73
80
 
74
81
  def _onedal_fit(self, X, y, sample_weight=None, queue=None):
75
- X, y = self._validate_data(
82
+ X, y = validate_data(
83
+ self,
76
84
  X,
77
85
  y,
78
86
  multi_output=True,
@@ -394,7 +402,7 @@ class BaseForest(ABC):
394
402
  self.estimator = estimator
395
403
 
396
404
 
397
- class ForestClassifier(sklearn_ForestClassifier, BaseForest):
405
+ class ForestClassifier(_sklearn_ForestClassifier, BaseForest):
398
406
  # Surprisingly, even though scikit-learn warns against using
399
407
  # their ForestClassifier directly, it actually has a more stable
400
408
  # API than the user-facing objects (over time). If they change it
@@ -458,7 +466,7 @@ class ForestClassifier(sklearn_ForestClassifier, BaseForest):
458
466
  "fit",
459
467
  {
460
468
  "onedal": self.__class__._onedal_fit,
461
- "sklearn": sklearn_ForestClassifier.fit,
469
+ "sklearn": _sklearn_ForestClassifier.fit,
462
470
  },
463
471
  X,
464
472
  y,
@@ -592,12 +600,13 @@ class ForestClassifier(sklearn_ForestClassifier, BaseForest):
592
600
 
593
601
  @wrap_output_data
594
602
  def predict(self, X):
603
+ check_is_fitted(self)
595
604
  return dispatch(
596
605
  self,
597
606
  "predict",
598
607
  {
599
608
  "onedal": self.__class__._onedal_predict,
600
- "sklearn": sklearn_ForestClassifier.predict,
609
+ "sklearn": _sklearn_ForestClassifier.predict,
601
610
  },
602
611
  X,
603
612
  )
@@ -607,27 +616,13 @@ class ForestClassifier(sklearn_ForestClassifier, BaseForest):
607
616
  # TODO:
608
617
  # _check_proba()
609
618
  # self._check_proba()
610
- if sklearn_check_version("1.0"):
611
- self._check_feature_names(X, reset=False)
612
- if hasattr(self, "n_features_in_"):
613
- try:
614
- num_features = _num_features(X)
615
- except TypeError:
616
- num_features = _num_samples(X)
617
- if num_features != self.n_features_in_:
618
- raise ValueError(
619
- (
620
- f"X has {num_features} features, "
621
- f"but {self.__class__.__name__} is expecting "
622
- f"{self.n_features_in_} features as input"
623
- )
624
- )
619
+ check_is_fitted(self)
625
620
  return dispatch(
626
621
  self,
627
622
  "predict_proba",
628
623
  {
629
624
  "onedal": self.__class__._onedal_predict_proba,
630
- "sklearn": sklearn_ForestClassifier.predict_proba,
625
+ "sklearn": _sklearn_ForestClassifier.predict_proba,
631
626
  },
632
627
  X,
633
628
  )
@@ -647,23 +642,24 @@ class ForestClassifier(sklearn_ForestClassifier, BaseForest):
647
642
 
648
643
  @wrap_output_data
649
644
  def score(self, X, y, sample_weight=None):
645
+ check_is_fitted(self)
650
646
  return dispatch(
651
647
  self,
652
648
  "score",
653
649
  {
654
650
  "onedal": self.__class__._onedal_score,
655
- "sklearn": sklearn_ForestClassifier.score,
651
+ "sklearn": _sklearn_ForestClassifier.score,
656
652
  },
657
653
  X,
658
654
  y,
659
655
  sample_weight=sample_weight,
660
656
  )
661
657
 
662
- fit.__doc__ = sklearn_ForestClassifier.fit.__doc__
663
- predict.__doc__ = sklearn_ForestClassifier.predict.__doc__
664
- predict_proba.__doc__ = sklearn_ForestClassifier.predict_proba.__doc__
665
- predict_log_proba.__doc__ = sklearn_ForestClassifier.predict_log_proba.__doc__
666
- score.__doc__ = sklearn_ForestClassifier.score.__doc__
658
+ fit.__doc__ = _sklearn_ForestClassifier.fit.__doc__
659
+ predict.__doc__ = _sklearn_ForestClassifier.predict.__doc__
660
+ predict_proba.__doc__ = _sklearn_ForestClassifier.predict_proba.__doc__
661
+ predict_log_proba.__doc__ = _sklearn_ForestClassifier.predict_log_proba.__doc__
662
+ score.__doc__ = _sklearn_ForestClassifier.score.__doc__
667
663
 
668
664
  def _onedal_cpu_supported(self, method_name, *data):
669
665
  class_name = self.__class__.__name__
@@ -794,10 +790,10 @@ class ForestClassifier(sklearn_ForestClassifier, BaseForest):
794
790
  return patching_status
795
791
 
796
792
  def _onedal_predict(self, X, queue=None):
797
- check_is_fitted(self, "_onedal_estimator")
798
793
 
799
794
  if sklearn_check_version("1.0"):
800
- X = self._validate_data(
795
+ X = validate_data(
796
+ self,
801
797
  X,
802
798
  dtype=[np.float64, np.float32],
803
799
  force_all_finite=False,
@@ -810,16 +806,29 @@ class ForestClassifier(sklearn_ForestClassifier, BaseForest):
810
806
  dtype=[np.float64, np.float32],
811
807
  force_all_finite=False,
812
808
  ) # Warning, order of dtype matters
809
+ if hasattr(self, "n_features_in_"):
810
+ try:
811
+ num_features = _num_features(X)
812
+ except TypeError:
813
+ num_features = _num_samples(X)
814
+ if num_features != self.n_features_in_:
815
+ raise ValueError(
816
+ (
817
+ f"X has {num_features} features, "
818
+ f"but {self.__class__.__name__} is expecting "
819
+ f"{self.n_features_in_} features as input"
820
+ )
821
+ )
813
822
  self._check_n_features(X, reset=False)
814
823
 
815
824
  res = self._onedal_estimator.predict(X, queue=queue)
816
825
  return np.take(self.classes_, res.ravel().astype(np.int64, casting="unsafe"))
817
826
 
818
827
  def _onedal_predict_proba(self, X, queue=None):
819
- check_is_fitted(self, "_onedal_estimator")
820
828
 
821
829
  if sklearn_check_version("1.0"):
822
- X = self._validate_data(
830
+ X = validate_data(
831
+ self,
823
832
  X,
824
833
  dtype=[np.float64, np.float32],
825
834
  force_all_finite=False,
@@ -842,7 +851,7 @@ class ForestClassifier(sklearn_ForestClassifier, BaseForest):
842
851
  )
843
852
 
844
853
 
845
- class ForestRegressor(sklearn_ForestRegressor, BaseForest):
854
+ class ForestRegressor(_sklearn_ForestRegressor, BaseForest):
846
855
  _err = "out_of_bag_error_r2|out_of_bag_error_prediction"
847
856
  _get_tree_state = staticmethod(get_tree_state_reg)
848
857
 
@@ -1123,7 +1132,8 @@ class ForestRegressor(sklearn_ForestRegressor, BaseForest):
1123
1132
  check_is_fitted(self, "_onedal_estimator")
1124
1133
 
1125
1134
  if sklearn_check_version("1.0"):
1126
- X = self._validate_data(
1135
+ X = validate_data(
1136
+ self,
1127
1137
  X,
1128
1138
  dtype=[np.float64, np.float32],
1129
1139
  force_all_finite=False,
@@ -1148,7 +1158,7 @@ class ForestRegressor(sklearn_ForestRegressor, BaseForest):
1148
1158
  "fit",
1149
1159
  {
1150
1160
  "onedal": self.__class__._onedal_fit,
1151
- "sklearn": sklearn_ForestRegressor.fit,
1161
+ "sklearn": _sklearn_ForestRegressor.fit,
1152
1162
  },
1153
1163
  X,
1154
1164
  y,
@@ -1158,43 +1168,46 @@ class ForestRegressor(sklearn_ForestRegressor, BaseForest):
1158
1168
 
1159
1169
  @wrap_output_data
1160
1170
  def predict(self, X):
1171
+ check_is_fitted(self)
1161
1172
  return dispatch(
1162
1173
  self,
1163
1174
  "predict",
1164
1175
  {
1165
1176
  "onedal": self.__class__._onedal_predict,
1166
- "sklearn": sklearn_ForestRegressor.predict,
1177
+ "sklearn": _sklearn_ForestRegressor.predict,
1167
1178
  },
1168
1179
  X,
1169
1180
  )
1170
1181
 
1171
1182
  @wrap_output_data
1172
1183
  def score(self, X, y, sample_weight=None):
1184
+ check_is_fitted(self)
1173
1185
  return dispatch(
1174
1186
  self,
1175
1187
  "score",
1176
1188
  {
1177
1189
  "onedal": self.__class__._onedal_score,
1178
- "sklearn": sklearn_ForestRegressor.score,
1190
+ "sklearn": _sklearn_ForestRegressor.score,
1179
1191
  },
1180
1192
  X,
1181
1193
  y,
1182
1194
  sample_weight=sample_weight,
1183
1195
  )
1184
1196
 
1185
- fit.__doc__ = sklearn_ForestRegressor.fit.__doc__
1186
- predict.__doc__ = sklearn_ForestRegressor.predict.__doc__
1187
- score.__doc__ = sklearn_ForestRegressor.score.__doc__
1197
+ fit.__doc__ = _sklearn_ForestRegressor.fit.__doc__
1198
+ predict.__doc__ = _sklearn_ForestRegressor.predict.__doc__
1199
+ score.__doc__ = _sklearn_ForestRegressor.score.__doc__
1188
1200
 
1189
1201
 
1202
+ @register_hyperparameters({"infer": get_hyperparameters("decision_forest", "infer")})
1190
1203
  @control_n_jobs(decorated_methods=["fit", "predict", "predict_proba", "score"])
1191
1204
  class RandomForestClassifier(ForestClassifier):
1192
- __doc__ = sklearn_RandomForestClassifier.__doc__
1205
+ __doc__ = _sklearn_RandomForestClassifier.__doc__
1193
1206
  _onedal_factory = onedal_RandomForestClassifier
1194
1207
 
1195
1208
  if sklearn_check_version("1.2"):
1196
1209
  _parameter_constraints: dict = {
1197
- **sklearn_RandomForestClassifier._parameter_constraints,
1210
+ **_sklearn_RandomForestClassifier._parameter_constraints,
1198
1211
  "max_bins": [Interval(numbers.Integral, 2, None, closed="left")],
1199
1212
  "min_bin_size": [Interval(numbers.Integral, 1, None, closed="left")],
1200
1213
  }
@@ -1397,14 +1410,14 @@ class RandomForestClassifier(ForestClassifier):
1397
1410
  self.min_bin_size = min_bin_size
1398
1411
 
1399
1412
 
1400
- @control_n_jobs(decorated_methods=["fit", "predict"])
1413
+ @control_n_jobs(decorated_methods=["fit", "predict", "score"])
1401
1414
  class RandomForestRegressor(ForestRegressor):
1402
- __doc__ = sklearn_RandomForestRegressor.__doc__
1415
+ __doc__ = _sklearn_RandomForestRegressor.__doc__
1403
1416
  _onedal_factory = onedal_RandomForestRegressor
1404
1417
 
1405
1418
  if sklearn_check_version("1.2"):
1406
1419
  _parameter_constraints: dict = {
1407
- **sklearn_RandomForestRegressor._parameter_constraints,
1420
+ **_sklearn_RandomForestRegressor._parameter_constraints,
1408
1421
  "max_bins": [Interval(numbers.Integral, 2, None, closed="left")],
1409
1422
  "min_bin_size": [Interval(numbers.Integral, 1, None, closed="left")],
1410
1423
  }
@@ -1600,12 +1613,12 @@ class RandomForestRegressor(ForestRegressor):
1600
1613
 
1601
1614
  @control_n_jobs(decorated_methods=["fit", "predict", "predict_proba", "score"])
1602
1615
  class ExtraTreesClassifier(ForestClassifier):
1603
- __doc__ = sklearn_ExtraTreesClassifier.__doc__
1616
+ __doc__ = _sklearn_ExtraTreesClassifier.__doc__
1604
1617
  _onedal_factory = onedal_ExtraTreesClassifier
1605
1618
 
1606
1619
  if sklearn_check_version("1.2"):
1607
1620
  _parameter_constraints: dict = {
1608
- **sklearn_ExtraTreesClassifier._parameter_constraints,
1621
+ **_sklearn_ExtraTreesClassifier._parameter_constraints,
1609
1622
  "max_bins": [Interval(numbers.Integral, 2, None, closed="left")],
1610
1623
  "min_bin_size": [Interval(numbers.Integral, 1, None, closed="left")],
1611
1624
  }
@@ -1808,14 +1821,14 @@ class ExtraTreesClassifier(ForestClassifier):
1808
1821
  self.min_bin_size = min_bin_size
1809
1822
 
1810
1823
 
1811
- @control_n_jobs(decorated_methods=["fit", "predict"])
1824
+ @control_n_jobs(decorated_methods=["fit", "predict", "score"])
1812
1825
  class ExtraTreesRegressor(ForestRegressor):
1813
- __doc__ = sklearn_ExtraTreesRegressor.__doc__
1826
+ __doc__ = _sklearn_ExtraTreesRegressor.__doc__
1814
1827
  _onedal_factory = onedal_ExtraTreesRegressor
1815
1828
 
1816
1829
  if sklearn_check_version("1.2"):
1817
1830
  _parameter_constraints: dict = {
1818
- **sklearn_ExtraTreesRegressor._parameter_constraints,
1831
+ **_sklearn_ExtraTreesRegressor._parameter_constraints,
1819
1832
  "max_bins": [Interval(numbers.Integral, 2, None, closed="left")],
1820
1833
  "min_bin_size": [Interval(numbers.Integral, 1, None, closed="left")],
1821
1834
  }
@@ -2010,7 +2023,7 @@ class ExtraTreesRegressor(ForestRegressor):
2010
2023
 
2011
2024
 
2012
2025
  # Allow for isinstance calls without inheritance changes using ABCMeta
2013
- sklearn_RandomForestClassifier.register(RandomForestClassifier)
2014
- sklearn_RandomForestRegressor.register(RandomForestRegressor)
2015
- sklearn_ExtraTreesClassifier.register(ExtraTreesClassifier)
2016
- sklearn_ExtraTreesRegressor.register(ExtraTreesRegressor)
2026
+ _sklearn_RandomForestClassifier.register(RandomForestClassifier)
2027
+ _sklearn_RandomForestRegressor.register(RandomForestRegressor)
2028
+ _sklearn_ExtraTreesClassifier.register(ExtraTreesClassifier)
2029
+ _sklearn_ExtraTreesRegressor.register(ExtraTreesRegressor)
@@ -14,7 +14,6 @@
14
14
  # limitations under the License.
15
15
  # ===============================================================================
16
16
 
17
- import numpy as np
18
17
  import pytest
19
18
  from numpy.testing import assert_allclose
20
19
  from sklearn.datasets import make_classification, make_regression
@@ -26,9 +25,19 @@ from onedal.tests.utils._dataframes_support import (
26
25
  get_dataframes_and_queues,
27
26
  )
28
27
 
28
+ hparam_values = [
29
+ (None, None, None, None),
30
+ (8, 100, 32, 0.3),
31
+ (16, 100, 32, 0.3),
32
+ (32, 100, 32, 0.3),
33
+ (64, 10, 32, 0.1),
34
+ (128, 100, 1000, 1.0),
35
+ ]
29
36
 
30
- @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
31
- def test_sklearnex_import_rf_classifier(dataframe, queue):
37
+
38
+ @pytest.mark.parametrize("dataframe, queue", get_dataframes_and_queues())
39
+ @pytest.mark.parametrize("block, trees, rows, scale", hparam_values)
40
+ def test_sklearnex_import_rf_classifier(dataframe, queue, block, trees, rows, scale):
32
41
  from sklearnex.ensemble import RandomForestClassifier
33
42
 
34
43
  X, y = make_classification(
@@ -42,14 +51,20 @@ def test_sklearnex_import_rf_classifier(dataframe, queue):
42
51
  X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
43
52
  y = _convert_to_dataframe(y, sycl_queue=queue, target_df=dataframe)
44
53
  rf = RandomForestClassifier(max_depth=2, random_state=0).fit(X, y)
54
+ hparams = RandomForestClassifier.get_hyperparameters("infer")
55
+ if hparams and block is not None:
56
+ hparams.block_size = block
57
+ hparams.min_trees_for_threading = trees
58
+ hparams.min_number_of_rows_for_vect_seq_compute = rows
59
+ hparams.scale_factor_for_vect_parallel_compute = scale
45
60
  assert "sklearnex" in rf.__module__
46
61
  assert_allclose([1], _as_numpy(rf.predict([[0, 0, 0, 0]])))
47
62
 
48
63
 
49
64
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
50
65
  def test_sklearnex_import_rf_regression(dataframe, queue):
51
- if queue and queue.sycl_device.is_gpu:
52
- pytest.skip("RF regressor predict for the GPU sycl_queue is buggy.")
66
+ if (not daal_check_version((2025, "P", 200))) and queue and queue.sycl_device.is_gpu:
67
+ pytest.skip("Skipping due to bug in histogram merges fixed in 2025.2.")
53
68
  from sklearnex.ensemble import RandomForestRegressor
54
69
 
55
70
  X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)
@@ -59,19 +74,20 @@ def test_sklearnex_import_rf_regression(dataframe, queue):
59
74
  assert "sklearnex" in rf.__module__
60
75
  pred = _as_numpy(rf.predict([[0, 0, 0, 0]]))
61
76
 
62
- if queue is not None and queue.sycl_device.is_gpu:
63
- assert_allclose([-0.011208], pred, atol=1e-2)
64
- else:
65
- if daal_check_version((2024, "P", 0)):
66
- assert_allclose([-6.971], pred, atol=1e-2)
67
- else:
68
- assert_allclose([-6.839], pred, atol=1e-2)
77
+ # Check that the prediction is within a reasonable range.
78
+ # 'y' should be in the neighborhood of zero for x=0.
79
+ assert pred[0] >= -10
80
+ assert pred[0] <= 10
81
+
82
+ # Check that the trees aren't just empty nodes predicting the mean
83
+ for estimator in rf.estimators_:
84
+ assert estimator.tree_.children_left.shape[0] > 1
69
85
 
70
86
 
71
87
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
72
88
  def test_sklearnex_import_et_classifier(dataframe, queue):
73
- if queue and queue.sycl_device.is_gpu:
74
- pytest.skip("ET classifier predict for the GPU sycl_queue is buggy.")
89
+ if (not daal_check_version((2025, "P", 200))) and queue and queue.sycl_device.is_gpu:
90
+ pytest.skip("Skipping due to bug in histogram merges fixed in 2025.2.")
75
91
  from sklearnex.ensemble import ExtraTreesClassifier
76
92
 
77
93
  X, y = make_classification(
@@ -93,8 +109,8 @@ def test_sklearnex_import_et_classifier(dataframe, queue):
93
109
 
94
110
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
95
111
  def test_sklearnex_import_et_regression(dataframe, queue):
96
- if queue and queue.sycl_device.is_gpu:
97
- pytest.skip("ET regressor predict for the GPU sycl_queue is buggy.")
112
+ if (not daal_check_version((2025, "P", 200))) and queue and queue.sycl_device.is_gpu:
113
+ pytest.skip("Skipping due to bug in histogram merges fixed in 2025.2.")
98
114
  from sklearnex.ensemble import ExtraTreesRegressor
99
115
 
100
116
  X, y = make_regression(n_features=1, random_state=0, shuffle=False)
@@ -114,7 +130,11 @@ def test_sklearnex_import_et_regression(dataframe, queue):
114
130
  )
115
131
  )
116
132
 
117
- if queue is not None and queue.sycl_device.is_gpu:
118
- assert_allclose([1.909769], pred, atol=1e-2)
119
- else:
120
- assert_allclose([0.445], pred, atol=1e-2)
133
+ # Check that the prediction is within a reasonable range.
134
+ # 'y' should be in the neighborhood of zero for x=0.
135
+ assert pred[0] >= -10
136
+ assert pred[0] <= 10
137
+
138
+ # Check that the trees aren't just empty nodes predicting the mean
139
+ for estimator in rf.estimators_:
140
+ assert estimator.tree_.children_left.shape[0] > 1
@@ -19,12 +19,12 @@ import warnings
19
19
 
20
20
  import numpy as np
21
21
  from sklearn.base import BaseEstimator, MultiOutputMixin, RegressorMixin
22
- from sklearn.exceptions import NotFittedError
23
22
  from sklearn.metrics import r2_score
24
23
  from sklearn.utils import check_array, gen_batches
24
+ from sklearn.utils.validation import check_is_fitted
25
25
 
26
26
  from daal4py.sklearn._n_jobs_support import control_n_jobs
27
- from daal4py.sklearn._utils import sklearn_check_version
27
+ from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
28
28
  from onedal.linear_model import (
29
29
  IncrementalLinearRegression as onedal_IncrementalLinearRegression,
30
30
  )
@@ -32,10 +32,15 @@ from onedal.linear_model import (
32
32
  if sklearn_check_version("1.2"):
33
33
  from sklearn.utils._param_validation import Interval
34
34
 
35
+ if sklearn_check_version("1.6"):
36
+ from sklearn.utils.validation import validate_data
37
+ else:
38
+ validate_data = BaseEstimator._validate_data
39
+
35
40
  from onedal.common.hyperparameters import get_hyperparameters
36
41
 
37
42
  from .._device_offload import dispatch, wrap_output_data
38
- from .._utils import PatchingConditionsChain, register_hyperparameters
43
+ from .._utils import IntelEstimator, PatchingConditionsChain, register_hyperparameters
39
44
 
40
45
 
41
46
  @register_hyperparameters(
@@ -45,9 +50,11 @@ from .._utils import PatchingConditionsChain, register_hyperparameters
45
50
  }
46
51
  )
47
52
  @control_n_jobs(
48
- decorated_methods=["fit", "partial_fit", "predict", "_onedal_finalize_fit"]
53
+ decorated_methods=["fit", "partial_fit", "predict", "score", "_onedal_finalize_fit"]
49
54
  )
50
- class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimator):
55
+ class IncrementalLinearRegression(
56
+ IntelEstimator, MultiOutputMixin, RegressorMixin, BaseEstimator
57
+ ):
51
58
  """
52
59
  Trains a linear regression model, allows for computation if the data are split into
53
60
  batches. The user can use the ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
@@ -56,9 +63,9 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
56
63
  Parameters
57
64
  ----------
58
65
  fit_intercept : bool, default=True
59
- Whether to calculate the intercept for this model. If set
60
- to False, no intercept will be used in calculations
61
- (i.e. data is expected to be centered).
66
+ Whether to calculate the intercept for this model. If set
67
+ to False, no intercept will be used in calculations
68
+ (i.e. data is expected to be centered).
62
69
 
63
70
  copy_X : bool, default=True
64
71
  If True, X will be copied; else, it may be overwritten.
@@ -96,6 +103,13 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
96
103
  n_features_in_ : int
97
104
  Number of features seen during ``fit`` or ``partial_fit``.
98
105
 
106
+ Note
107
+ ----
108
+ Serializing instances of this class will trigger a forced finalization of calculations.
109
+ Since finalize_fit can't be dispatched without directly provided queue
110
+ and the dispatching policy can't be serialized, the computation is finalized
111
+ during serialization call and the policy is not saved in serialized data.
112
+
99
113
  Examples
100
114
  --------
101
115
  >>> import numpy as np
@@ -146,7 +160,8 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
146
160
  self._validate_params()
147
161
 
148
162
  if sklearn_check_version("1.0"):
149
- X = self._validate_data(
163
+ X = validate_data(
164
+ self,
150
165
  X,
151
166
  dtype=[np.float64, np.float32],
152
167
  copy=self.copy_X,
@@ -177,7 +192,8 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
177
192
 
178
193
  if check_input:
179
194
  if sklearn_check_version("1.0"):
180
- X, y = self._validate_data(
195
+ X, y = validate_data(
196
+ self,
181
197
  X,
182
198
  y,
183
199
  dtype=[np.float64, np.float32],
@@ -212,13 +228,21 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
212
228
  self._onedal_estimator.partial_fit(X, y, queue=queue)
213
229
  self._need_to_finalize = True
214
230
 
231
+ if daal_check_version((2025, "P", 200)):
232
+
233
+ def _onedal_validate_underdetermined(self, n_samples, n_features):
234
+ pass
235
+
236
+ else:
237
+
238
+ def _onedal_validate_underdetermined(self, n_samples, n_features):
239
+ is_underdetermined = n_samples < n_features + int(self.fit_intercept)
240
+ if is_underdetermined:
241
+ raise ValueError("Not enough samples for oneDAL")
242
+
215
243
  def _onedal_finalize_fit(self, queue=None):
216
244
  assert hasattr(self, "_onedal_estimator")
217
- is_underdetermined = self.n_samples_seen_ < self.n_features_in_ + int(
218
- self.fit_intercept
219
- )
220
- if is_underdetermined:
221
- raise ValueError("Not enough samples to finalize")
245
+ self._onedal_validate_underdetermined(self.n_samples_seen_, self.n_features_in_)
222
246
  self._onedal_estimator.finalize_fit(queue=queue)
223
247
  self._need_to_finalize = False
224
248
 
@@ -227,7 +251,8 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
227
251
  self._validate_params()
228
252
 
229
253
  if sklearn_check_version("1.0"):
230
- X, y = self._validate_data(
254
+ X, y = validate_data(
255
+ self,
231
256
  X,
232
257
  y,
233
258
  dtype=[np.float64, np.float32],
@@ -250,9 +275,7 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
250
275
 
251
276
  n_samples, n_features = X.shape
252
277
 
253
- is_underdetermined = n_samples < n_features + int(self.fit_intercept)
254
- if is_underdetermined:
255
- raise ValueError("Not enough samples to run oneDAL backend")
278
+ self._onedal_validate_underdetermined(n_samples, n_features)
256
279
 
257
280
  if self.batch_size is None:
258
281
  self.batch_size_ = 5 * n_features
@@ -281,7 +304,8 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
281
304
  self._onedal_finalize_fit(queue=queue)
282
305
  return self
283
306
 
284
- def get_intercept_(self):
307
+ @property
308
+ def intercept_(self):
285
309
  if hasattr(self, "_onedal_estimator"):
286
310
  if self._need_to_finalize:
287
311
  self._onedal_finalize_fit()
@@ -292,13 +316,15 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
292
316
  f"'{self.__class__.__name__}' object has no attribute 'intercept_'"
293
317
  )
294
318
 
295
- def set_intercept_(self, value):
319
+ @intercept_.setter
320
+ def intercept_(self, value):
296
321
  self.__dict__["intercept_"] = value
297
322
  if hasattr(self, "_onedal_estimator"):
298
323
  self._onedal_estimator.intercept_ = value
299
324
  del self._onedal_estimator._onedal_model
300
325
 
301
- def get_coef_(self):
326
+ @property
327
+ def coef_(self):
302
328
  if hasattr(self, "_onedal_estimator"):
303
329
  if self._need_to_finalize:
304
330
  self._onedal_finalize_fit()
@@ -309,15 +335,13 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
309
335
  f"'{self.__class__.__name__}' object has no attribute 'coef_'"
310
336
  )
311
337
 
312
- def set_coef_(self, value):
338
+ @coef_.setter
339
+ def coef_(self, value):
313
340
  self.__dict__["coef_"] = value
314
341
  if hasattr(self, "_onedal_estimator"):
315
342
  self._onedal_estimator.coef_ = value
316
343
  del self._onedal_estimator._onedal_model
317
344
 
318
- coef_ = property(get_coef_, set_coef_)
319
- intercept_ = property(get_intercept_, set_intercept_)
320
-
321
345
  def partial_fit(self, X, y, check_input=True):
322
346
  """
323
347
  Incremental fit linear model with X and y. All of X and y is
@@ -405,13 +429,7 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
405
429
  C : array, shape (n_samples, n_targets)
406
430
  Returns predicted values.
407
431
  """
408
- if not hasattr(self, "coef_"):
409
- msg = (
410
- "This %(name)s instance is not fitted yet. Call 'fit' or 'partial_fit' "
411
- "with appropriate arguments before using this estimator."
412
- )
413
- raise NotFittedError(msg % {"name": self.__class__.__name__})
414
-
432
+ check_is_fitted(self)
415
433
  return dispatch(
416
434
  self,
417
435
  "predict",
@@ -463,13 +481,7 @@ class IncrementalLinearRegression(MultiOutputMixin, RegressorMixin, BaseEstimato
463
481
  regressors (except for
464
482
  :class:`~sklearn.multioutput.MultiOutputRegressor`).
465
483
  """
466
- if not hasattr(self, "coef_"):
467
- msg = (
468
- "This %(name)s instance is not fitted yet. Call 'fit' or 'partial_fit' "
469
- "with appropriate arguments before using this estimator."
470
- )
471
- raise NotFittedError(msg % {"name": self.__class__.__name__})
472
-
484
+ check_is_fitted(self)
473
485
  return dispatch(
474
486
  self,
475
487
  "score",