scikit-learn-intelex 2024.4.0__py312-none-win_amd64.whl → 2025.10.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.
Files changed (299) hide show
  1. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/_daal4py.cp312-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/__init__.py +94 -0
  5. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +1199 -0
  6. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +211 -0
  7. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +425 -0
  8. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp312-win_amd64.pyd +0 -0
  9. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  10. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +252 -0
  11. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +245 -0
  12. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  13. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  14. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +565 -0
  15. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  16. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
  17. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +528 -0
  18. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
  19. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +333 -0
  20. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  21. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1285 -0
  22. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  23. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn}/linear_model/__init__.py +29 -28
  24. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +826 -0
  25. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +269 -0
  26. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +290 -0
  27. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +2 -2
  28. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  29. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  30. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +561 -0
  31. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  32. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_enet.py +157 -0
  33. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +198 -0
  34. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  35. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold}/__init__.py +3 -3
  36. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +432 -0
  37. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  38. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +259 -0
  39. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  40. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +4 -2
  41. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  42. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  43. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  44. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  45. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +164 -0
  46. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  47. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
  48. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
  49. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  50. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +493 -0
  51. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +136 -0
  52. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +72 -0
  53. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  54. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  55. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  56. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +736 -0
  57. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
  58. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +80 -0
  59. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  60. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +772 -0
  61. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/__init__.py +151 -0
  62. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_config.py +80 -0
  63. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_device_offload.py +199 -0
  64. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  65. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  66. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +151 -0
  67. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +165 -0
  68. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +241 -0
  69. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +279 -0
  70. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +50 -0
  71. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  72. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/dbscan.py +80 -0
  73. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans.py +582 -0
  74. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +145 -0
  75. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  76. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  77. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  78. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_backend.py +258 -0
  79. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  80. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  81. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/hyperparameters.py +148 -0
  82. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/common/tests/test_sycl.py +148 -0
  83. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  84. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/covariance.py +121 -0
  85. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +151 -0
  86. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  87. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +190 -0
  88. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/__init__.py +29 -0
  89. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
  90. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
  91. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +63 -0
  92. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/common.py +131 -0
  93. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +686 -0
  94. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  95. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +218 -0
  96. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  97. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +291 -0
  98. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/__init__.py +19 -0
  99. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/dummy/dummy.py +137 -0
  100. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  101. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/forest.py +781 -0
  102. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  103. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  104. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +201 -0
  105. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +230 -0
  106. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +293 -0
  107. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +213 -0
  108. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +171 -0
  109. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +252 -0
  110. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  111. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  112. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/neighbors/__init__.py +19 -19
  113. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +690 -0
  114. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  115. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  116. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/get_tree.py +27 -0
  117. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +202 -0
  118. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  119. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  120. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/svm.py +592 -0
  121. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +352 -0
  122. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  123. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  124. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  125. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  126. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/test_common.py +71 -0
  127. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +179 -0
  128. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +94 -0
  129. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_array_api.py +98 -0
  130. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +213 -0
  131. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/_third_party.py +220 -0
  132. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/tests/test_validation.py +142 -0
  133. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal/utils/validation.py +503 -0
  134. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__init__.py +7 -3
  135. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/__main__.py +2 -2
  136. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_config.py +163 -0
  137. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +205 -0
  138. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/_utils.py +219 -0
  139. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
  140. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  141. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +241 -0
  142. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +128 -78
  143. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +405 -0
  144. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +101 -32
  145. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  146. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +38 -29
  147. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +399 -0
  148. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +8 -6
  149. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +157 -0
  150. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/conftest.py +20 -1
  151. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +440 -0
  152. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +307 -0
  153. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  154. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
  155. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +199 -21
  156. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +207 -2
  157. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/__init__.py +19 -17
  158. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/_dummy.py +615 -0
  159. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/dummy/tests/test_dummy.py +62 -0
  160. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +288 -440
  161. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +196 -0
  162. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +1 -1
  163. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +17 -3
  164. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/__init__.py +32 -0
  165. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +44 -0
  166. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +427 -0
  167. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +407 -0
  168. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +363 -0
  169. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +466 -0
  170. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/ridge.py +407 -0
  171. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +267 -0
  172. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +214 -0
  173. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +167 -0
  174. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
  175. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +256 -0
  176. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +11 -0
  177. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +256 -0
  178. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +3 -0
  179. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +3 -0
  180. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +3 -0
  181. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +30 -62
  182. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +56 -9
  183. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +45 -101
  184. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +63 -94
  185. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +49 -25
  186. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +6 -4
  187. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  188. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +261 -0
  189. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +54 -8
  190. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +19 -0
  191. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  192. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +390 -0
  193. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  194. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +24 -0
  195. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  196. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +117 -0
  197. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +314 -0
  198. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +9 -4
  199. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +108 -0
  200. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +180 -0
  201. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +3 -4
  202. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +24 -0
  203. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +29 -0
  204. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +120 -0
  205. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +200 -0
  206. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +20 -0
  207. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +23 -0
  208. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
  209. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +276 -0
  210. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +146 -0
  211. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
  212. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +299 -0
  213. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
  214. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +28 -0
  215. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
  216. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +345 -0
  217. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +162 -0
  218. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +169 -0
  219. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +1 -3
  220. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +433 -0
  221. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +403 -0
  222. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +99 -117
  223. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +55 -16
  224. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +95 -113
  225. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +51 -16
  226. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +43 -20
  227. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_common.py +607 -0
  228. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +256 -0
  229. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
  230. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +335 -0
  231. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +5 -4
  232. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +111 -0
  233. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +122 -75
  234. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +335 -0
  235. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +48 -0
  236. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/base.py +420 -0
  237. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +198 -0
  238. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/validation.py → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -1
  239. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
  240. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/class_weight.py +100 -0
  241. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
  242. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_class_weight.py +69 -0
  243. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +238 -0
  244. scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/sklearnex/utils/validation.py +212 -0
  245. scikit_learn_intelex-2025.10.0.dist-info/METADATA +182 -0
  246. scikit_learn_intelex-2025.10.0.dist-info/RECORD +267 -0
  247. {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/WHEEL +1 -1
  248. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_config.py +0 -110
  249. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -250
  250. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/_utils.py +0 -109
  251. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -17
  252. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -30
  253. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -130
  254. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -143
  255. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -335
  256. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -56
  257. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -113
  258. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -316
  259. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -17
  260. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -385
  261. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -117
  262. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -91
  263. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -26
  264. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  265. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
  266. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -133
  267. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
  268. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
  269. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/svm/_common.py +0 -185
  270. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -164
  271. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -39
  272. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +0 -227
  273. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -99
  274. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -428
  275. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -20
  276. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py +0 -97
  277. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
  278. scikit_learn_intelex-2024.4.0.dist-info/METADATA +0 -230
  279. scikit_learn_intelex-2024.4.0.dist-info/RECORD +0 -101
  280. {scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.10.0.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
  281. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  282. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  283. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  284. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  285. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  286. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  287. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  288. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  289. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  290. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  291. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  292. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  293. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  294. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  295. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  296. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  297. {scikit_learn_intelex-2024.4.0.data → scikit_learn_intelex-2025.10.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  298. {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/LICENSE.txt +0 -0
  299. {scikit_learn_intelex-2024.4.0.dist-info → scikit_learn_intelex-2025.10.0.dist-info}/top_level.txt +0 -0
@@ -15,9 +15,10 @@
15
15
  # ===============================================================================
16
16
 
17
17
  import warnings
18
+ from functools import wraps
18
19
 
19
20
  import numpy as np
20
- from sklearn.neighbors import LocalOutlierFactor as sklearn_LocalOutlierFactor
21
+ from sklearn.neighbors import LocalOutlierFactor as _sklearn_LocalOutlierFactor
21
22
  from sklearn.utils.metaestimators import available_if
22
23
  from sklearn.utils.validation import check_is_fitted
23
24
 
@@ -26,20 +27,22 @@ from daal4py.sklearn._utils import sklearn_check_version
26
27
  from sklearnex._device_offload import dispatch, wrap_output_data
27
28
  from sklearnex.neighbors.common import KNeighborsDispatchingBase
28
29
  from sklearnex.neighbors.knn_unsupervised import NearestNeighbors
29
- from sklearnex.utils import get_namespace
30
30
 
31
+ from ..utils._array_api import get_namespace
32
+ from ..utils.validation import check_feature_names
31
33
 
32
- @control_n_jobs(decorated_methods=["fit", "_kneighbors"])
33
- class LocalOutlierFactor(KNeighborsDispatchingBase, sklearn_LocalOutlierFactor):
34
+
35
+ @control_n_jobs(decorated_methods=["fit", "kneighbors", "_kneighbors"])
36
+ class LocalOutlierFactor(KNeighborsDispatchingBase, _sklearn_LocalOutlierFactor):
34
37
  __doc__ = (
35
- sklearn_LocalOutlierFactor.__doc__
38
+ _sklearn_LocalOutlierFactor.__doc__
36
39
  + "\n NOTE: When X=None, methods kneighbors, kneighbors_graph, and predict will"
37
40
  + "\n only output numpy arrays. In that case, the only way to offload to gpu"
38
41
  + "\n is to use a global queue (e.g. using config_context)"
39
42
  )
40
43
  if sklearn_check_version("1.2"):
41
44
  _parameter_constraints: dict = {
42
- **sklearn_LocalOutlierFactor._parameter_constraints
45
+ **_sklearn_LocalOutlierFactor._parameter_constraints
43
46
  }
44
47
 
45
48
  # Only certain methods should be taken from knn to prevent code
@@ -53,7 +56,7 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, sklearn_LocalOutlierFactor):
53
56
  if sklearn_check_version("1.2"):
54
57
  self._validate_params()
55
58
 
56
- self._onedal_knn_fit(X, y, queue)
59
+ self._onedal_knn_fit(X, y, queue=queue)
57
60
 
58
61
  if self.contamination != "auto":
59
62
  if not (0.0 < self.contamination <= 0.5):
@@ -97,6 +100,15 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, sklearn_LocalOutlierFactor):
97
100
  self.negative_outlier_factor_, 100.0 * self.contamination
98
101
  )
99
102
 
103
+ # adoption of warning for data with duplicated samples from
104
+ # https://github.com/scikit-learn/scikit-learn/pull/28773
105
+ if sklearn_check_version("1.6"):
106
+ if np.min(self.negative_outlier_factor_) < -1e7 and not self.novelty:
107
+ warnings.warn(
108
+ "Duplicate values are leading to incorrect results. "
109
+ "Increase the number of neighbors for more accurate results."
110
+ )
111
+
100
112
  return self
101
113
 
102
114
  def fit(self, X, y=None):
@@ -105,7 +117,7 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, sklearn_LocalOutlierFactor):
105
117
  "fit",
