scikit-learn-intelex 2025.8.0__py312-none-win_amd64.whl → 2025.9.0__py312-none-win_amd64.whl

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

Potentially problematic release.


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

Files changed (267) hide show
  1. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/_daal4py.cp312-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.cp312-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.cp312-win_amd64.pyd +0 -0
  9. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-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/onedal/_onedal_py_dpc.cp312-win_amd64.pyd +0 -0
  47. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp312-win_amd64.pyd +0 -0
  48. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +0 -200
  49. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -428
  50. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -128
  51. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -227
  52. scikit_learn_intelex-2025.8.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  53. scikit_learn_intelex-2025.8.0.dist-info/RECORD +0 -259
  54. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  55. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  56. {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
  57. {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
  58. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  59. {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
  60. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  61. {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
  62. {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
  63. {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
  64. {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
  65. {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
  66. {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
  67. {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
  68. {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
  69. {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
  70. {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
  71. {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
  72. {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
  73. {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
  74. {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
  75. {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
  76. {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
  77. {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
  78. {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
  79. {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
  80. {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
  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_ridge.py +0 -0
  82. {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
  83. {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
  84. {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
  85. {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
  86. {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
  87. {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
  88. {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
  89. {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
  90. {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
  91. {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
  92. {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
  93. {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
  94. {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
  95. {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
  96. {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
  97. {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
  98. {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
  99. {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
  100. {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
  101. {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
  102. {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
  103. {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
  104. {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
  105. {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
  106. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  107. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
  108. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_device_offload.py +0 -0
  109. {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
  110. {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
  111. {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
  112. {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
  113. {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
  114. {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
  115. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  116. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
  117. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.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_init.py +0 -0
  119. {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
  120. {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
  121. {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
  122. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
  123. {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
  124. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  125. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +0 -0
  126. {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
  127. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  128. {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
  129. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
  130. {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
  131. {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
  132. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  133. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/__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/forest.py +0 -0
  135. {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
  136. {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
  137. {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
  138. {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
  139. {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
  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_ridge_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_linear_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_logistic_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_ridge.py +0 -0
  144. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  145. {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
  146. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  147. {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
  148. {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
  149. {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
  150. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  151. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
  152. {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
  153. {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
  154. {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
  155. {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
  156. {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
  157. {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
  158. {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
  159. {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
  160. {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
  161. {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
  162. {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
  163. {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
  164. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
  165. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  166. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  167. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +0 -0
  168. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
  169. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/base.py +0 -0
  170. {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
  171. {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
  172. {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
  173. {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
  174. {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
  175. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  176. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
  177. {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
  178. {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
  179. {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
  180. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  181. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  182. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  183. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +0 -0
  184. {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
  185. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  186. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +0 -0
  187. {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
  188. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  189. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  190. {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
  191. {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
  192. {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
  193. {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
  194. {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
  195. {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
  196. {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
  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_ridge.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_linear.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_ridge.py +0 -0
  200. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  201. {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
  202. {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
  203. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  204. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  205. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  206. {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
  207. {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
  208. {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
  209. {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
  210. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  211. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
  212. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +0 -0
  213. {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
  214. {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
  215. {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
  216. {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
  217. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  218. {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
  219. {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
  220. {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
  221. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/__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/basic_statistics/__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/basic_statistics.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/incremental_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/tests/test_basic_statistics_spmd.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_incremental_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/cluster/__init__.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/dbscan.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/kmeans.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/tests/test_dbscan_spmd.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_kmeans_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/covariance/__init__.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/incremental_covariance.py +0 -0
  234. {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
  235. {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
  236. {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
  237. {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
  238. {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
  239. {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
  240. {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
  241. {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
  242. {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
  243. {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
  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_linear_regression_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_logistic_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/svm/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
  248. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  249. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
  250. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  251. {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
  252. {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
  253. {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
  254. {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
  255. {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
  256. {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
  257. {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
  258. {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
  259. {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
  260. {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
  261. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  262. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  263. {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
  264. {scikit_learn_intelex-2025.8.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  265. {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/LICENSE.txt +0 -0
  266. {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/WHEEL +0 -0
  267. {scikit_learn_intelex-2025.8.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,260 @@
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
+ import warnings
18
+ from functools import partial
19
+
20
+ import numpy as np
21
+ import scipy.sparse as sp
22
+ from sklearn.base import clone
23
+ from sklearn.covariance import EmpiricalCovariance as _sklearn_EmpiricalCovariance
24
+ from sklearn.utils.validation import check_array, check_is_fitted
25
+
26
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
27
+ from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
28
+ from daal4py.sklearn.metrics import pairwise_distances
29
+ from onedal._device_offload import support_input_format, support_sycl_format
30
+ from onedal.covariance import EmpiricalCovariance as onedal_EmpiricalCovariance
31
+ from onedal.utils._array_api import _is_numpy_namespace
32
+ from sklearnex import config_context
33
+
34
+ from ..._config import get_config
35
+ from ..._device_offload import dispatch, wrap_output_data
36
+ from ..._utils import PatchingConditionsChain, register_hyperparameters
37
+ from ...base import oneDALEstimator
38
+ from ...utils._array_api import _pinvh, enable_array_api, get_namespace, log_likelihood
39
+ from ...utils.validation import assert_all_finite, validate_data
40
+
41
+ # This is a temporary workaround for issues with sklearnex._device_offload._get_host_inputs
42
+ # passing kwargs with sycl queues with other host data will cause failures
43
+ _mahalanobis = support_input_format(partial(pairwise_distances, metric="mahalanobis"))
44
+
45
+
46
+ @enable_array_api
47
+ @register_hyperparameters({"fit": ("covariance", "compute")})
48
+ @control_n_jobs(decorated_methods=["fit", "mahalanobis"])
49
+ class EmpiricalCovariance(oneDALEstimator, _sklearn_EmpiricalCovariance):
50
+ __doc__ = _sklearn_EmpiricalCovariance.__doc__
51
+
52
+ if sklearn_check_version("1.2"):
53
+ _parameter_constraints: dict = {
54
+ **_sklearn_EmpiricalCovariance._parameter_constraints,
55
+ }
56
+
57
+ def _set_covariance(self, covariance):
58
+ if not get_config()["use_raw_input"]:
59
+ if sklearn_check_version("1.6"):
60
+ covariance = check_array(covariance, ensure_all_finite=False)
61
+ else:
62
+ covariance = check_array(covariance, force_all_finite=False)
63
+ assert_all_finite(covariance)
64
+ # set covariance
65
+ self.covariance_ = covariance
66
+ # set precision
67
+ if self.store_precision:
68
+ self.precision_ = _pinvh(covariance, check_finite=False)
69
+ else:
70
+ self.precision_ = None
71
+
72
+ def _save_attributes(self):
73
+ assert hasattr(self, "_onedal_estimator")
74
+ if not daal_check_version((2024, "P", 400)) and self.assume_centered:
75
+ xp, _ = get_namespace(self._onedal_estimator.location_)
76
+ location = self._onedal_estimator.location_[None, :]
77
+ self._onedal_estimator.covariance_ += xp.dot(location.T, location)
78
+ self._onedal_estimator.location_ = xp.zeros_like(
79
+ self._onedal_estimator.location_
80
+ )
81
+ self._set_covariance(self._onedal_estimator.covariance_)
82
+ self.location_ = self._onedal_estimator.location_
83
+
84
+ _onedal_covariance = staticmethod(onedal_EmpiricalCovariance)
85
+
86
+ def _onedal_fit(self, X, queue=None):
87
+ if not get_config()["use_raw_input"]:
88
+ xp, _ = get_namespace(X)
89
+ X = validate_data(self, X, dtype=[xp.float64, xp.float32])
90
+
91
+ if X.shape[0] == 1:
92
+ warnings.warn(
93
+ "Only one sample available. You may want to reshape your data array"
94
+ )
95
+
96
+ self._onedal_estimator = self._onedal_covariance(
97
+ method="dense", bias=True, assume_centered=self.assume_centered
98
+ )
99
+ self._onedal_estimator.fit(X, queue=queue)
100
+ self._save_attributes()
101
+
102
+ def _onedal_supported(self, method_name, *data):
103
+ class_name = self.__class__.__name__
104
+ patching_status = PatchingConditionsChain(
105
+ f"sklearn.covariance.{class_name}.{method_name}"
106
+ )
107
+ if method_name in ["fit", "mahalanobis"]:
108
+ (X,) = data
109
+ patching_status.and_conditions(
110
+ [
111
+ (not sp.issparse(X), "X is sparse. Sparse input is not supported."),
112
+ ]
113
+ )
114
+ return patching_status
115
+ raise RuntimeError(f"Unknown method {method_name} in {self.__class__.__name__}")
116
+
117
+ _onedal_cpu_supported = _onedal_supported
118
+ _onedal_gpu_supported = _onedal_supported
119
+
120
+ def get_precision(self):
121
+ # use array API-enabled version
122
+ if self.store_precision:
123
+ precision = self.precision_
124
+ else:
125
+ precision = _pinvh(self.covariance_, check_finite=False)
126
+ return precision
127
+
128
+ def fit(self, X, y=None):
129
+ if sklearn_check_version("1.2"):
130
+ self._validate_params()
131
+ dispatch(
132
+ self,
133
+ "fit",
134
+ {
135
+ "onedal": self.__class__._onedal_fit,
136
+ "sklearn": _sklearn_EmpiricalCovariance.fit,
137
+ },
138
+ X,
139
+ )
140
+
141
+ return self
142
+
143
+ @wrap_output_data
144
+ @support_sycl_format
145
+ def score(self, X_test, y=None):
146
+
147
+ check_is_fitted(self)
148
+ # Only covariance evaluated for get_namespace due to dpnp/dpctl
149
+ # support without array_api_dispatch
150
+ xp, _ = get_namespace(X_test, self.covariance_)
151
+
152
+ X = validate_data(
153
+ self,
154
+ X_test,
155
+ dtype=[xp.float64, xp.float32],
156
+ reset=False,
157
+ )
158
+
159
+ location = self.location_
160
+ precision = self.get_precision()
161
+
162
+ est = clone(self)
163
+ est.set_params(assume_centered=True)
164
+
165
+ # test_cov is a numpy array, but calculated on device
166
+ test_cov = est.fit(X - self.location_).covariance_
167
+ if not _is_numpy_namespace(xp):
168
+ test_cov = xp.asarray(test_cov, device=X.device)
169
+ res = log_likelihood(test_cov, self.get_precision())
170
+
171
+ return res
172
+
173
+ @wrap_output_data
174
+ @support_sycl_format
175
+ def error_norm(self, comp_cov, norm="frobenius", scaling=True, squared=True):
176
+ # equivalent to the sklearn implementation but written for array API
177
+ # in the case of numpy-like inputs it will use sklearn's version instead.
178
+ # This can be deprecated if/when sklearn makes the equivalent array API enabled.
179
+ # This includes a validate_data call and an unusual call to get_namespace in
180
+ # order to also support dpnp/dpctl without array_api_dispatch.
181
+ check_is_fitted(self)
182
+ # Only covariance evaluated for get_namespace due to dpnp/dpctl
183
+ # support without array_api_dispatch
184
+ xp, _ = get_namespace(comp_cov, self.covariance_)
185
+ c_cov = validate_data(
186
+ self,
187
+ comp_cov,
188
+ dtype=[xp.float64, xp.float32],
189
+ reset=False,
190
+ )
191
+
192
+ if _is_numpy_namespace(xp):
193
+ # must be done this way is it does not inherit from sklearn
194
+ return _sklearn_EmpiricalCovariance.error_norm(
195
+ self, c_cov, norm=norm, scaling=scaling, squared=squared
196
+ )
197
+
198
+ # compute the error
199
+ error = c_cov - self.covariance_
200
+ # compute the error norm
201
+ if norm == "frobenius":
202
+ squared_norm = xp.matmul(xp.reshape(error, (-1)), xp.reshape(error, (-1)))
203
+ elif norm == "spectral":
204
+ squared_norm = xp.max(xp.linalg.svdvals(xp.matmul(error.T, error)))
205
+ else:
206
+ raise NotImplementedError("Only spectral and frobenius norms are implemented")
207
+ # optionally scale the error norm
208
+ if scaling:
209
+ squared_norm = squared_norm / error.shape[0]
210
+ # finally get either the squared norm or the norm
211
+ if squared:
212
+ result = squared_norm
213
+ else:
214
+ result = xp.sqrt(squared_norm)
215
+
216
+ return result
217
+
218
+ # expose sklearnex pairwise_distances if mahalanobis distance eventually supported
219
+ @support_sycl_format
220
+ def mahalanobis(self, X):
221
+ # This must be done as ```support_input_format``` is insufficient for array API
222
+ # support when attributes are non-numpy.
223
+ check_is_fitted(self)
224
+ precision = self.get_precision()
225
+ loc = self.location_[None, :]
226
+ xp, _ = get_namespace(X, precision, loc)
227
+ # do not check dtype, done in pairwise_distances
228
+ X_in = validate_data(self, X, reset=False)
229
+
230
+ if not _is_numpy_namespace(xp) and isinstance(X_in, np.ndarray):
231
+ # corrects issues with respect to dpnp/dpctl support without array_api_dispatch
232
+ X_in = X
233
+ loc = xp.asarray(loc, device=X.device)
234
+ precision = xp.asarray(precision, device=X.device)
235
+
236
+ with config_context(assume_finite=True):
237
+ try:
238
+ dist = _mahalanobis(X_in, loc, VI=precision)
239
+
240
+ except ValueError as e:
241
+ # Throw the expected sklearn error in an n_feature length violation
242
+ if "Incompatible dimension for X and Y matrices: X.shape[1] ==" in str(e):
243
+ raise ValueError(
244
+ f"X has {_num_features(X)} features, but {self.__class__.__name__} "
245
+ f"is expecting {self.n_features_in_} features as input."
246
+ ) from None
247
+ else:
248
+ raise e
249
+
250
+ if not _is_numpy_namespace(xp):
251
+ dist = xp.asarray(dist, device=X.device)
252
+
253
+ return (xp.reshape(dist, (-1,))) ** 2
254
+
255
+ fit.__doc__ = _sklearn_EmpiricalCovariance.fit.__doc__
256
+ mahalanobis.__doc__ = _sklearn_EmpiricalCovariance.mahalanobis.__doc__
257
+ error_norm.__doc__ = _sklearn_EmpiricalCovariance.error_norm.__doc__
258
+ score.__doc__ = _sklearn_EmpiricalCovariance.score.__doc__
259
+ get_precision.__doc__ = _sklearn_EmpiricalCovariance.get_precision.__doc__
260
+ _set_covariance.__doc__ = _sklearn_EmpiricalCovariance._set_covariance.__doc__
@@ -0,0 +1,406 @@
1
+ # ===============================================================================
2
+ # Copyright 2024 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
+ import numpy as np
18
+ import scipy.sparse as sp
19
+ from sklearn.decomposition import IncrementalPCA as _sklearn_IncrementalPCA
20
+ from sklearn.utils import check_array, gen_batches
21
+ from sklearn.utils.validation import check_is_fitted
22
+
23
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
24
+ from daal4py.sklearn._utils import sklearn_check_version
25
+ from onedal.decomposition import IncrementalPCA as onedal_IncrementalPCA
26
+
27
+ from ..._config import get_config
28
+ from ..._device_offload import dispatch, wrap_output_data
29
+ from ..._utils import PatchingConditionsChain, _add_inc_serialization_note
30
+ from ...base import oneDALEstimator
31
+ from ...utils._array_api import enable_array_api, get_namespace
32
+ from ...utils.validation import validate_data
33
+
34
+ if sklearn_check_version("1.2"):
35
+ from sklearn.utils._param_validation import StrOptions
36
+
37
+
38
+ @enable_array_api
39
+ @control_n_jobs(
40
+ decorated_methods=["fit", "partial_fit", "transform", "_onedal_finalize_fit"]
41
+ )
42
+ class IncrementalPCA(oneDALEstimator, _sklearn_IncrementalPCA):
43
+ __doc__ = _sklearn_IncrementalPCA.__doc__
44
+
45
+ if sklearn_check_version("1.2"):
46
+ _parameter_constraints: dict = {
47
+ **_sklearn_IncrementalPCA._parameter_constraints,
48
+ "svd_solver": [StrOptions({"auto", "covariance_eigh", "onedal_svd"})],
49
+ }
50
+
51
+ def __init__(
52
+ self,
53
+ n_components=None,
54
+ *,
55
+ whiten=False,
56
+ copy=True,
57
+ batch_size=None,
58
+ svd_solver="auto",
59
+ ):
60
+ super().__init__(
61
+ n_components=n_components, whiten=whiten, copy=copy, batch_size=batch_size
62
+ )
63
+ self.svd_solver = svd_solver
64
+ self._need_to_finalize = False
65
+ # Note: use of the onedal_svd solver will cause partial result to grow proportionally
66
+ # to the input data and for that reason is not the default, which is contrary
67
+ # to the scikit-learn implementation.
68
+
69
+ _onedal_incremental_pca = staticmethod(onedal_IncrementalPCA)
70
+
71
+ def _set_n_components(self, n_components, n_samples, n_features, first_pass):
72
+ # extracted from sklearn's ``IncrementalPCA.partial_fit``. This is a
73
+ # maintenance burden that cannot be easily separated from sklearn.
74
+ if n_components is None:
75
+ if self._components_ is None:
76
+ self._n_components_ = min(n_samples, n_features)
77
+ else:
78
+ self._n_components_ = self.components_.shape[0]
79
+ elif not 1 <= n_components <= n_features:
80
+ raise ValueError(
81
+ "n_components=%r invalid for n_features=%d, need "
82
+ "more rows than columns for IncrementalPCA "
83
+ "processing" % (self.n_components, n_features)
84
+ )
85
+ elif n_components > n_samples and (
86
+ not sklearn_check_version("1.6") or first_pass
87
+ ):
88
+ raise ValueError(
89
+ "n_components=%r must be less or equal to "
90
+ "the batch number of samples "
91
+ "%d" % (self.n_components, n_samples)
92
+ + (
93
+ " for the first partial_fit call."
94
+ if sklearn_check_version("1.6")
95
+ else ""
96
+ )
97
+ )
98
+ else:
99
+ self._n_components_ = n_components
100
+
101
+ # the private variables are used to not trigger _onedal_finalize_fit
102
+ if (self._components_ is not None) and (
103
+ self._components_.shape[0] != self._n_components_
104
+ ):
105
+ raise ValueError(
106
+ "Number of input features has changed from %i "
107
+ "to %i between calls to partial_fit! Try "
108
+ "setting n_components to a fixed value."
109
+ % (self.components_.shape[0], self.n_components_)
110
+ )
111
+
112
+ def _compute_noise_variance(self, n_sf_min, xp):
113
+ # generally replicates capability seen in sklearn.PCA._fit_full
114
+ explained_variance = self._onedal_estimator.explained_variance_
115
+ if self._n_components_ < n_sf_min:
116
+ if explained_variance.shape[0] == n_sf_min:
117
+ return xp.mean(explained_variance[self._n_components_ :])
118
+ elif explained_variance.shape[0] < n_sf_min:
119
+ # replicates capability seen in sklearn.PCA._fit_truncated
120
+ # this is necessary as oneDAL will fit only to self.n_components
121
+ # which leads to self.explained_variance_ not containing the
122
+ # full information (and therefore can't replicate
123
+ # sklearn.PCA._fit_full)
124
+ resid_var = xp.sum(self._onedal_estimator.var_) - xp.sum(
125
+ explained_variance
126
+ )
127
+ return resid_var / (n_sf_min - self._n_components_)
128
+ else:
129
+ return 0.0
130
+
131
+ def _onedal_transform(self, X, queue=None):
132
+ # does not batch out data like sklearn's ``IncrementalPCA.transform``
133
+ if self._need_to_finalize:
134
+ self._onedal_finalize_fit()
135
+ if not get_config()["use_raw_input"]:
136
+ xp, _ = get_namespace(X)
137
+ X = validate_data(self, X, dtype=[xp.float64, xp.float32], reset=False)
138
+ return self._onedal_estimator.predict(X, queue=queue)
139
+
140
+ def _onedal_fit_transform(self, X, queue=None):
141
+ X = self._onedal_fit(X, queue=queue)
142
+ return self._onedal_estimator.predict(X, queue=queue)
143
+
144
+ def _onedal_partial_fit(self, X, check_input=True, queue=None):
145
+ first_pass = not hasattr(self, "components_")
146
+ if first_pass:
147
+ self._components_ = None
148
+
149
+ if check_input:
150
+ if not get_config()["use_raw_input"]:
151
+ xp, _ = get_namespace(X)
152
+ X = validate_data(
153
+ self, X, dtype=[xp.float64, xp.float32], reset=first_pass
154
+ )
155
+ else:
156
+ self.n_features_in_ = X.shape[1]
157
+
158
+ n_samples, n_features = X.shape
159
+
160
+ self._set_n_components(self.n_components, n_samples, n_features, first_pass)
161
+
162
+ if not hasattr(self, "n_samples_seen_"):
163
+ self.n_samples_seen_ = n_samples
164
+ else:
165
+ self.n_samples_seen_ += n_samples
166
+
167
+ onedal_params = {
168
+ "n_components": self._n_components_,
169
+ "whiten": self.whiten,
170
+ "method": "svd" if self.svd_solver == "onedal_svd" else "cov",
171
+ }
172
+
173
+ if not hasattr(self, "_onedal_estimator"):
174
+ self._onedal_estimator = self._onedal_incremental_pca(**onedal_params)
175
+ self._onedal_estimator.partial_fit(X, queue=queue)
176
+ self._need_to_finalize = True
177
+
178
+ def _onedal_finalize_fit(self):
179
+ assert hasattr(self, "_onedal_estimator")
180
+ self._onedal_estimator.finalize_fit()
181
+ xp, _ = get_namespace(
182
+ self._onedal_estimator.explained_variance_,
183
+ self._onedal_estimator.singular_values_,
184
+ )
185
+
186
+ # set attributes needed for transform
187
+ self._mean_ = self._onedal_estimator.mean_
188
+ self._components_ = self._onedal_estimator.components_
189
+ # oneDAL PCA eigenvalues are not guaranteed to be >=0 and must be clipped.
190
+ # This is likely due to accumulated numerical error in the oneDAL calculation.
191
+ self._explained_variance_ = xp.clip(
192
+ self._onedal_estimator.explained_variance_, 0.0, None
193
+ )
194
+
195
+ # set other attributes
196
+ self.singular_values_ = self._onedal_estimator.singular_values_
197
+ # NOTE: This covers up a numerical accuracy issue in oneDAL online PCA which
198
+ # can yield NaN values for singular values. Replace in place using array API
199
+ self.singular_values_[...] = xp.where(
200
+ xp.isnan(self.singular_values_), 0, self.singular_values_
201
+ )
202
+ self.explained_variance_ratio_ = self._onedal_estimator.explained_variance_ratio_
203
+ self.var_ = self._onedal_estimator.var_
204
+
205
+ # calculate the noise variance
206
+ self.noise_variance_ = self._compute_noise_variance(
207
+ min(self.n_samples_seen_, self.n_features_in_), xp
208
+ )
209
+
210
+ self._need_to_finalize = False
211
+
212
+ def _onedal_fit(self, X, queue=None):
213
+ # Taken from sklearn for conformance purposes
214
+ self.components_ = None
215
+
216
+ if not get_config()["use_raw_input"]:
217
+ if sklearn_check_version("1.2"):
218
+ self._validate_params()
219
+ xp, _ = get_namespace(X)
220
+ X = validate_data(self, X, dtype=[xp.float64, xp.float32], copy=self.copy)
221
+ else:
222
+ self.n_features_in_ = X.shape[1]
223
+
224
+ n_samples, n_features = X.shape
225
+
226
+ if self.batch_size is None:
227
+ self.batch_size_ = 5 * n_features
228
+ else:
229
+ self.batch_size_ = self.batch_size
230
+
231
+ self.n_samples_seen_ = 0
232
+ if hasattr(self, "_onedal_estimator"):
233
+ self._onedal_estimator._reset()
234
+
235
+ for batch in gen_batches(
236
+ n_samples, self.batch_size_, min_batch_size=self.n_components or 0
237
+ ):
238
+ X_batch = X[batch, ...]
239
+ self._onedal_partial_fit(X_batch, queue=queue)
240
+
241
+ self._onedal_finalize_fit()
242
+
243
+ return X
244
+
245
+ def _onedal_cpu_supported(self, method_name, *data):
246
+ patching_status = PatchingConditionsChain(
247
+ f"sklearn.decomposition.{self.__class__.__name__}.{method_name}"
248
+ )
249
+ X = data[0]
250
+ if "fit" in method_name:
251
+ patching_status.and_conditions(
252
+ [(not sp.issparse(X), "Sparse input is not supported")]
253
+ )
254
+ else:
255
+ patching_status.and_conditions(
256
+ [
257
+ (not sp.issparse(X), "Sparse input is not supported"),
258
+ (hasattr(self, "_onedal_estimator"), "oneDAL model was not trained"),
259
+ ]
260
+ )
261
+ return patching_status
262
+
263
+ def _onedal_gpu_supported(self, method_name, *data):
264
+ patching_status = PatchingConditionsChain(
265
+ f"sklearn.decomposition.{self.__class__.__name__}.{method_name}"
266
+ )
267
+ # onedal_svd doesn't exist for GPU
268
+ X = data[0]
269
+ if "fit" in method_name:
270
+ patching_status.and_conditions(
271
+ [
272
+ (not sp.issparse(X), "Sparse input is not supported"),
273
+ (self.svd_solver != "onedal_svd", "onedal_svd not supported on GPU"),
274
+ ]
275
+ )
276
+ else:
277
+ patching_status.and_conditions(
278
+ [
279
+ (not sp.issparse(X), "Sparse input is not supported"),
280
+ (hasattr(self, "_onedal_estimator"), "oneDAL model was not trained"),
281
+ ]
282
+ )
283
+ return patching_status
284
+
285
+ def partial_fit(self, X, y=None, check_input=True):
286
+ if sklearn_check_version("1.2") and check_input:
287
+ self._validate_params()
288
+
289
+ dispatch(
290
+ self,
291
+ "partial_fit",
292
+ {
293
+ "onedal": self.__class__._onedal_partial_fit,
294
+ "sklearn": _sklearn_IncrementalPCA.partial_fit,
295
+ },
296
+ X,
297
+ check_input=check_input,
298
+ )
299
+ return self
300
+
301
+ def fit(self, X, y=None):
302
+ if sklearn_check_version("1.2"):
303
+ self._validate_params()
304
+
305
+ dispatch(
306
+ self,
307
+ "fit",
308
+ {
309
+ "onedal": self.__class__._onedal_fit,
310
+ "sklearn": _sklearn_IncrementalPCA.fit,
311
+ },
312
+ X,
313
+ )
314
+ return self
315
+
316
+ @wrap_output_data
317
+ def transform(self, X):
318
+ check_is_fitted(self)
319
+ return dispatch(
320
+ self,
321
+ "transform",
322
+ {
323
+ "onedal": self.__class__._onedal_transform,
324
+ "sklearn": _sklearn_IncrementalPCA.transform,
325
+ },
326
+ X,
327
+ )
328
+
329
+ @wrap_output_data
330
+ def fit_transform(self, X, y=None, **fit_params):
331
+ if sklearn_check_version("1.2"):
332
+ self._validate_params()
333
+ return dispatch(
334
+ self,
335
+ "fit_transform",
336
+ {
337
+ "onedal": self.__class__._onedal_fit_transform,
338
+ "sklearn": _sklearn_IncrementalPCA.fit_transform,
339
+ },
340
+ X,
341
+ )
342
+
343
+ # set properties for deleting the onedal_estimator model if:
344
+ # n_components_, components_, mean_ or explained_variance_ are
345
+ # changed. This assists in speeding up multiple uses of onedal
346
+ # transform as a model must now only be generated once.
347
+
348
+ @property
349
+ def n_components_(self):
350
+ if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
351
+ self._onedal_finalize_fit()
352
+ return self._n_components_
353
+
354
+ @n_components_.setter
355
+ def n_components_(self, value):
356
+ if hasattr(self, "_onedal_estimator"):
357
+ self._onedal_estimator.n_components_ = value
358
+ self._onedal_estimator._onedal_model = None
359
+ self._n_components_ = value
360
+
361
+ @property
362
+ def components_(self):
363
+ if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
364
+ self._onedal_finalize_fit()
365
+ return self._components_
366
+
367
+ @components_.setter
368
+ def components_(self, value):
369
+ if hasattr(self, "_onedal_estimator"):
370
+ self._onedal_estimator.components_ = value
371
+ self._onedal_estimator._onedal_model = None
372
+ self._components_ = value
373
+
374
+ @property
375
+ def mean_(self):
376
+ if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
377
+ self._onedal_finalize_fit()
378
+ return self._mean_
379
+
380
+ @mean_.setter
381
+ def mean_(self, value):
382
+ if hasattr(self, "_onedal_estimator"):
383
+ self._onedal_estimator.mean_ = value
384
+ self._onedal_estimator._onedal_model = None
385
+ self._mean_ = value
386
+
387
+ @property
388
+ def explained_variance_(self):
389
+ if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
390
+ self._onedal_finalize_fit()
391
+ return self._explained_variance_
392
+
393
+ @explained_variance_.setter
394
+ def explained_variance_(self, value):
395
+ if hasattr(self, "_onedal_estimator"):
396
+ self._onedal_estimator.explained_variance_ = value
397
+ self._onedal_estimator._onedal_model = None
398
+ self._explained_variance_ = value
399
+
400
+ __doc__ = _add_inc_serialization_note(
401
+ _sklearn_IncrementalPCA.__doc__ + "\n" + r"%incremental_serialization_note%"
402
+ )
403
+ fit.__doc__ = _sklearn_IncrementalPCA.fit.__doc__
404
+ fit_transform.__doc__ = _sklearn_IncrementalPCA.fit_transform.__doc__
405
+ transform.__doc__ = _sklearn_IncrementalPCA.transform.__doc__
406
+ partial_fit.__doc__ = _sklearn_IncrementalPCA.partial_fit.__doc__