scikit-learn-intelex 2025.2.0__py311-none-win_amd64.whl → 2025.5.0__py311-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 (269) hide show
  1. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/__main__.py +1 -1
  2. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
  3. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +1 -1
  4. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +83 -0
  5. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +855 -0
  6. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +217 -0
  7. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/daal4py/mb/model_builders.py → scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +99 -91
  8. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp311-win_amd64.pyd +0 -0
  9. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +6 -2
  10. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +1 -1
  11. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +2 -2
  12. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +6 -38
  13. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +12 -8
  14. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +2 -6
  15. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +3 -7
  16. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +41 -153
  17. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +13 -15
  18. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +7 -10
  19. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +22 -57
  20. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +3 -4
  21. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +8 -3
  22. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +30 -7
  23. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +2 -2
  24. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +6 -16
  25. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +4 -7
  26. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +3 -5
  27. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +4 -2
  28. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +8 -3
  29. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +82 -5
  30. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/__init__.py +125 -83
  31. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/_config.py +27 -2
  32. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/_device_offload.py +79 -83
  33. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
  34. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
  35. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +21 -17
  36. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +44 -39
  37. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +35 -42
  38. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +83 -74
  39. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +57 -24
  40. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/common/_backend.py +233 -0
  41. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +4 -4
  42. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +27 -12
  43. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +27 -19
  44. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +35 -32
  45. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +6 -10
  46. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +179 -78
  47. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -25
  48. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +28 -16
  49. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +2 -2
  50. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +130 -93
  51. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +76 -57
  52. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +63 -37
  53. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +96 -68
  54. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +156 -119
  55. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +5 -3
  56. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +21 -18
  57. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +4 -4
  58. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/svm.py +80 -32
  59. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +10 -9
  60. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +10 -10
  61. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +8 -8
  62. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +5 -5
  63. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +10 -10
  64. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +1 -13
  65. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +3 -1
  66. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +16 -1
  67. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +147 -0
  68. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +3 -3
  69. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/utils/validation.py +47 -16
  70. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/__init__.py +3 -2
  71. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
  72. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/_config.py +48 -6
  73. scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +143 -0
  74. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/_utils.py +66 -6
  75. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +13 -20
  76. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +34 -40
  77. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +8 -10
  78. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +4 -8
  79. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +42 -60
  80. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +10 -18
  81. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +4 -4
  82. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
  83. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +108 -364
  84. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
  85. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +1 -1
  86. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +6 -6
  87. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +41 -126
  88. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +48 -91
  89. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +56 -42
  90. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +38 -73
  91. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +16 -20
  92. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +60 -1
  93. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +2 -2
  94. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +6 -2
  95. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +1 -3
  96. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +1 -1
  97. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +1 -3
  98. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +7 -54
  99. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +5 -5
  100. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +31 -73
  101. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +30 -70
  102. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +5 -13
  103. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +9 -15
  104. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +48 -62
  105. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +10 -3
  106. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +8 -4
  107. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +13 -2
  108. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +10 -3
  109. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +7 -4
  110. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +13 -2
  111. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +9 -2
  112. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +7 -2
  113. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +25 -8
  114. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +6 -2
  115. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -3
  116. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +12 -5
  117. {scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/daal4py/mb → scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors}/__init__.py +2 -2
  118. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +27 -5
  119. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +14 -27
  120. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +35 -128
  121. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +9 -21
  122. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +33 -126
  123. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +9 -21
  124. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +26 -11
  125. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +16 -23
  126. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +4 -4
  127. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +2 -2
  128. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +8 -22
  129. {scikit_learn_intelex-2025.2.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/METADATA +38 -77
  130. scikit_learn_intelex-2025.5.0.dist-info/RECORD +257 -0
  131. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/daal4py/_daal4py.cp311-win_amd64.pyd +0 -0
  132. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp311-win_amd64.pyd +0 -0
  133. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp311-win_amd64.pyd +0 -0
  134. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/_base.py +0 -38
  135. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/_policy.py +0 -55
  136. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +0 -30
  137. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +0 -76
  138. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/onedal/utils/__init__.py +0 -49
  139. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -126
  140. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  141. scikit_learn_intelex-2025.2.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -25
  142. scikit_learn_intelex-2025.2.0.dist-info/RECORD +0 -259
  143. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  144. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  145. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  147. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  149. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  150. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  151. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  152. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  153. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  154. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  155. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  156. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  157. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  158. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  159. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  160. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  161. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  162. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  163. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  164. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
  165. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  166. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  167. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  168. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  169. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  170. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  171. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  172. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  173. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  174. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  175. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
  176. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  177. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  178. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  179. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  180. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  181. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  182. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  183. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  184. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  185. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
  186. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  187. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
  188. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  189. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  190. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  191. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  192. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  193. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  194. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  195. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
  196. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  197. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  198. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  199. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  200. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  201. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  202. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
  203. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  204. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  206. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  207. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  208. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  209. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  210. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  211. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
  213. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  214. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  215. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  216. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  217. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  218. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  219. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  220. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  221. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  222. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  223. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  224. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  225. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  226. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  227. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  228. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  229. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  230. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  231. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  232. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  233. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
  234. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  235. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  236. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  237. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  238. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  240. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  241. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  242. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  243. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  244. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  245. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  246. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  247. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  248. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  249. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  250. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  251. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  252. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  253. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  254. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  255. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
  256. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
  257. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  258. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  259. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -0
  260. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
  261. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  262. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  263. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  264. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
  265. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  266. {scikit_learn_intelex-2025.2.0.data → scikit_learn_intelex-2025.5.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  267. {scikit_learn_intelex-2025.2.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/LICENSE.txt +0 -0
  268. {scikit_learn_intelex-2025.2.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/WHEEL +0 -0
  269. {scikit_learn_intelex-2025.2.0.dist-info → scikit_learn_intelex-2025.5.0.dist-info}/top_level.txt +0 -0
@@ -15,7 +15,6 @@
15
15
  # ===============================================================================
16
16
 
17
17
  import logging
18
- from abc import ABC
19
18
 
20
19
  import numpy as np
21
20
  from sklearn.linear_model import LinearRegression as _sklearn_LinearRegression
@@ -27,9 +26,15 @@ from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
27
26
 
28
27
  from .._config import get_config
29
28
  from .._device_offload import dispatch, wrap_output_data
30
- from .._utils import PatchingConditionsChain, get_patch_message, register_hyperparameters
31
-
32
- if sklearn_check_version("1.0") and not sklearn_check_version("1.2"):
29
+ from .._utils import (
30
+ PatchableEstimator,
31
+ PatchingConditionsChain,
32
+ get_patch_message,
33
+ register_hyperparameters,
34
+ )
35
+ from ..utils.validation import validate_data
36
+
37
+ if not sklearn_check_version("1.2"):
33
38
  from sklearn.linear_model._base import _deprecate_normalize
34
39
 
35
40
  from scipy.sparse import issparse
@@ -37,17 +42,12 @@ from sklearn.utils.validation import check_is_fitted, check_X_y
37
42
 
38
43
  from onedal.common.hyperparameters import get_hyperparameters
39
44
  from onedal.linear_model import LinearRegression as onedal_LinearRegression
40
- from onedal.utils import _num_features, _num_samples
41
-
42
- if sklearn_check_version("1.6"):
43
- from sklearn.utils.validation import validate_data
44
- else:
45
- validate_data = _sklearn_LinearRegression._validate_data
45
+ from onedal.utils.validation import _num_features, _num_samples
46
46
 
47
47
 
48
48
  @register_hyperparameters({"fit": get_hyperparameters("linear_regression", "train")})
49
49
  @control_n_jobs(decorated_methods=["fit", "predict", "score"])
50
- class LinearRegression(_sklearn_LinearRegression):
50
+ class LinearRegression(PatchableEstimator, _sklearn_LinearRegression):
51
51
  __doc__ = _sklearn_LinearRegression.__doc__
52
52
 
53
53
  if sklearn_check_version("1.2"):
@@ -55,26 +55,46 @@ class LinearRegression(_sklearn_LinearRegression):
55
55
  **_sklearn_LinearRegression._parameter_constraints
56
56
  }
57
57
 
58
- def __init__(
59
- self,
60
- fit_intercept=True,
61
- copy_X=True,
62
- n_jobs=None,
63
- positive=False,
64
- ):
65
- super().__init__(
66
- fit_intercept=fit_intercept,
67
- copy_X=copy_X,
68
- n_jobs=n_jobs,
69
- positive=positive,
70
- )
58
+ if sklearn_check_version("1.7"):
59
+
60
+ def __init__(
61
+ self,
62
+ fit_intercept=True,
63
+ copy_X=True,
64
+ tol=1e-06, # for sparse solver only, not used by oneDAL
65
+ n_jobs=None,
66
+ positive=False,
67
+ ):
68
+ super().__init__(
69
+ fit_intercept=fit_intercept,
70
+ copy_X=copy_X,
71
+ tol=tol,
72
+ n_jobs=n_jobs,
73
+ positive=positive,
74
+ )
75
+
76
+ else:
77
+
78
+ def __init__(
79
+ self,
80
+ fit_intercept=True,
81
+ copy_X=True,
82
+ n_jobs=None,
83
+ positive=False,
84
+ ):
85
+ super().__init__(
86
+ fit_intercept=fit_intercept,
87
+ copy_X=copy_X,
88
+ n_jobs=n_jobs,
89
+ positive=positive,
90
+ )
71
91
 
72
92
  else:
73
93
 
74
94
  def __init__(
75
95
  self,
76
96
  fit_intercept=True,
77
- normalize="deprecated" if sklearn_check_version("1.0") else False,
97
+ normalize="deprecated",
78
98
  copy_X=True,
79
99
  n_jobs=None,
80
100
  positive=False,
@@ -241,20 +261,17 @@ class LinearRegression(_sklearn_LinearRegression):
241
261
  assert sample_weight is None
242
262
 
243
263
  supports_multi_output = daal_check_version((2025, "P", 1))
244
- check_params = {
245
- "X": X,
246
- "y": y,
247
- "dtype": [np.float64, np.float32],
248
- "accept_sparse": ["csr", "csc", "coo"],
249
- "y_numeric": True,
250
- "multi_output": supports_multi_output,
251
- }
252
- if sklearn_check_version("1.0"):
253
- X, y = validate_data(self, **check_params)
254
- else:
255
- X, y = check_X_y(**check_params)
264
+ X, y = validate_data(
265
+ self,
266
+ X=X,
267
+ y=y,
268
+ dtype=[np.float64, np.float32],
269
+ accept_sparse=["csr", "csc", "coo"],
270
+ y_numeric=True,
271
+ multi_output=supports_multi_output,
272
+ )
256
273
 
257
- if sklearn_check_version("1.0") and not sklearn_check_version("1.2"):
274
+ if not sklearn_check_version("1.2"):
258
275
  self._normalize = _deprecate_normalize(
259
276
  self.normalize,
260
277
  default=False,
@@ -282,10 +299,7 @@ class LinearRegression(_sklearn_LinearRegression):
282
299
  self._save_attributes()
283
300
 
284
301
  def _onedal_predict(self, X, queue=None):
285
- if sklearn_check_version("1.0"):
286
- X = validate_data(self, X, accept_sparse=False, reset=False)
287
- else:
288
- X = check_array(X, accept_sparse=False)
302
+ X = validate_data(self, X, accept_sparse=False, reset=False)
289
303
 
290
304
  if not hasattr(self, "_onedal_estimator"):
291
305
  self._initialize_onedal_estimator()
@@ -34,16 +34,12 @@ if daal_check_version((2024, "P", 1)):
34
34
  from daal4py.sklearn._utils import sklearn_check_version
35
35
  from daal4py.sklearn.linear_model.logistic_path import daal4py_fit, daal4py_predict
36
36
  from onedal.linear_model import LogisticRegression as onedal_LogisticRegression
37
- from onedal.utils import _num_samples
37
+ from onedal.utils.validation import _num_samples
38
38
 
39
39
  from .._config import get_config
40
40
  from .._device_offload import dispatch, wrap_output_data
41
- from .._utils import PatchingConditionsChain, get_patch_message
42
-
43
- if sklearn_check_version("1.6"):
44
- from sklearn.utils.validation import validate_data
45
- else:
46
- validate_data = _sklearn_LogisticRegression._validate_data
41
+ from .._utils import PatchableEstimator, PatchingConditionsChain, get_patch_message
42
+ from ..utils.validation import validate_data
47
43
 
48
44
  _sparsity_enabled = daal_check_version((2024, "P", 700))
49
45
 
@@ -65,7 +61,9 @@ if daal_check_version((2024, "P", 1)):
65
61
  "score",
66
62
  ]
67
63
  )
68
- class LogisticRegression(_sklearn_LogisticRegression, BaseLogisticRegression):
64
+ class LogisticRegression(
65
+ PatchableEstimator, _sklearn_LogisticRegression, BaseLogisticRegression
66
+ ):
69
67
  __doc__ = _sklearn_LogisticRegression.__doc__
70
68
 
71
69
  if sklearn_check_version("1.2"):
@@ -291,23 +289,14 @@ if daal_check_version((2024, "P", 1)):
291
289
 
292
290
  assert sample_weight is None
293
291
 
294
- if sklearn_check_version("1.0"):
295
- X, y = validate_data(
296
- self,
297
- X,
298
- y,
299
- accept_sparse=_sparsity_enabled,
300
- accept_large_sparse=_sparsity_enabled,
301
- dtype=[np.float64, np.float32],
302
- )
303
- else:
304
- X, y = check_X_y(
305
- X,
306
- y,
307
- accept_sparse=_sparsity_enabled,
308
- accept_large_sparse=_sparsity_enabled,
309
- dtype=[np.float64, np.float32],
310
- )
292
+ X, y = validate_data(
293
+ self,
294
+ X,
295
+ y,
296
+ accept_sparse=_sparsity_enabled,
297
+ accept_large_sparse=_sparsity_enabled,
298
+ dtype=[np.float64, np.float32],
299
+ )
311
300
 
312
301
  self._onedal_gpu_initialize_estimator()
313
302
  try:
@@ -330,22 +319,14 @@ if daal_check_version((2024, "P", 1)):
330
319
  if queue is None or queue.sycl_device.is_cpu:
331
320
  return daal4py_predict(self, X, "computeClassLabels")
332
321
 
333
- if sklearn_check_version("1.0"):
334
- X = validate_data(
335
- self,
336
- X,
337
- reset=False,
338
- accept_sparse=_sparsity_enabled,
339
- accept_large_sparse=_sparsity_enabled,
340
- dtype=[np.float64, np.float32],
341
- )
342
- else:
343
- X = check_array(
344
- X,
345
- accept_sparse=_sparsity_enabled,
346
- accept_large_sparse=_sparsity_enabled,
347
- dtype=[np.float64, np.float32],
348
- )
322
+ X = validate_data(
323
+ self,
324
+ X,
325
+ reset=False,
326
+ accept_sparse=_sparsity_enabled,
327
+ accept_large_sparse=_sparsity_enabled,
328
+ dtype=[np.float64, np.float32],
329
+ )
349
330
 
350
331
  assert hasattr(self, "_onedal_estimator")
351
332
  return self._onedal_estimator.predict(X, queue=queue)
@@ -354,22 +335,14 @@ if daal_check_version((2024, "P", 1)):
354
335
  if queue is None or queue.sycl_device.is_cpu:
355
336
  return daal4py_predict(self, X, "computeClassProbabilities")
356
337
 
357
- if sklearn_check_version("1.0"):
358
- X = validate_data(
359
- self,
360
- X,
361
- reset=False,
362
- accept_sparse=_sparsity_enabled,
363
- accept_large_sparse=_sparsity_enabled,
364
- dtype=[np.float64, np.float32],
365
- )
366
- else:
367
- X = check_array(
368
- X,
369
- accept_sparse=_sparsity_enabled,
370
- accept_large_sparse=_sparsity_enabled,
371
- dtype=[np.float64, np.float32],
372
- )
338
+ X = validate_data(
339
+ self,
340
+ X,
341
+ reset=False,
342
+ accept_sparse=_sparsity_enabled,
343
+ accept_large_sparse=_sparsity_enabled,
344
+ dtype=[np.float64, np.float32],
345
+ )
373
346
 
374
347
  assert hasattr(self, "_onedal_estimator")
375
348
  return self._onedal_estimator.predict_proba(X, queue=queue)
@@ -378,22 +351,14 @@ if daal_check_version((2024, "P", 1)):
378
351
  if queue is None or queue.sycl_device.is_cpu:
379
352
  return daal4py_predict(self, X, "computeClassLogProbabilities")
380
353
 
381
- if sklearn_check_version("1.0"):
382
- X = validate_data(
383
- self,
384
- X,
385
- reset=False,
386
- accept_sparse=_sparsity_enabled,
387
- accept_large_sparse=_sparsity_enabled,
388
- dtype=[np.float64, np.float32],
389
- )
390
- else:
391
- X = check_array(
392
- X,
393
- accept_sparse=_sparsity_enabled,
394
- accept_large_sparse=_sparsity_enabled,
395
- dtype=[np.float64, np.float32],
396
- )
354
+ X = validate_data(
355
+ self,
356
+ X,
357
+ reset=False,
358
+ accept_sparse=_sparsity_enabled,
359
+ accept_large_sparse=_sparsity_enabled,
360
+ dtype=[np.float64, np.float32],
361
+ )
397
362
 
398
363
  assert hasattr(self, "_onedal_estimator")
399
364
  return self._onedal_estimator.predict_log_proba(X, queue=queue)
@@ -35,18 +35,14 @@ if daal_check_version((2024, "P", 600)):
35
35
  from sklearn.utils import check_scalar
36
36
 
37
37
  from onedal.linear_model import Ridge as onedal_Ridge
38
- from onedal.utils import _num_features, _num_samples
38
+ from onedal.utils.validation import _num_features, _num_samples
39
39
 
40
40
  from .._device_offload import dispatch, wrap_output_data
41
- from .._utils import PatchingConditionsChain
42
-
43
- if sklearn_check_version("1.6"):
44
- from sklearn.utils.validation import validate_data
45
- else:
46
- validate_data = _sklearn_Ridge._validate_data
41
+ from .._utils import PatchableEstimator, PatchingConditionsChain
42
+ from ..utils.validation import validate_data
47
43
 
48
44
  @control_n_jobs(decorated_methods=["fit", "predict", "score"])
49
- class Ridge(_sklearn_Ridge):
45
+ class Ridge(PatchableEstimator, _sklearn_Ridge):
50
46
  __doc__ = _sklearn_Ridge.__doc__
51
47
 
52
48
  if sklearn_check_version("1.2"):
@@ -307,15 +303,15 @@ if daal_check_version((2024, "P", 600)):
307
303
  include_boundaries="left",
308
304
  )
309
305
 
310
- check_params = {
311
- "X": X,
312
- "y": y,
313
- "dtype": [np.float64, np.float32],
314
- "accept_sparse": ["csr", "csc", "coo"],
315
- "y_numeric": True,
316
- "multi_output": True,
317
- }
318
- X, y = validate_data(self, **check_params)
306
+ X, y = validate_data(
307
+ self,
308
+ X=X,
309
+ y=y,
310
+ dtype=[np.float64, np.float32],
311
+ accept_sparse=["csr", "csc", "coo"],
312
+ y_numeric=True,
313
+ multi_output=True,
314
+ )
319
315
 
320
316
  if not sklearn_check_version("1.2"):
321
317
  self._normalize = _deprecate_normalize(
@@ -383,8 +379,8 @@ else:
383
379
  from daal4py.sklearn.linear_model import Ridge
384
380
  from onedal._device_offload import support_input_format
385
381
 
386
- Ridge.fit = support_input_format(queue_param=False)(Ridge.fit)
387
- Ridge.predict = support_input_format(queue_param=False)(Ridge.predict)
388
- Ridge.score = support_input_format(queue_param=False)(Ridge.score)
382
+ Ridge.fit = support_input_format(Ridge.fit)
383
+ Ridge.predict = support_input_format(Ridge.predict)
384
+ Ridge.score = support_input_format(Ridge.score)
389
385
 
390
386
  logging.warning("Ridge requires oneDAL version >= 2024.6 but it was not found")
@@ -29,13 +29,71 @@ from onedal.tests.utils._dataframes_support import (
29
29
  from sklearnex.tests.utils import _IS_INTEL
30
30
 
31
31
 
32
+ # Note: this is arranged as a fixture with a finalizer instead of as a parameter
33
+ # 'True' / 'False' in order to undo the changes later so that it doesn't affect
34
+ # other tests afterwards. It returns a function instead of making the change
35
+ # directly, in order to avoid importing the estimator class before the import test
36
+ # itself, but it still needs to import the class inside the the function that it
37
+ # returns due to serialization logic in pytest causing differences w.r.t. current
38
+ # closure where the function is called.
39
+ @pytest.fixture(params=[False, True])
40
+ def non_batched_route(request):
41
+ def change_parameters(queue, macro_block):
42
+ from sklearnex.linear_model import LinearRegression
43
+
44
+ if request.param and daal_check_version((2025, "P", 500)):
45
+ if queue and queue.sycl_device.is_gpu:
46
+ pytest.skip("Test for CPU-only functionality")
47
+ if macro_block is not None:
48
+ pytest.skip("Parameter combination with no effect")
49
+
50
+ non_batched_route.curr_cpu_max_cols_batched = (
51
+ LinearRegression.get_hyperparameters("fit").cpu_max_cols_batched
52
+ )
53
+ non_batched_route.curr_cpu_small_rows_threshold = (
54
+ LinearRegression.get_hyperparameters("fit").cpu_small_rows_threshold
55
+ )
56
+ non_batched_route.curr_cpu_small_rows_max_cols_batched = (
57
+ LinearRegression.get_hyperparameters(
58
+ "fit"
59
+ ).cpu_small_rows_max_cols_batched
60
+ )
61
+ LinearRegression.get_hyperparameters("fit").cpu_max_cols_batched = 1
62
+ LinearRegression.get_hyperparameters("fit").cpu_small_rows_threshold = 1
63
+ LinearRegression.get_hyperparameters(
64
+ "fit"
65
+ ).cpu_small_rows_max_cols_batched = 1
66
+
67
+ elif request.param and not daal_check_version((2025, "P", 500)):
68
+ pytest.skip("Functionality introduced in later versions")
69
+
70
+ def restore_params():
71
+ from sklearnex.linear_model import LinearRegression
72
+
73
+ if request.param and daal_check_version((2025, "P", 500)):
74
+ LinearRegression.get_hyperparameters("fit").cpu_max_cols_batched = (
75
+ non_batched_route.curr_cpu_max_cols_batched
76
+ )
77
+ LinearRegression.get_hyperparameters("fit").cpu_small_rows_threshold = (
78
+ non_batched_route.curr_cpu_small_rows_threshold
79
+ )
80
+ LinearRegression.get_hyperparameters(
81
+ "fit"
82
+ ).cpu_small_rows_max_cols_batched = (
83
+ non_batched_route.curr_cpu_small_rows_max_cols_batched
84
+ )
85
+
86
+ request.addfinalizer(restore_params)
87
+ return change_parameters
88
+
89
+
32
90
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
33
91
  @pytest.mark.parametrize("dtype", [np.float32, np.float64])
34
92
  @pytest.mark.parametrize("macro_block", [None, 1024])
35
93
  @pytest.mark.parametrize("overdetermined", [False, True])
36
94
  @pytest.mark.parametrize("multi_output", [False, True])
37
95
  def test_sklearnex_import_linear(
38
- dataframe, queue, dtype, macro_block, overdetermined, multi_output
96
+ dataframe, queue, dtype, macro_block, non_batched_route, overdetermined, multi_output
39
97
  ):
40
98
  if (not overdetermined or multi_output) and not daal_check_version((2025, "P", 1)):
41
99
  pytest.skip("Functionality introduced in later versions")
@@ -65,6 +123,7 @@ def test_sklearnex_import_linear(
65
123
  hparams = LinearRegression.get_hyperparameters("fit")
66
124
  hparams.cpu_macro_block = macro_block
67
125
  hparams.gpu_macro_block = macro_block
126
+ non_batched_route(queue, macro_block)
68
127
 
69
128
  X = X.astype(dtype=dtype)
70
129
  y = y.astype(dtype=dtype)
@@ -49,7 +49,7 @@ def test_sklearnex_multiclass_classification(dataframe, queue):
49
49
  from sklearnex.linear_model import LogisticRegression
50
50
 
51
51
  X, y = load_iris(return_X_y=True)
52
- X_train, X_test, y_train, y_test = prepare_input(X, y, dataframe, queue)
52
+ X_train, X_test, y_train, y_test = prepare_input(X, y, dataframe, queue=queue)
53
53
 
54
54
  logreg = LogisticRegression(fit_intercept=True, solver="lbfgs", max_iter=200).fit(
55
55
  X_train, y_train
@@ -72,7 +72,7 @@ def test_sklearnex_binary_classification(dataframe, queue):
72
72
  from sklearnex.linear_model import LogisticRegression
73
73
 
74
74
  X, y = load_breast_cancer(return_X_y=True)
75
- X_train, X_test, y_train, y_test = prepare_input(X, y, dataframe, queue)
75
+ X_train, X_test, y_train, y_test = prepare_input(X, y, dataframe, queue=queue)
76
76
 
77
77
  logreg = LogisticRegression(fit_intercept=True, solver="newton-cg", max_iter=100).fit(
78
78
  X_train, y_train
@@ -17,5 +17,9 @@
17
17
  from daal4py.sklearn.manifold import TSNE
18
18
  from onedal._device_offload import support_input_format
19
19
 
20
- TSNE.fit = support_input_format(queue_param=False)(TSNE.fit)
21
- TSNE.fit_transform = support_input_format(queue_param=False)(TSNE.fit_transform)
20
+ from .._utils import PatchableEstimator
21
+
22
+ TSNE.fit = support_input_format(TSNE.fit)
23
+ TSNE.fit_transform = support_input_format(TSNE.fit_transform)
24
+ TSNE._doc_link_module = "daal4py"
25
+ TSNE._doc_link_template = PatchableEstimator._doc_link_template
@@ -17,6 +17,4 @@
17
17
  from daal4py.sklearn.metrics import pairwise_distances
18
18
  from onedal._device_offload import support_input_format
19
19
 
20
- pairwise_distances = support_input_format(freefunc=True, queue_param=False)(
21
- pairwise_distances
22
- )
20
+ pairwise_distances = support_input_format(pairwise_distances)
@@ -17,4 +17,4 @@
17
17
  from daal4py.sklearn.metrics import roc_auc_score
18
18
  from onedal._device_offload import support_input_format
19
19
 
20
- roc_auc_score = support_input_format(freefunc=True, queue_param=False)(roc_auc_score)
20
+ roc_auc_score = support_input_format(roc_auc_score)
@@ -17,6 +17,4 @@
17
17
  from daal4py.sklearn.model_selection import train_test_split
18
18
  from onedal._device_offload import support_input_format
19
19
 
20
- train_test_split = support_input_format(freefunc=True, queue_param=False)(
21
- train_test_split
22
- )
20
+ train_test_split = support_input_format(train_test_split)
@@ -15,6 +15,7 @@
15
15
  # ===============================================================================
16
16
 
17
17
  import warnings
18
+ from functools import wraps
18
19
 
19
20
  import numpy as np
20
21
  from sklearn.neighbors import LocalOutlierFactor as _sklearn_LocalOutlierFactor
@@ -28,11 +29,7 @@ from sklearnex.neighbors.common import KNeighborsDispatchingBase
28
29
  from sklearnex.neighbors.knn_unsupervised import NearestNeighbors
29
30
 
30
31
  from ..utils._array_api import get_namespace
31
-
32
- if sklearn_check_version("1.6"):
33
- from sklearn.utils.validation import validate_data
34
- else:
35
- validate_data = _sklearn_LocalOutlierFactor._validate_data
32
+ from ..utils.validation import check_feature_names
36
33
 
37
34
 
38
35
  @control_n_jobs(decorated_methods=["fit", "kneighbors", "_kneighbors"])
@@ -59,7 +56,7 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, _sklearn_LocalOutlierFactor)
59
56
  if sklearn_check_version("1.2"):
60
57
  self._validate_params()
61
58
 
62
- self._onedal_knn_fit(X, y, queue)
59
+ self._onedal_knn_fit(X, y, queue=queue)
63
60
 
64
61
  if self.contamination != "auto":
65
62
  if not (0.0 < self.contamination <= 0.5):
@@ -146,34 +143,15 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, _sklearn_LocalOutlierFactor)
146
143
  # This would cause issues in fit_predict. Also, available_if
147
144
  # is hard to unwrap, and this is the most straighforward way.
148
145
  @available_if(_sklearn_LocalOutlierFactor._check_novelty_fit_predict)
146
+ @wraps(_sklearn_LocalOutlierFactor.fit_predict, assigned=["__doc__"])
149
147
  @wrap_output_data
150
148
  def fit_predict(self, X, y=None):
151
- """Fit the model to the training set X and return the labels.
152
-
153
- **Not available for novelty detection (when novelty is set to True).**
154
- Label is 1 for an inlier and -1 for an outlier according to the LOF
155
- score and the contamination parameter.
156
-
157
- Parameters
158
- ----------
159
- X : {array-like, sparse matrix} of shape (n_samples, n_features), default=None
160
- The query sample or samples to compute the Local Outlier Factor
161
- w.r.t. the training samples.
162
-
163
- y : Ignored
164
- Not used, present for API consistency by convention.
165
-
166
- Returns
167
- -------
168
- is_inlier : ndarray of shape (n_samples,)
169
- Returns -1 for anomalies/outliers and 1 for inliers.
170
- """
171
149
  return self.fit(X)._predict()
172
150
 
173
151
  def _kneighbors(self, X=None, n_neighbors=None, return_distance=True):
174
152
  check_is_fitted(self)
175
- if sklearn_check_version("1.0") and X is not None:
176
- self._check_feature_names(X, reset=False)
153
+ if X is not None:
154
+ check_feature_names(self, X, reset=False)
177
155
  return dispatch(
178
156
  self,
179
157
  "kneighbors",
@@ -189,34 +167,9 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, _sklearn_LocalOutlierFactor)
189
167
  kneighbors = wrap_output_data(_kneighbors)
190
168
 
191
169
  @available_if(_sklearn_LocalOutlierFactor._check_novelty_score_samples)
170
+ @wraps(_sklearn_LocalOutlierFactor.score_samples, assigned=["__doc__"])
192
171
  @wrap_output_data
193
172
  def score_samples(self, X):
194
- """Opposite of the Local Outlier Factor of X.
195
-
196
- It is the opposite as bigger is better, i.e. large values correspond
197
- to inliers.
198
-
199
- **Only available for novelty detection (when novelty is set to True).**
200
- The argument X is supposed to contain *new data*: if X contains a
201
- point from training, it considers the later in its own neighborhood.
202
- Also, the samples in X are not considered in the neighborhood of any
203
- point. Because of this, the scores obtained via ``score_samples`` may
204
- differ from the standard LOF scores.
205
- The standard LOF scores for the training data is available via the
206
- ``negative_outlier_factor_`` attribute.
207
-
208
- Parameters
209
- ----------
210
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
211
- The query sample or samples to compute the Local Outlier Factor
212
- w.r.t. the training samples.
213
-
214
- Returns
215
- -------
216
- opposite_lof_scores : ndarray of shape (n_samples,)
217
- The opposite of the Local Outlier Factor of each input samples.
218
- The lower, the more abnormal.
219
- """
220
173
  check_is_fitted(self)
221
174
 
222
175
  distances_X, neighbors_indices_X = self._kneighbors(
@@ -25,18 +25,18 @@ from sklearn.neighbors._kd_tree import KDTree
25
25
  from sklearn.utils.validation import check_is_fitted
26
26
 
27
27
  from daal4py.sklearn._utils import sklearn_check_version
28
- from onedal.utils import _check_array, _num_features, _num_samples
28
+ from onedal.utils.validation import _check_array, _num_features, _num_samples
29
29
 
30
- from .._utils import PatchingConditionsChain
30
+ from .._utils import PatchableEstimator, PatchingConditionsChain
31
31
  from ..utils._array_api import get_namespace
32
+ from ..utils.validation import check_feature_names
32
33
 
33
34
 
34
- class KNeighborsDispatchingBase:
35
+ class KNeighborsDispatchingBase(PatchableEstimator):
35
36
  def _fit_validation(self, X, y=None):
36
37
  if sklearn_check_version("1.2"):
37
38
  self._validate_params()
38
- if sklearn_check_version("1.0"):
39
- self._check_feature_names(X, reset=True)
39
+ check_feature_names(self, X, reset=True)
40
40
  if self.metric_params is not None and "p" in self.metric_params:
41
41
  if self.p is not None:
42
42
  warnings.warn(