106
118
  {
107
119
  "onedal": self.__class__._onedal_fit,
108
- "sklearn": sklearn_LocalOutlierFactor.fit,
120
+ "sklearn": _sklearn_LocalOutlierFactor.fit,
109
121
  },
110
122
  X,
111
123
  None,
@@ -129,42 +141,23 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, sklearn_LocalOutlierFactor):
129
141
  # This had to be done because predict loses the queue when no
130
142
  # argument is given and it is a dpctl tensor or dpnp array.
131
143
  # This would cause issues in fit_predict. Also, available_if
132
- # is hard to unwrap, and this is the most straighforward way.
133
- @available_if(sklearn_LocalOutlierFactor._check_novelty_fit_predict)
144
+ # is hard to unwrap, and this is the most straightforward way.
145
+ @available_if(_sklearn_LocalOutlierFactor._check_novelty_fit_predict)
146
+ @wraps(_sklearn_LocalOutlierFactor.fit_predict, assigned=["__doc__"])
134
147
  @wrap_output_data
135
148
  def fit_predict(self, X, y=None):
136
- """Fit the model to the training set X and return the labels.
137
-
138
- **Not available for novelty detection (when novelty is set to True).**
139
- Label is 1 for an inlier and -1 for an outlier according to the LOF
140
- score and the contamination parameter.
141
-
142
- Parameters
143
- ----------
144
- X : {array-like, sparse matrix} of shape (n_samples, n_features), default=None
145
- The query sample or samples to compute the Local Outlier Factor
146
- w.r.t. the training samples.
147
-
148
- y : Ignored
149
- Not used, present for API consistency by convention.
150
-
151
- Returns
152
- -------
153
- is_inlier : ndarray of shape (n_samples,)
154
- Returns -1 for anomalies/outliers and 1 for inliers.
155
- """
156
149
  return self.fit(X)._predict()
