scikit-learn-intelex 2025.8.0__py310-none-win_amd64.whl → 2025.9.0__py310-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 (268) hide show
  1. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
  2. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +19 -8
  3. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +17 -23
  4. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
  5. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +57 -128
  6. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +5 -2
  7. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +2 -2
  8. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
  9. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
  10. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +1 -8
  11. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +13 -18
  12. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +3 -3
  13. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +3 -1
  14. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_dlpack.py +8 -5
  15. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +69 -1
  16. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -40
  17. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  18. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +11 -5
  19. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +20 -1
  20. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +5 -4
  21. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -5
  22. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +139 -100
  23. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +30 -0
  24. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  25. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +56 -2
  26. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +115 -39
  27. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +110 -122
  28. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +260 -0
  29. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  30. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +55 -1
  31. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +7 -4
  32. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +7 -4
  33. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +7 -2
  34. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
  35. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +2 -2
  36. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +19 -6
  37. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
  38. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +136 -13
  39. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +71 -8
  40. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -1
  41. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +1 -1
  42. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +7 -3
  43. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +65 -1
  44. {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/METADATA +83 -92
  45. scikit_learn_intelex-2025.9.0.dist-info/RECORD +259 -0
  46. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
  47. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
  48. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
  49. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +0 -200
  50. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -428
  51. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -128
  52. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -227
  53. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  54. scikit_learn_intelex-2025.8.0.dist-info/RECORD +0 -259
  55. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  56. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  57. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +0 -0
  58. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +0 -0
  59. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  60. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
  61. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  62. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  63. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
  64. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  65. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  66. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  67. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  68. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
  69. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
  70. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  71. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
  72. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  73. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  74. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  75. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  76. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  77. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  78. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  79. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
  80. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  81. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  82. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  83. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  84. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
  85. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  86. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
  87. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  88. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  89. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  90. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  91. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  92. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
  93. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  94. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  95. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  96. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  97. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
  98. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
  99. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
  100. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  101. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  102. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  103. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
  104. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  105. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
  106. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  107. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  108. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
  109. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_device_offload.py +0 -0
  110. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  111. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +0 -0
  112. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +0 -0
  113. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
  114. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  115. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  116. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  117. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
  118. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +0 -0
  119. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
  120. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  121. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  122. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  123. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
  124. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  125. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  126. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +0 -0
  127. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +0 -0
  128. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  129. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  130. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
  131. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +0 -0
  132. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  133. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  134. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  135. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +0 -0
  136. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  137. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  138. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +0 -0
  139. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +0 -0
  140. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  141. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  142. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
  143. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  144. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  145. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  147. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
  149. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +0 -0
  150. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
  151. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  152. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
  153. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
  154. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
  155. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
  156. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
  157. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
  158. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
  159. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  160. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +0 -0
  161. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +0 -0
  162. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +0 -0
  163. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_third_party.py +0 -0
  164. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
  165. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
  166. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  167. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  168. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +0 -0
  169. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
  170. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/base.py +0 -0
  171. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  172. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +0 -0
  173. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +0 -0
  174. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  175. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  176. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  177. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
  178. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -0
  179. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  180. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  181. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  182. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  183. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  184. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +0 -0
  185. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  186. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  187. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +0 -0
  188. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  189. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  190. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  191. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  192. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
  193. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +0 -0
  194. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +0 -0
  195. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -0
  196. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -0
  197. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  198. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  199. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
  200. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  201. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  202. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
  203. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  204. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  205. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  206. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  207. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  208. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  209. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  210. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  211. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
  213. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +0 -0
  214. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  215. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  216. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  217. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  218. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  219. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  220. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  221. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  222. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  223. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  224. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  225. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  226. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
  227. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +0 -0
  228. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  229. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  230. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  231. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  232. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
  233. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  234. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  235. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  236. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  237. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  238. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  239. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
  240. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  241. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  242. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  243. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  244. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +0 -0
  245. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
  246. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
  247. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  248. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
  249. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  250. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
  251. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  252. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  253. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
  254. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
  255. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
  256. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  257. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  258. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
  259. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  260. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +0 -0
  261. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  262. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  263. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  264. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  265. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  266. {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/LICENSE.txt +0 -0
  267. {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/WHEEL +0 -0
  268. {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/top_level.txt +0 -0
@@ -16,9 +16,12 @@
16
16
 
17
17
  import numpy as np
18
18
  import pytest
19
+ import scipy.sparse as sp
19
20
  from numpy.testing import assert_allclose
21
+ from sklearn.base import clone
22
+ from sklearn.datasets import load_iris
20
23
 
21
- from daal4py.sklearn._utils import daal_check_version
24
+ from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
22
25
  from onedal.tests.utils._dataframes_support import (
23
26
  _as_numpy,
24
27
  _convert_to_dataframe,
@@ -334,3 +337,54 @@ def test_sklearnex_incremental_estimatior_pickle(dataframe, queue, dtype):
334
337
  incpca_loaded.explained_variance_ratio_,
335
338
  atol=1e-6,
336
339
  )
340
+
341
+
342
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues("numpy,dpctl"))
343
+ def test_changed_estimated_attributes(with_array_api, dataframe, queue):
344
+ # check that attributes necessary for the PCA onedal estimator match
345
+ # changes occurring in the sklearnex estimator
346
+ X, y = load_iris(return_X_y=True)
347
+
348
+ X_0 = _convert_to_dataframe(X[y == 0], sycl_queue=queue, target_df=dataframe)
349
+ X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
350
+
351
+ est0 = IncrementalPCA(n_components=4).fit(X_0)
352
+ est = clone(est0)
353
+ assert not hasattr(est, "_onedal_estimator")
354
+ est.fit(X)
355
+ assert not np.array_equal(_as_numpy(est.transform(X)), _as_numpy(est0.transform(X)))
356
+
357
+ # copy over parameters necessary for transform
358
+ est.mean_ = est0.mean_
359
+ est.components_ = est0.components_
360
+ est.explained_variance_ = est0.explained_variance_
361
+ est.n_components_ = est0.n_components_ # is trivial but exercises the logic
362
+
363
+ assert np.array_equal(_as_numpy(est.transform(X)), _as_numpy(est0.transform(X)))
364
+
365
+
366
+ @pytest.mark.skipif(
367
+ not sklearn_check_version("1.5"),
368
+ reason='svd_solver="auto" does not support sparse inputs',
369
+ )
370
+ @pytest.mark.allow_sklearn_fallback
371
+ def test_create_model_behavior():
372
+ # verify that fit fallbacks does not break ``transform`` as the oneDAL
373
+ # model is generated JIT
374
+
375
+ X, _ = load_iris(return_X_y=True)
376
+ # generate a onedal estimator
377
+ est = IncrementalPCA(n_components=3)
378
+ X_trans = est.fit_transform(X)
379
+
380
+ # force data to sparse for a fallback to sklearn
381
+ X_sp = sp.csr_matrix(X)
382
+ est.fit(X_sp)
383
+ # In the case of a fallback, the model should be set to none by clobbered
384
+ # fitted attributes
385
+ assert est._onedal_estimator._onedal_model is None
386
+
387
+ X_trans_sparse = est.transform(X)
388
+ # use allclose as data was fit with sklearn and onedal on the same data
389
+ # but using different backends
390
+ assert_allclose(X_trans, X_trans_sparse)
@@ -14,8 +14,11 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from onedal.spmd.covariance import EmpiricalCovariance
17
+ from onedal.spmd.covariance import EmpiricalCovariance as onedal_EmpiricalCovariance
18
18
 
19
- # TODO:
20
- # Currently it uses `onedal` module interface.
21
- # Add sklearnex dispatching.
19
+ from ...preview.covariance import EmpiricalCovariance as EmpiricalCovariance_Batch
20
+
21
+
22
+ class EmpiricalCovariance(EmpiricalCovariance_Batch):
23
+ __doc__ = EmpiricalCovariance_Batch.__doc__
24
+ _onedal_covariance = staticmethod(onedal_EmpiricalCovariance)
@@ -42,7 +42,9 @@ from sklearnex.tests.utils.spmd import (
42
42
  @pytest.mark.mpi
43
43
  def test_covariance_spmd_gold(dataframe, queue):
44
44
  # Import spmd and batch algo
45
- from onedal.covariance import EmpiricalCovariance as EmpiricalCovariance_Batch
45
+ from sklearnex.preview.covariance import (
46
+ EmpiricalCovariance as EmpiricalCovariance_Batch,
47
+ )
46
48
  from sklearnex.spmd.covariance import EmpiricalCovariance as EmpiricalCovariance_SPMD
47
49
 
48
50
  # Create gold data and convert to dataframe
@@ -81,7 +83,7 @@ def test_covariance_spmd_gold(dataframe, queue):
81
83
  @pytest.mark.parametrize("assume_centered", [True, False])
82
84
  @pytest.mark.parametrize(
83
85
  "dataframe,queue",
84
- get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
86
+ get_dataframes_and_queues(dataframe_filter_="dpnp", device_filter_="gpu"),
85
87
  )
86
88
  @pytest.mark.parametrize("dtype", [np.float32, np.float64])
87
89
  @pytest.mark.parametrize("use_raw_input", [True, False])
@@ -90,8 +92,9 @@ def test_covariance_spmd_synthetic(
90
92
  n_samples, n_features, assume_centered, dataframe, queue, dtype, use_raw_input
91
93
  ):
92
94
  # Import spmd and batch algo
93
- # TODO: Align sklearnex spmd to sklearnex estimator with bias and swap onedal with sklearnex
94
- from onedal.covariance import EmpiricalCovariance as EmpiricalCovariance_Batch
95
+ from sklearnex.preview.covariance import (
96
+ EmpiricalCovariance as EmpiricalCovariance_Batch,
97
+ )
95
98
  from sklearnex.spmd.covariance import EmpiricalCovariance as EmpiricalCovariance_SPMD
96
99
 
97
100
  # Generate data and convert to dataframe
@@ -19,6 +19,7 @@ import pytest
19
19
  from numpy.testing import assert_allclose
20
20
 
21
21
  from onedal.tests.utils._dataframes_support import (
22
+ _as_numpy,
22
23
  _convert_to_dataframe,
23
24
  get_dataframes_and_queues,
24
25
  )
@@ -191,5 +192,9 @@ def test_incremental_covariance_partial_fit_spmd_synthetic(
191
192
 
192
193
  tol = 1e-7
193
194
 
194
- assert_allclose(inccov_spmd.covariance_, inccov.covariance_, atol=tol)
195
- assert_allclose(inccov_spmd.location_, inccov.location_, atol=tol)
195
+ assert_allclose(
196
+ _as_numpy(inccov_spmd.covariance_), _as_numpy(inccov.covariance_), atol=tol
197
+ )
198
+ assert_allclose(
199
+ _as_numpy(inccov_spmd.location_), _as_numpy(inccov.location_), atol=tol
200
+ )
@@ -14,8 +14,10 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- from onedal.spmd.decomposition import PCA
17
+ from onedal.spmd.decomposition import PCA as onedal_PCA
18
18
 
19
- # TODO:
20
- # Currently it uses `onedal` module interface.
21
- # Add sklearnex dispatching.
19
+ from ...decomposition import PCA as base_PCA
20
+
21
+
22
+ class PCA(base_PCA):
23
+ _onedal_PCA = staticmethod(onedal_PCA)
@@ -262,8 +262,8 @@ def test_incremental_pca_partial_fit_spmd_random(
262
262
 
263
263
  for attribute in attributes_to_compare:
264
264
  assert_allclose(
265
- getattr(incpca, attribute),
266
- getattr(incpca_spmd, attribute),
265
+ _as_numpy(getattr(incpca, attribute)),
266
+ _as_numpy(getattr(incpca_spmd, attribute)),
267
267
  atol=tol,
268
268
  err_msg=f"{attribute} is incorrect",
269
269
  )
@@ -19,6 +19,7 @@ import pytest
19
19
  from numpy.testing import assert_allclose
20
20
 
21
21
  from onedal.tests.utils._dataframes_support import (
22
+ _as_numpy,
22
23
  _convert_to_dataframe,
23
24
  get_dataframes_and_queues,
24
25
  )
@@ -122,12 +123,24 @@ def test_pca_spmd_synthetic(
122
123
  batch_result = PCA_Batch(n_components=n_components, whiten=whiten).fit(data)
123
124
 
124
125
  tol = 1e-3 if dtype == np.float32 else 1e-7
125
- assert_allclose(spmd_result.mean_, batch_result.mean_, atol=tol)
126
- assert_allclose(spmd_result.components_, batch_result.components_, atol=tol, rtol=tol)
127
- assert_allclose(spmd_result.singular_values_, batch_result.singular_values_, atol=tol)
128
- assert_allclose(spmd_result.noise_variance_, batch_result.noise_variance_, atol=tol)
129
126
  assert_allclose(
130
- spmd_result.explained_variance_ratio_,
131
- batch_result.explained_variance_ratio_,
127
+ _as_numpy(spmd_result.components_),
128
+ _as_numpy(batch_result.components_),
129
+ atol=tol,
130
+ rtol=tol,
131
+ )
132
+ assert_allclose(
133
+ _as_numpy(spmd_result.singular_values_),
134
+ _as_numpy(batch_result.singular_values_),
135
+ atol=tol,
136
+ )
137
+ assert_allclose(
138
+ _as_numpy(spmd_result.noise_variance_),
139
+ _as_numpy(batch_result.noise_variance_),
140
+ atol=tol,
141
+ )
142
+ assert_allclose(
143
+ _as_numpy(spmd_result.explained_variance_ratio_),
144
+ _as_numpy(batch_result.explained_variance_ratio_),
132
145
  atol=tol,
133
146
  )
@@ -0,0 +1,23 @@
1
+ # ==============================================================================
2
+ # Copyright 2023 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ from onedal.spmd.neighbors import (
18
+ KNeighborsClassifier,
19
+ KNeighborsRegressor,
20
+ NearestNeighbors,
21
+ )
22
+
23
+ __all__ = ["KNeighborsClassifier", "KNeighborsRegressor", "NearestNeighbors"]
@@ -24,9 +24,9 @@ from onedal.tests.utils._dataframes_support import (
24
24
  )
25
25
  from sklearnex import config_context
26
26
  from sklearnex.tests.utils.spmd import (
27
- _assert_unordered_allclose,
28
27
  _generate_classification_data,
29
28
  _generate_regression_data,
29
+ _generate_statistic_data,
30
30
  _get_local_tensor,
31
31
  _mpi_libs_and_gpu_available,
32
32
  _spmd_assert_allclose,
@@ -94,8 +94,8 @@ def test_knncls_spmd_gold(dataframe, queue):
94
94
  spmd_result = spmd_model.predict(local_dpt_X_test)
95
95
  batch_result = batch_model.predict(X_test)
96
96
 
97
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
98
- _assert_unordered_allclose(spmd_dists, batch_dists, localize=True)
97
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
98
+ _spmd_assert_allclose(spmd_dists, batch_dists)
99
99
  _spmd_assert_allclose(spmd_result, batch_result)
100
100
 
101
101
 
@@ -164,10 +164,8 @@ def test_knncls_spmd_synthetic(
164
164
 
165
165
  tol = 1e-4
166
166
  if dtype == np.float64:
167
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
168
- _assert_unordered_allclose(
169
- spmd_dists, batch_dists, localize=True, rtol=tol, atol=tol
170
- )
167
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
168
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
171
169
  _spmd_assert_allclose(spmd_result, batch_result)
172
170
 
173
171
 
@@ -231,8 +229,8 @@ def test_knnreg_spmd_gold(dataframe, queue):
231
229
  spmd_result = spmd_model.predict(local_dpt_X_test)
232
230
  batch_result = batch_model.predict(X_test)
233
231
 
234
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
235
- _assert_unordered_allclose(spmd_dists, batch_dists, localize=True)
232
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
233
+ _spmd_assert_allclose(spmd_dists, batch_dists)
236
234
  _spmd_assert_allclose(spmd_result, batch_result)
237
235
 
238
236
 
@@ -303,8 +301,133 @@ def test_knnreg_spmd_synthetic(
303
301
 
304
302
  tol = 0.005 if dtype == np.float32 else 1e-4
305
303
  if dtype == np.float64:
306
- _assert_unordered_allclose(spmd_indcs, batch_indcs, localize=True)
307
- _assert_unordered_allclose(
308
- spmd_dists, batch_dists, localize=True, rtol=tol, atol=tol
309
- )
304
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
305
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
310
306
  _spmd_assert_allclose(spmd_result, batch_result, rtol=tol, atol=tol)
307
+
308
+
309
+ @pytest.mark.skipif(
310
+ not _mpi_libs_and_gpu_available,
311
+ reason="GPU device and MPI libs required for test",
312
+ )
313
+ @pytest.mark.parametrize(
314
+ "dataframe,queue",
315
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
316
+ )
317
+ @pytest.mark.mpi
318
+ def test_knnsearch_spmd_gold(dataframe, queue):
319
+ # Import spmd and batch algo
320
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
321
+ from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
322
+
323
+ # Create gold data and convert to dataframe
324
+ X_train = np.array(
325
+ [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
326
+ )
327
+ local_dpt_X_train = _convert_to_dataframe(
328
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
329
+ )
330
+
331
+ # Ensure predictions of batch algo match spmd
332
+ spmd_model = NearestNeighbors_SPMD(n_neighbors=2, algorithm="brute").fit(
333
+ local_dpt_X_train
334
+ )
335
+ batch_model = NearestNeighbors_Batch(n_neighbors=2, algorithm="brute").fit(X_train)
336
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
337
+ batch_dists, batch_indcs = batch_model.kneighbors(X_train)
338
+
339
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
340
+ _spmd_assert_allclose(spmd_dists, batch_dists)
341
+
342
+
343
+ @pytest.mark.skipif(
344
+ not _mpi_libs_and_gpu_available,
345
+ reason="GPU device and MPI libs required for test",
346
+ )
347
+ @pytest.mark.parametrize(
348
+ "dimensions", [{"n": 100, "m": 10, "k": 2}, {"n": 100000, "m": 100, "k": 100}]
349
+ )
350
+ @pytest.mark.parametrize(
351
+ "dataframe,queue",
352
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
353
+ )
354
+ @pytest.mark.parametrize("dtype", [np.float32, np.float64])
355
+ @pytest.mark.mpi
356
+ def test_knnsearch_spmd_synthetic(
357
+ dimensions,
358
+ dataframe,
359
+ queue,
360
+ dtype,
361
+ ):
362
+ if dimensions["n"] > 10000 and dtype == np.float32:
363
+ pytest.skip("Skipping large float32 test due to expected precision issues")
364
+
365
+ # Import spmd and batch algo
366
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
367
+ from sklearnex.spmd.neighbors import NearestNeighbors as NearestNeighbors_SPMD
368
+
369
+ # Generate data and convert to dataframe
370
+ X_train = _generate_statistic_data(dimensions["n"], dimensions["m"], dtype=dtype)
371
+
372
+ local_dpt_X_train = _convert_to_dataframe(
373
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
374
+ )
375
+
376
+ # Ensure search results of batch algo match spmd
377
+ spmd_model = NearestNeighbors_SPMD(
378
+ n_neighbors=dimensions["k"], algorithm="brute"
379
+ ).fit(local_dpt_X_train)
380
+ batch_model = NearestNeighbors_Batch(
381
+ n_neighbors=dimensions["k"], algorithm="brute"
382
+ ).fit(X_train)
383
+ spmd_dists, spmd_indcs = spmd_model.kneighbors(local_dpt_X_train)
384
+ batch_dists, batch_indcs = batch_model.kneighbors(X_train)
385
+
386
+ tol = 0.005 if dtype == np.float32 else 1e-6
387
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
388
+ _spmd_assert_allclose(spmd_dists, batch_dists, rtol=tol, atol=tol)
389
+
390
+
391
+ @pytest.mark.skipif(
392
+ not _mpi_libs_and_gpu_available,
393
+ reason="GPU device and MPI libs required for test",
394
+ )
395
+ @pytest.mark.parametrize(
396
+ "dataframe,queue",
397
+ get_dataframes_and_queues(dataframe_filter_="dpnp,dpctl", device_filter_="gpu"),
398
+ )
399
+ @pytest.mark.mpi
400
+ def test_knn_spmd_empty_kneighbors(dataframe, queue):
401
+ # Import spmd and batch algo
402
+ from sklearnex.neighbors import NearestNeighbors as NearestNeighbors_Batch
403
+ from sklearnex.spmd.neighbors import (
404
+ KNeighborsClassifier,
405
+ KNeighborsRegressor,
406
+ NearestNeighbors,
407
+ )
408
+
409
+ # Create gold data and convert to dataframe
410
+ X_train = np.array(
411
+ [[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2], [10, 10], [9, 9]]
412
+ )
413
+ y_train = np.array([0, 1, 0, 1, 0, 1, 0, 1])
414
+ local_dpt_X_train = _convert_to_dataframe(
415
+ _get_local_tensor(X_train), sycl_queue=queue, target_df=dataframe
416
+ )
417
+ local_dpt_y_train = _convert_to_dataframe(
418
+ _get_local_tensor(y_train), sycl_queue=queue, target_df=dataframe
419
+ )
420
+
421
+ # Run each estimator without an input to kneighbors() and ensure functionality and equivalence
422
+ for CurrentEstimator in [KNeighborsClassifier, KNeighborsRegressor, NearestNeighbors]:
423
+ spmd_model = CurrentEstimator(n_neighbors=1, algorithm="brute").fit(
424
+ local_dpt_X_train, local_dpt_y_train
425
+ )
426
+ batch_model = NearestNeighbors_Batch(n_neighbors=1, algorithm="brute").fit(
427
+ X_train, y_train
428
+ )
429
+ spmd_dists, spmd_indcs = spmd_model.kneighbors()
430
+ batch_dists, batch_indcs = batch_model.kneighbors()
431
+
432
+ _spmd_assert_allclose(spmd_indcs, batch_indcs)
433
+ _spmd_assert_allclose(spmd_dists, batch_dists)
@@ -19,20 +19,69 @@ from numbers import Number, Real
19
19
 
20
20
  import numpy as np
21
21
  from scipy import sparse as sp
22
- from sklearn.base import BaseEstimator, ClassifierMixin
22
+ from sklearn.base import ClassifierMixin
23
23
  from sklearn.calibration import CalibratedClassifierCV
24
24
  from sklearn.metrics import r2_score
25
25
  from sklearn.preprocessing import LabelEncoder
26
26
 
27
27
  from daal4py.sklearn._utils import sklearn_check_version
28
28
  from daal4py.sklearn.utils.validation import get_requires_y_tag
29
- from onedal.utils.validation import _check_array, _check_X_y, _column_or_1d
29
+ from onedal.utils.validation import _check_array, _column_or_1d
30
30
 
31
31
  from .._config import config_context, get_config
32
32
  from .._utils import PatchingConditionsChain
33
33
  from ..base import oneDALEstimator
34
34
  from ..utils.validation import validate_data
35
35
 
36
+ if sklearn_check_version("1.6"):
37
+ from sklearn.calibration import _fit_calibrator
38
+ from sklearn.frozen import FrozenEstimator
39
+ from sklearn.utils import indexable
40
+ from sklearn.utils._response import _get_response_values
41
+ from sklearn.utils.multiclass import check_classification_targets
42
+ from sklearn.utils.validation import check_is_fitted
43
+
44
+ def _prefit_CalibratedClassifierCV_fit(self, X, y, **fit_params):
45
+ # This is a stop-gap solution where the cv='prefit' of CalibratedClassifierCV
46
+ # was removed and the single fold solution needs to be maintained. Discussion
47
+ # of the mathematical and performance implications of this choice can be found
48
+ # here: https://github.com/uxlfoundation/scikit-learn-intelex/pull/1879
49
+ # This is distilled from the sklearn CalibratedClassifierCV for sklearn <1.8 for
50
+ # use in sklearn > 1.8 to maintain performance.
51
+ check_classification_targets(y)
52
+ X, y = indexable(X, y)
53
+
54
+ estimator = self._get_estimator()
55
+
56
+ self.calibrated_classifiers_ = []
57
+ check_is_fitted(self.estimator, attributes=["classes_"])
58
+ self.classes_ = self.estimator.classes_
59
+
60
+ predictions, _ = _get_response_values(
61
+ estimator,
62
+ X,
63
+ response_method=["decision_function", "predict_proba"],
64
+ )
65
+ if predictions.ndim == 1:
66
+ # Reshape binary output from `(n_samples,)` to `(n_samples, 1)`
67
+ predictions = predictions.reshape(-1, 1)
68
+
69
+ calibrated_classifier = _fit_calibrator(
70
+ estimator,
71
+ predictions,
72
+ y,
73
+ self.classes_,
74
+ self.method,
75
+ )
76
+ self.calibrated_classifiers_.append(calibrated_classifier)
77
+
78
+ first_clf = self.calibrated_classifiers_[0].estimator
79
+ if hasattr(first_clf, "n_features_in_"):
80
+ self.n_features_in_ = first_clf.n_features_in_
81
+ if hasattr(first_clf, "feature_names_in_"):
82
+ self.feature_names_in_ = first_clf.feature_names_in_
83
+ return self
84
+
36
85
 
37
86
  class BaseSVM(oneDALEstimator):
38
87
 
@@ -262,12 +311,26 @@ class BaseSVC(BaseSVM):
262
311
  cfg["target_offload"] = queue
263
312
  with config_context(**cfg):
264
313
  clf_base.fit(X, y)
265
- self.clf_prob = CalibratedClassifierCV(
266
- clf_base,
267
- ensemble=False,
268
- cv="prefit",
269
- method="sigmoid",
270
- ).fit(X, y)
314
+
315
+ # Forced use of FrozenEstimator starting in sklearn 1.6
316
+ if sklearn_check_version("1.6"):
317
+ clf_base = FrozenEstimator(clf_base)
318
+
319
+ self.clf_prob = CalibratedClassifierCV(
320
+ clf_base,
321
+ ensemble=False,
322
+ method="sigmoid",
323
+ )
324
+ # see custom stopgap solution defined above
325
+ _prefit_CalibratedClassifierCV_fit(self.clf_prob, X, y)
326
+ else:
327
+
328
+ self.clf_prob = CalibratedClassifierCV(
329
+ clf_base,
330
+ ensemble=False,
331
+ cv="prefit",
332
+ method="sigmoid",
333
+ ).fit(X, y)
271
334
 
272
335
  def _save_attributes(self):
273
336
  self.support_vectors_ = self._onedal_estimator.support_vectors_
@@ -52,7 +52,6 @@ TARGET_OFFLOAD_ALLOWED_LOCATIONS = [
52
52
  ]
53
53
 
54
54
  _DESIGN_RULE_VIOLATIONS = {
55
- "PCA-fit_transform-call_validate_data": "calls both 'fit' and 'transform'",
56
55
  "IncrementalEmpiricalCovariance-score-call_validate_data": "must call clone of itself",
57
56
  "SVC(probability=True)-fit-call_validate_data": "SVC fit can use sklearn estimator",
58
57
  "NuSVC(probability=True)-fit-call_validate_data": "NuSVC fit can use sklearn estimator",
@@ -273,7 +273,7 @@ def _kfold_function_template(
273
273
 
274
274
  @pytest.mark.parametrize("order", ["F", "C"])
275
275
  @pytest.mark.parametrize(
276
- "dataframe,queue", get_dataframes_and_queues("numpy,pandas,dpctl", "cpu")
276
+ "dataframe,queue", get_dataframes_and_queues("numpy,pandas", "cpu")
277
277
  )
278
278
  @pytest.mark.parametrize("estimator", CPU_ESTIMATORS.keys())
279
279
  @pytest.mark.parametrize("data_shape", data_shapes)
@@ -27,7 +27,7 @@ import numpy.random as nprnd
27
27
  import pytest
28
28
  from sklearn.base import BaseEstimator
29
29
 
30
- from daal4py.sklearn._utils import sklearn_check_version
30
+ from daal4py.sklearn._utils import _package_check_version, sklearn_check_version
31
31
  from onedal.tests.utils._dataframes_support import (
32
32
  _convert_to_dataframe,
33
33
  get_dataframes_and_queues,
@@ -174,9 +174,13 @@ def test_standard_estimator_patching(caplog, dataframe, queue, dtype, estimator,
174
174
  # the infrastructure from sklearn that sklearnex depends on is also susceptible
175
175
  # to failure. In this case compare to sklearn for the same failure. By design
176
176
  # the patching of sklearn should act similarly. Technically this is conformance.
177
- if estimator == "PCA" and "score" in method:
177
+ if (
178
+ (estimator == "PCA" and "transform" in method)
179
+ or (estimator == "IncrementalEmpiricalCovariance" and method == "mahalanobis")
180
+ ) and not _package_check_version("2.0", np.__version__):
181
+ # issue not to be observed with normal numpy usage
178
182
  pytest.skip(
179
- f"PCA.{method} has sklearn array_api support which breaks with array_api_dispatching"
183
+ f"numpy backend does not properly handle the __dlpack__ attribute."
180
184
  )
181
185
  elif (
182
186
  not sklearn_check_version("1.3")
@@ -16,13 +16,16 @@
16
16
 
17
17
  """Tools to support array_api."""
18
18
 
19
+ import math
19
20
  from collections.abc import Callable
20
21
  from typing import Union
21
22
 
22
23
  import numpy as np
24
+ import scipy.linalg as linalg
25
+ from sklearn.covariance import log_likelihood as _sklearn_log_likelihood
23
26
 
24
27
  from daal4py.sklearn._utils import sklearn_check_version
25
- from onedal.utils._array_api import _get_sycl_namespace
28
+ from onedal.utils._array_api import _get_sycl_namespace, _is_numpy_namespace
26
29
 
27
30
  from ..base import oneDALEstimator
28
31
 
@@ -151,3 +154,64 @@ def enable_array_api(
151
154
  else:
152
155
  # default setting (apply array_api enablement for sklearn >=1.3)
153
156
  return _enable_array_api(class_or_str)
157
+
158
+
159
+ def _pinvh(a, atol=None, rtol=None, lower=True, return_rank=False, check_finite=True):
160
+ # array API enabled pinvh implementation, via direct translation of scipy.linalg.pinhv
161
+ # this should be considered a temporary stopgap until implemented in oneDAL
162
+ xp, _ = get_namespace(a)
163
+ # fall back to scipy if the namespace is of a numpy origin
164
+ if _is_numpy_namespace(xp):
165
+ return linalg.pinvh(
166
+ a,
167
+ atol=atol,
168
+ rtol=rtol,
169
+ lower=lower,
170
+ return_rank=return_rank,
171
+ check_finite=check_finite,
172
+ )
173
+
174
+ if check_finite:
175
+ raise NotImplementedError("finite checking does not occur in sklearnex's pinvh")
176
+
177
+ s, u = xp.linalg.eigh(a)
178
+ maxS = xp.max(xp.abs(s))
179
+
180
+ atol = 0.0 if atol is None else atol
181
+ rtol = max(a.shape) * xp.finfo(u.dtype).eps if (rtol is None) else rtol
182
+
183
+ if (atol < 0.0) or (rtol < 0.0):
184
+ raise ValueError("atol and rtol values must be positive.")
185
+
186
+ val = atol + maxS * rtol
187
+ above_cutoff = xp.nonzero(abs(s) > val)[0]
188
+
189
+ psigma_diag = 1.0 / xp.take(s, above_cutoff)
190
+ u = xp.take(u, above_cutoff, axis=1)
191
+
192
+ uconj = xp.conj(u) if xp.isdtype(u.dtype, kind="complex floating") else u
193
+
194
+ B = (u * psigma_diag) @ uconj.T
195
+
196
+ if return_rank:
197
+ return B, len(psigma_diag)
198
+ else:
199
+ return B
200
+
201
+
202
+ def log_likelihood(emp_cov, precision):
203
+ # this is to compensate for a lack of array API support in sklearn
204
+ # even though it exists for ``fast_logdet``
205
+ xp, _ = get_namespace(emp_cov, precision)
206
+ p = precision.shape[0]
207
+ # extract sklearn.utils.extmath.fast_logdet for dpnp/dpctl support
208
+ sign, ld = xp.linalg.slogdet(precision)
209
+ if not sign > 0:
210
+ ld = -xp.inf
211
+ log_likelihood_ = -xp.sum(emp_cov * precision) + ld
212
+ log_likelihood_ -= p * math.log(2 * math.pi)
213
+ log_likelihood_ /= 2.0
214
+ return log_likelihood_
215
+
216
+
217
+ log_likelihood.__doc__ = _sklearn_log_likelihood.__doc__