157
150
 
158
151
  def _kneighbors(self, X=None, n_neighbors=None, return_distance=True):
159
152
  check_is_fitted(self)
160
- if sklearn_check_version("1.0") and X is not None:
161
- self._check_feature_names(X, reset=False)
153
+ if X is not None:
154
+ check_feature_names(self, X, reset=False)
162
155
  return dispatch(
163
156
  self,
164
157
  "kneighbors",
165
158
  {
166
159
  "onedal": self.__class__._onedal_kneighbors,
167
- "sklearn": sklearn_LocalOutlierFactor.kneighbors,
160
+ "sklearn": _sklearn_LocalOutlierFactor.kneighbors,
168
161
  },
169
162
  X,
170
163
  n_neighbors=n_neighbors,
@@ -173,35 +166,10 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, sklearn_LocalOutlierFactor):
173
166
 
174
167
  kneighbors = wrap_output_data(_kneighbors)
175
168
 
176
- @available_if(sklearn_LocalOutlierFactor._check_novelty_score_samples)
169
+ @available_if(_sklearn_LocalOutlierFactor._check_novelty_score_samples)
170
+ @wraps(_sklearn_LocalOutlierFactor.score_samples, assigned=["__doc__"])
177
171
  @wrap_output_data
178
172
  def score_samples(self, X):
179
- """Opposite of the Local Outlier Factor of X.
180
-
181
- It is the opposite as bigger is better, i.e. large values correspond
182
- to inliers.
183
-
184
- **Only available for novelty detection (when novelty is set to True).**
185
- The argument X is supposed to contain *new data*: if X contains a
186
- point from training, it considers the later in its own neighborhood.
187
- Also, the samples in X are not considered in the neighborhood of any
188
- point. Because of this, the scores obtained via ``score_samples`` may
189
- differ from the standard LOF scores.
190
- The standard LOF scores for the training data is available via the
191
- ``negative_outlier_factor_`` attribute.
192
-
193
- Parameters
194
- ----------
195
- X : {array-like, sparse matrix} of shape (n_samples, n_features)
196
- The query sample or samples to compute the Local Outlier Factor
197
- w.r.t. the training samples.
198
-
199
- Returns
200
- -------
201
- opposite_lof_scores : ndarray of shape (n_samples,)
202
- The opposite of the Local Outlier Factor of each input samples.
203
- The lower, the more abnormal.
204
- """
205
173
  check_is_fitted(self)
206
174
 
207
175
  distances_X, neighbors_indices_X = self._kneighbors(
@@ -217,5 +185,5 @@ class LocalOutlierFactor(KNeighborsDispatchingBase, sklearn_LocalOutlierFactor):
217
185
 
218
186
  return -np.mean(lrd_ratios_array, axis=1)
219
187
 
220
- fit.__doc__ = sklearn_LocalOutlierFactor.fit.__doc__
221
- kneighbors.__doc__ = sklearn_LocalOutlierFactor.kneighbors.__doc__
188
+ fit.__doc__ = _sklearn_LocalOutlierFactor.fit.__doc__
189
+ kneighbors.__doc__ = _sklearn_LocalOutlierFactor.kneighbors.__doc__
@@ -19,22 +19,26 @@ import warnings
19
19
  import numpy as np
20
20
  from scipy import sparse as sp
21
21
  from sklearn.neighbors._ball_tree import BallTree
22
- from sklearn.neighbors._base import VALID_METRICS
23
- from sklearn.neighbors._base import NeighborsBase as sklearn_NeighborsBase
22
+ from sklearn.neighbors._base import VALID_METRICS, KNeighborsMixin
23
+ from sklearn.neighbors._base import NeighborsBase as _sklearn_NeighborsBase
24
24
  from sklearn.neighbors._kd_tree import KDTree
25
+ from sklearn.utils.validation import check_is_fitted
25
26
 
26
27
  from daal4py.sklearn._utils import sklearn_check_version
27
- from onedal.utils import _check_array, _num_features, _num_samples
28
+ from onedal._device_offload import _transfer_to_host
29
+ from onedal.utils.validation import _check_array, _num_features, _num_samples
28
30
 
29
31
  from .._utils import PatchingConditionsChain
32
+ from ..base import oneDALEstimator
33
+ from ..utils._array_api import get_namespace
34
+ from ..utils.validation import check_feature_names
30
35
 
31
36
 
32
- class KNeighborsDispatchingBase:
37
+ class KNeighborsDispatchingBase(oneDALEstimator):
33
38
  def _fit_validation(self, X, y=None):
34
39
  if sklearn_check_version("1.2"):
35
40
  self._validate_params()
36
- if sklearn_check_version("1.0"):
37
- self._check_feature_names(X, reset=True)
41
+ check_feature_names(self, X, reset=True)
38
42
  if self.metric_params is not None and "p" in self.metric_params:
39
43
  if self.p is not None:
40
44
  warnings.warn(
@@ -62,7 +66,7 @@ class KNeighborsDispatchingBase:
62
66
  elif p == np.inf:
63
67
  self.effective_metric_ = "chebyshev"
64
68
 
65
- if not isinstance(X, (KDTree, BallTree, sklearn_NeighborsBase)):
69
+ if not isinstance(X, (KDTree, BallTree, _sklearn_NeighborsBase)):
66
70
  self._fit_X = _check_array(
67
71
  X, dtype=[np.float64, np.float32], accept_sparse=True
68
72
  )
@@ -95,7 +99,7 @@ class KNeighborsDispatchingBase:
95
99
  delattr(self, "_onedal_estimator")
96
100
  # To cover test case when we pass patched
97
101
  # estimator as an input for other estimator
98
- if isinstance(X, sklearn_NeighborsBase):
102
+ if isinstance(X, _sklearn_NeighborsBase):
99
103
  self._fit_X = X._fit_X
100
104
  self._tree = X._tree
101
105
  self._fit_method = X._fit_method
@@ -147,9 +151,13 @@ class KNeighborsDispatchingBase:
147
151
  patching_status = PatchingConditionsChain(
148
152
  f"sklearn.neighbors.{class_name}.{method_name}"
149
153
  )
154
+ if not patching_status.and_condition(
155
+ "radius" not in method_name, "RadiusNeighbors not implemented in sklearnex"
156
+ ):
157
+ return patching_status
150
158
 
151
159
  if not patching_status.and_condition(
152
- not isinstance(data[0], (KDTree, BallTree, sklearn_NeighborsBase)),
160
+ not isinstance(data[0], (KDTree, BallTree, _sklearn_NeighborsBase)),
153
161
  f"Input type {type(data[0])} is not supported.",
154
162
  ):
155
163
  return patching_status
@@ -264,3 +272,42 @@ class KNeighborsDispatchingBase:
264
272
 
265
273
  def _onedal_cpu_supported(self, method_name, *data):
266
274
  return self._onedal_supported("cpu", method_name, *data)
275
+
276
+ def kneighbors_graph(self, X=None, n_neighbors=None, mode="connectivity"):
277
+ check_is_fitted(self)
278
+ if n_neighbors is None:
279
+ n_neighbors = self.n_neighbors
280
+
281
+ # check the input only in self.kneighbors
282
+
283
+ # construct CSR matrix representation of the k-NN graph
284
+ # requires moving data to host to construct the csr_matrix
285
+ if mode == "connectivity":
286
+ A_ind = self.kneighbors(X, n_neighbors, return_distance=False)
287
+ _, (A_ind,) = _transfer_to_host(A_ind)
288
+ n_queries = A_ind.shape[0]
289
+ A_data = np.ones(n_queries * n_neighbors)
290
+
291
+ elif mode == "distance":
292
+ A_data, A_ind = self.kneighbors(X, n_neighbors, return_distance=True)
293
+ _, (A_data, A_ind) = _transfer_to_host(A_data, A_ind)
294
+ A_data = np.reshape(A_data, (-1,))
295
+
296
+ else:
297
+ raise ValueError(
298
+ 'Unsupported mode, must be one of "connectivity", '
299
+ f'or "distance" but got "{mode}" instead'
300
+ )
301
+
302
+ n_queries = A_ind.shape[0]
303
+ n_samples_fit = self.n_samples_fit_
304
+ n_nonzero = n_queries * n_neighbors
305
+ A_indptr = np.arange(0, n_nonzero + 1, n_neighbors)
306
+
307
+ kneighbors_graph = sp.csr_matrix(
308
+ (A_data, np.reshape(A_ind, (-1,)), A_indptr), shape=(n_queries, n_samples_fit)
309
+ )
310
+
311
+ return kneighbors_graph
312
+
313
+ kneighbors_graph.__doc__ = KNeighborsMixin.kneighbors_graph.__doc__
@@ -16,81 +16,52 @@
16
16
 
17
17
  from sklearn.metrics import accuracy_score
18
18
  from sklearn.neighbors._classification import (
19
- KNeighborsClassifier as sklearn_KNeighborsClassifier,
19
+ KNeighborsClassifier as _sklearn_KNeighborsClassifier,
20
20
  )
21
- from sklearn.neighbors._unsupervised import NearestNeighbors as sklearn_NearestNeighbors
22
- from sklearn.utils.validation import _deprecate_positional_args, check_is_fitted
21
+ from sklearn.utils.validation import check_is_fitted
23
22
 
24
23
  from daal4py.sklearn._n_jobs_support import control_n_jobs
25
24
  from daal4py.sklearn._utils import sklearn_check_version
25
+ from daal4py.sklearn.utils.validation import get_requires_y_tag
26
26
  from onedal.neighbors import KNeighborsClassifier as onedal_KNeighborsClassifier
27
27
 
28
28
  from .._device_offload import dispatch, wrap_output_data
29
+ from ..utils.validation import check_feature_names
29
30
  from .common import KNeighborsDispatchingBase
30
31
 
31
32
 
32
33
  @control_n_jobs(
33
34
  decorated_methods=["fit", "predict", "predict_proba", "kneighbors", "score"]
34
35
  )
35
- class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBase):
36
- __doc__ = sklearn_KNeighborsClassifier.__doc__
36
+ class KNeighborsClassifier(KNeighborsDispatchingBase, _sklearn_KNeighborsClassifier):
37
+ __doc__ = _sklearn_KNeighborsClassifier.__doc__
37
38
  if sklearn_check_version("1.2"):
38
39
  _parameter_constraints: dict = {
39
- **sklearn_KNeighborsClassifier._parameter_constraints
40
+ **_sklearn_KNeighborsClassifier._parameter_constraints
40
41
  }
41
42
 
42
- if sklearn_check_version("1.0"):
43
-
44
- def __init__(
45
- self,
46
- n_neighbors=5,
47
- *,
48
- weights="uniform",
49
- algorithm="auto",
50
- leaf_size=30,
51
- p=2,
52
- metric="minkowski",
53
- metric_params=None,
54
- n_jobs=None,
55
- ):
56
- super().__init__(
57
- n_neighbors=n_neighbors,
58
- weights=weights,
59
- algorithm=algorithm,
60
- leaf_size=leaf_size,
61
- metric=metric,
62
- p=p,
63
- metric_params=metric_params,
64
- n_jobs=n_jobs,
65
- )
66
-
67
- else:
68
-
69
- @_deprecate_positional_args
70
- def __init__(
71
- self,
72
- n_neighbors=5,
73
- *,
74
- weights="uniform",
75
- algorithm="auto",
76
- leaf_size=30,
77
- p=2,
78
- metric="minkowski",
79
- metric_params=None,
80
- n_jobs=None,
81
- **kwargs,
82
- ):
83
- super().__init__(
84
- n_neighbors=n_neighbors,
85
- weights=weights,
86
- algorithm=algorithm,
87
- leaf_size=leaf_size,
88
- metric=metric,
89
- p=p,
90
- metric_params=metric_params,
91
- n_jobs=n_jobs,
92
- **kwargs,
93
- )
43
+ def __init__(
44
+ self,
45
+ n_neighbors=5,
46
+ *,
47
+ weights="uniform",
48
+ algorithm="auto",
49
+ leaf_size=30,
50
+ p=2,
51
+ metric="minkowski",
52
+ metric_params=None,
53
+ n_jobs=None,
54
+ ):
55
+ super().__init__(
56
+ n_neighbors=n_neighbors,
57
+ weights=weights,
58
+ algorithm=algorithm,
59
+ leaf_size=leaf_size,
60
+ metric=metric,
61
+ p=p,
62
+ metric_params=metric_params,
63
+ n_jobs=n_jobs,
64
+ )
94
65
 
95
66
  def fit(self, X, y):
96
67
  dispatch(
@@ -98,7 +69,7 @@ class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBa
98
69
  "fit",
99
70
  {
100
71
  "onedal": self.__class__._onedal_fit,
101
- "sklearn": sklearn_KNeighborsClassifier.fit,
72
+ "sklearn": _sklearn_KNeighborsClassifier.fit,
102
73
  },
103
74
  X,
104
75
  y,
@@ -108,14 +79,13 @@ class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBa
108
79
  @wrap_output_data
109
80
  def predict(self, X):
110
81
  check_is_fitted(self)
111
- if sklearn_check_version("1.0"):
112
- self._check_feature_names(X, reset=False)
82
+ check_feature_names(self, X, reset=False)
113
83
  return dispatch(
114
84
  self,
115
85
  "predict",
116
86
  {
117
87
  "onedal": self.__class__._onedal_predict,
118
- "sklearn": sklearn_KNeighborsClassifier.predict,
88
+ "sklearn": _sklearn_KNeighborsClassifier.predict,
119
89
  },
120
90
  X,
121
91
  )
@@ -123,14 +93,13 @@ class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBa
123
93
  @wrap_output_data
124
94
  def predict_proba(self, X):
125
95
  check_is_fitted(self)
126
- if sklearn_check_version("1.0"):
127
- self._check_feature_names(X, reset=False)
96
+ check_feature_names(self, X, reset=False)
128
97
  return dispatch(
129
98
  self,
130
99
  "predict_proba",
131
100
  {
132
101
  "onedal": self.__class__._onedal_predict_proba,
133
- "sklearn": sklearn_KNeighborsClassifier.predict_proba,
102
+ "sklearn": _sklearn_KNeighborsClassifier.predict_proba,
134
103
  },
135
104
  X,
136
105
  )
@@ -138,14 +107,13 @@ class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBa
138
107
  @wrap_output_data
139
108
  def score(self, X, y, sample_weight=None):
140
109
  check_is_fitted(self)
141
- if sklearn_check_version("1.0"):
142
- self._check_feature_names(X, reset=False)
110
+ check_feature_names(self, X, reset=False)
143
111
  return dispatch(
144
112
  self,
145
113
  "score",
146
114
  {
147
115
  "onedal": self.__class__._onedal_score,
148
- "sklearn": sklearn_KNeighborsClassifier.score,
116
+ "sklearn": _sklearn_KNeighborsClassifier.score,
149
117
  },
150
118
  X,
151
119
  y,
@@ -155,38 +123,20 @@ class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBa
155
123
  @wrap_output_data
156
124
  def kneighbors(self, X=None, n_neighbors=None, return_distance=True):
157
125
  check_is_fitted(self)
158
- if sklearn_check_version("1.0") and X is not None:
159
- self._check_feature_names(X, reset=False)
126
+ if X is not None:
127
+ check_feature_names(self, X, reset=False)
160
128
  return dispatch(
161
129
  self,
162
130
  "kneighbors",
163
131
  {
164
132
  "onedal": self.__class__._onedal_kneighbors,
165
- "sklearn": sklearn_KNeighborsClassifier.kneighbors,
133
+ "sklearn": _sklearn_KNeighborsClassifier.kneighbors,
166
134
  },
167
135
  X,
168
136
  n_neighbors=n_neighbors,
169
137
  return_distance=return_distance,
170
138
  )
171
139
 
172
- @wrap_output_data
173
- def radius_neighbors(
174
- self, X=None, radius=None, return_distance=True, sort_results=False
175
- ):
176
- _onedal_estimator = getattr(self, "_onedal_estimator", None)
177
-
178
- if (
179
- _onedal_estimator is not None
180
- or getattr(self, "_tree", 0) is None
181
- and self._fit_method == "kd_tree"
182
- ):
183
- sklearn_NearestNeighbors.fit(self, self._fit_X, getattr(self, "_y", None))
184
- result = sklearn_NearestNeighbors.radius_neighbors(
185
- self, X, radius, return_distance, sort_results
186
- )
187
-
188
- return result
189
-
190
140
  def _onedal_fit(self, X, y, queue=None):
191
141
  onedal_params = {
192
142
  "n_neighbors": self.n_neighbors,
@@ -196,13 +146,8 @@ class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBa
196
146
  "p": self.effective_metric_params_["p"],
197
147
  }
198
148
 
199
- try:
200
- requires_y = self._get_tags()["requires_y"]
201
- except KeyError:
202
- requires_y = False
203
-
204
149
  self._onedal_estimator = onedal_KNeighborsClassifier(**onedal_params)
205
- self._onedal_estimator.requires_y = requires_y
150
+ self._onedal_estimator.requires_y = get_requires_y_tag(self)
206
151
  self._onedal_estimator.effective_metric_ = self.effective_metric_
207
152
  self._onedal_estimator.effective_metric_params_ = self.effective_metric_params_
208
153
  self._onedal_estimator.fit(X, y, queue=queue)
@@ -237,9 +182,8 @@ class KNeighborsClassifier(sklearn_KNeighborsClassifier, KNeighborsDispatchingBa
237
182
  self.outputs_2d_ = self._onedal_estimator.outputs_2d_
238
183
  self._tree = self._onedal_estimator._tree
239
184
 
240
- fit.__doc__ = sklearn_KNeighborsClassifier.fit.__doc__
241
- predict.__doc__ = sklearn_KNeighborsClassifier.predict.__doc__
242
- predict_proba.__doc__ = sklearn_KNeighborsClassifier.predict_proba.__doc__
243
- score.__doc__ = sklearn_KNeighborsClassifier.score.__doc__
244
- kneighbors.__doc__ = sklearn_KNeighborsClassifier.kneighbors.__doc__
245
- radius_neighbors.__doc__ = sklearn_NearestNeighbors.radius_neighbors.__doc__
185
+ fit.__doc__ = _sklearn_KNeighborsClassifier.fit.__doc__
186
+ predict.__doc__ = _sklearn_KNeighborsClassifier.predict.__doc__
187
+ predict_proba.__doc__ = _sklearn_KNeighborsClassifier.predict_proba.__doc__
188
+ score.__doc__ = _sklearn_KNeighborsClassifier.score.__doc__
189
+ kneighbors.__doc__ = _sklearn_KNeighborsClassifier.kneighbors.__doc__