scikit-learn-intelex 2025.7.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 (278) 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.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +19 -8
  3. {scikit_learn_intelex-2025.7.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.7.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.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +4 -4
  6. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +545 -0
  7. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +5 -2
  8. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +2 -2
  9. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_device_offload.py +41 -40
  10. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
  11. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
  12. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +52 -76
  13. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +26 -41
  14. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +6 -7
  15. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +11 -11
  16. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +7 -25
  17. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +1 -1
  18. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +31 -11
  19. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +5 -0
  20. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +7 -16
  21. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +13 -18
  22. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +3 -3
  23. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +6 -3
  24. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +158 -0
  25. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/datatypes/_dlpack.py +64 -0
  26. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/_sycl_usm.py +9 -24
  27. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +85 -18
  28. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +39 -40
  29. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +124 -0
  30. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +11 -5
  31. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +5 -5
  32. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +48 -160
  33. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +75 -188
  34. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +25 -11
  35. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +10 -17
  36. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +5 -4
  37. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +14 -0
  38. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +3 -0
  39. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +51 -25
  40. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/_third_party.py +52 -2
  41. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__init__.py +2 -1
  42. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -5
  43. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +13 -12
  44. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/_utils.py +31 -4
  45. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +26 -37
  46. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +33 -42
  47. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +30 -27
  48. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +1 -0
  49. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +139 -98
  50. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +30 -0
  51. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +558 -0
  52. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +164 -0
  53. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +1 -6
  54. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +8 -2
  55. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +22 -7
  56. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +2 -0
  57. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +76 -68
  58. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +69 -53
  59. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +53 -41
  60. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +122 -38
  61. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +42 -31
  62. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +27 -61
  63. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +565 -0
  64. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +8 -6
  65. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +260 -0
  66. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +112 -0
  67. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +406 -0
  68. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +55 -1
  69. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +7 -4
  70. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +6 -3
  71. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +12 -8
  72. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +26 -0
  73. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +7 -4
  74. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +18 -8
  75. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +7 -2
  76. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +6 -4
  77. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +2 -2
  78. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +19 -6
  79. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +299 -0
  80. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +21 -4
  81. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +7 -4
  82. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +16 -8
  83. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +12 -4
  84. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +23 -0
  85. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +136 -13
  86. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +71 -8
  87. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +31 -0
  88. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -1
  89. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +55 -6
  90. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +111 -0
  91. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +1 -1
  92. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +18 -14
  93. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +3 -21
  94. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +217 -0
  95. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +97 -0
  96. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +19 -1
  97. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/METADATA +83 -92
  98. scikit_learn_intelex-2025.9.0.dist-info/RECORD +259 -0
  99. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
  100. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -1039
  101. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
  102. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
  103. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -110
  104. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/decomposition/pca.py +0 -200
  105. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -423
  106. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -115
  107. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -134
  108. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -129
  109. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -119
  110. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +0 -227
  111. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -50
  112. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -71
  113. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -19
  114. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -43
  115. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -82
  116. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -59
  117. scikit_learn_intelex-2025.7.0.dist-info/RECORD +0 -258
  118. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
  119. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
  120. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +0 -0
  121. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +0 -0
  122. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
  123. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
  124. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
  125. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
  126. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
  127. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
  128. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
  129. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
  130. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
  131. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
  132. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
  133. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
  134. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
  135. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
  136. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
  137. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
  138. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
  139. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
  140. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
  141. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
  142. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
  143. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
  144. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
  145. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
  146. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
  147. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
  148. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
  149. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
  150. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
  151. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
  152. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
  153. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  154. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +0 -0
  155. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
  156. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
  157. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
  158. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
  159. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
  160. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
  161. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
  162. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
  163. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
  164. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
  165. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
  166. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
  167. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
  168. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
  169. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
  170. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
  171. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
  172. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
  173. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
  174. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
  175. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
  176. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
  177. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
  178. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
  179. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
  180. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
  181. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
  182. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
  183. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
  184. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
  185. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
  186. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
  187. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
  188. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
  189. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
  190. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
  191. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
  192. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
  193. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
  194. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
  195. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
  196. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +0 -0
  197. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
  198. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
  199. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
  200. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
  201. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
  202. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
  203. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
  204. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
  205. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
  206. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +0 -0
  207. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
  208. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
  209. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  210. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/base.py +0 -0
  211. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
  212. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  213. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  214. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  215. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  216. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  217. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  218. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  219. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  220. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  221. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  222. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  223. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  224. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  225. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
  226. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
  227. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
  228. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  229. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
  230. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  231. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  232. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  233. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  234. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  235. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  236. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  237. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  238. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  239. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
  240. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  241. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  242. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  243. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  244. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
  245. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  246. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  247. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  248. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
  249. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
  250. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  251. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  252. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  253. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
  254. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  255. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
  256. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  257. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
  258. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  259. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  260. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
  261. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  262. {scikit_learn_intelex-2025.7.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
  263. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  264. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +0 -0
  265. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  266. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +0 -0
  267. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  268. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
  269. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  270. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  271. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +0 -0
  272. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
  273. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
  274. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
  275. {scikit_learn_intelex-2025.7.0.data → scikit_learn_intelex-2025.9.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
  276. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/LICENSE.txt +0 -0
  277. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/WHEEL +0 -0
  278. {scikit_learn_intelex-2025.7.0.dist-info → scikit_learn_intelex-2025.9.0.dist-info}/top_level.txt +0 -0
@@ -53,15 +53,26 @@ def convert_model(model) -> "GBTDAALModel | LogisticDAALModel":
53
53
  offers faster prediction methods.
54
54
  """
55
55
  if isinstance(model, LogisticRegression):
56
+ # The multi_class keyword is removed in scikit-learn 1.8, and OvR functionality
57
+ # has been replaced by other estimators. Therefore checking for linear classifiers
58
+ # only dependent on the solver.
56
59
  if model.classes_.shape[0] > 2:
57
- if (model.multi_class == "ovr") or (
58
- model.multi_class == "auto" and model.solver == "liblinear"
59
- ):
60
- raise TypeError(
61
- "Supplied 'model' object is a linear classifier, but not multinomial logistic"
62
- " (hint: pass multi_class='multinomial' to 'LogisticRegression')."
63
- )
64
- elif (model.classes_.shape[0] == 2) and (model.multi_class == "multinomial"):
60
+ if not hasattr(model, "multi_class"):
61
+ if model.solver == "liblinear":
62
+ raise TypeError(
63
+ "Supplied 'model' object is a linear classifier, but not multinomial logistic"
64
+ )
65
+ else:
66
+ if (model.multi_class == "ovr") or (
67
+ model.multi_class == "auto" and model.solver == "liblinear"
68
+ ):
69
+ raise TypeError(
70
+ "Supplied 'model' object is a linear classifier, but not multinomial logistic"
71
+ " (hint: pass multi_class='multinomial' to 'LogisticRegression')."
72
+ )
73
+ elif (model.classes_.shape[0] == 2) and (
74
+ getattr(model, "multi_class", "auto") == "multinomial"
75
+ ):
65
76
  raise TypeError(
66
77
  "Supplied 'model' object is not a logistic regressor "
67
78
  "(hint: pass multi_class='auto' to 'LogisticRegression')."
@@ -97,21 +97,6 @@ class LogisticDAALModel:
97
97
  )
98
98
  builder.set_beta(coefs, intercepts)
99
99
  self._model = builder.model
100
- self._alg_pred_class = logistic_regression_prediction(
101
- nClasses=self.n_classes_,
102
- fptype=self._fptype,
103
- resultsToEvaluate="computeClassLabels",
104
- )
105
- self._alg_pred_prob = logistic_regression_prediction(
106
- nClasses=self.n_classes_,
107
- fptype=self._fptype,
108
- resultsToEvaluate="computeClassProbabilities",
109
- )
110
- self._alg_pred_logprob = logistic_regression_prediction(
111
- nClasses=self.n_classes_,
112
- fptype=self._fptype,
113
- resultsToEvaluate="computeClassLogProbabilities",
114
- )
115
100
 
116
101
  @property
117
102
  def coef_(self):
@@ -121,6 +106,15 @@ class LogisticDAALModel:
121
106
  def intercept_(self):
122
107
  return self._model.Beta[:, 0]
123
108
 
109
+ def _logistic_regression_prediction(
110
+ self, X: np.ndarray, resultsToEvaluate: str
111
+ ) -> classifier_prediction_result:
112
+ return logistic_regression_prediction(
113
+ nClasses=self.n_classes_,
114
+ fptype=self._fptype,
115
+ resultsToEvaluate=resultsToEvaluate,
116
+ ).compute(X, self._model)
117
+
124
118
  def predict(self, X) -> np.ndarray:
125
119
  """
126
120
  Predict most probable class
@@ -133,7 +127,7 @@ class LogisticDAALModel:
133
127
  The most probable class, as integer indexes
134
128
  """
135
129
  return (
136
- self._alg_pred_class.compute(X, self._model)
130
+ self._logistic_regression_prediction(X, "computeClassLabels")
137
131
  .prediction.reshape(-1)
138
132
  .astype(int)
139
133
  )
@@ -151,7 +145,9 @@ class LogisticDAALModel:
151
145
  proba : array(n_samples, n_classes)
152
146
  The predicted probabilities for each class.
153
147
  """
154
- return self._alg_pred_prob.compute(X, self._model).probabilities
148
+ return self._logistic_regression_prediction(
149
+ X, "computeClassProbabilities"
150
+ ).probabilities
155
151
 
156
152
  predict_proba.__doc__ = predict_proba.__doc__.replace(r"%docstring_X%", _docstring_X)
157
153
 
@@ -166,7 +162,9 @@ class LogisticDAALModel:
166
162
  log_proba : array(n_samples, n_classes)
167
163
  The logarithms of the predicted probabilities for each class.
168
164
  """
169
- return self._alg_pred_logprob.compute(X, self._model).logProbabilities
165
+ return self._logistic_regression_prediction(
166
+ X, "computeClassLogProbabilities"
167
+ ).logProbabilities
170
168
 
171
169
  predict_log_proba.__doc__ = predict_log_proba.__doc__.replace(
172
170
  r"%docstring_X%", _docstring_X
@@ -206,11 +204,7 @@ class LogisticDAALModel:
206
204
  raise ValueError(
207
205
  "Must request at least one of 'classes', 'proba', 'log_proba'."
208
206
  )
209
- return logistic_regression_prediction(
210
- nClasses=self.n_classes_,
211
- fptype=self._fptype,
212
- resultsToEvaluate=pred_request,
213
- ).compute(X, self._model)
207
+ return self._logistic_regression_prediction(X, pred_request)
214
208
 
215
209
  predict_multiple.__doc__ = predict_multiple.__doc__.replace(
216
210
  r"%docstring_X%", _docstring_X
@@ -61,8 +61,8 @@ def _daal4py_logistic_loss_extra_args(
61
61
  fptype=getFPType(X),
62
62
  method="defaultDense",
63
63
  interceptFlag=fit_intercept,
64
- penaltyL1=l1 / n,
65
- penaltyL2=l2 / n,
64
+ penaltyL1=l1,
65
+ penaltyL2=l2,
66
66
  resultsToCompute=results_to_compute,
67
67
  )
68
68
  objective_function_algorithm_instance.setup(X, y, beta)
@@ -99,8 +99,8 @@ def _daal4py_cross_entropy_loss_extra_args(
99
99
  fptype=getFPType(X),
100
100
  method="defaultDense",
101
101
  interceptFlag=fit_intercept,
102
- penaltyL1=l1 / n,
103
- penaltyL2=l2 / n,
102
+ penaltyL1=l1,
103
+ penaltyL2=l2,
104
104
  resultsToCompute=results_to_compute,
105
105
  )
106
106
  )
@@ -0,0 +1,545 @@
1
+ # ==============================================================================
2
+ # Copyright 2014 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 numbers
18
+
19
+ import numpy as np
20
+ import scipy.optimize as optimize
21
+ import scipy.sparse as sparse
22
+ import sklearn.linear_model._logistic as logistic_module
23
+ from sklearn.linear_model._logistic import _LOGISTIC_SOLVER_CONVERGENCE_MSG
24
+ from sklearn.linear_model._logistic import (
25
+ LogisticRegression as LogisticRegression_original,
26
+ )
27
+ from sklearn.linear_model._logistic import _check_solver
28
+ from sklearn.utils import check_array, check_consistent_length, check_random_state
29
+ from sklearn.utils.optimize import _check_optimize_result, _newton_cg
30
+ from sklearn.utils.validation import check_is_fitted
31
+
32
+ import daal4py as d4p
33
+
34
+ from .._n_jobs_support import control_n_jobs
35
+ from .._utils import PatchingConditionsChain, getFPType, sklearn_check_version
36
+ from ..utils.validation import check_feature_names
37
+ from .logistic_loss import (
38
+ _daal4py_cross_entropy_loss_extra_args,
39
+ _daal4py_grad_,
40
+ _daal4py_grad_hess_,
41
+ _daal4py_logistic_loss_extra_args,
42
+ _daal4py_loss_,
43
+ _daal4py_loss_and_grad,
44
+ )
45
+
46
+ if sklearn_check_version("1.7.1"):
47
+ from sklearn.utils.fixes import _get_additional_lbfgs_options_dict
48
+ else:
49
+ # From https://github.com/scikit-learn/scikit-learn/blob/760edca5fb5cc3538b98ebc55171806e2a6e3e84/sklearn/utils/fixes.py#L408
50
+ # This should be removed if SciPy>=1.15 becomes the minimum required at some point
51
+ def _get_additional_lbfgs_options_dict(k, v):
52
+ return {k: v}
53
+
54
+
55
+ from sklearn.linear_model._logistic import _logistic_regression_path as lr_path_original
56
+ from sklearn.preprocessing import LabelBinarizer, LabelEncoder
57
+
58
+
59
+ # This code is a patch for sklearn 1.8, which is related to https://github.com/scikit-learn/scikit-learn/pull/32073
60
+ # where the multi_class keyword is deprecated and this aspect is removed.
61
+ def _check_multi_class(multi_class, solver, n_classes):
62
+ """Computes the multi class type, either "multinomial" or "ovr".
63
+ For `n_classes` > 2 and a solver that supports it, returns "multinomial".
64
+ For all other cases, in particular binary classification, return "ovr".
65
+ """
66
+ if multi_class == "auto":
67
+ if solver in ("liblinear",):
68
+ multi_class = "ovr"
69
+ elif n_classes > 2:
70
+ multi_class = "multinomial"
71
+ else:
72
+ multi_class = "ovr"
73
+ if multi_class == "multinomial" and solver in ("liblinear",):
74
+ raise ValueError("Solver %s does not support a multinomial backend." % solver)
75
+ return multi_class
76
+
77
+
78
+ # Code adapted from sklearn.linear_model.logistic version 0.21
79
+ def __logistic_regression_path(
80
+ X,
81
+ y,
82
+ pos_class=None,
83
+ Cs=10,
84
+ fit_intercept=True,
85
+ max_iter=100,
86
+ tol=1e-4,
87
+ verbose=0,
88
+ solver="lbfgs",
89
+ coef=None,
90
+ class_weight=None,
91
+ dual=False,
92
+ penalty="l2",
93
+ intercept_scaling=1.0,
94
+ multi_class="auto",
95
+ random_state=None,
96
+ check_input=True,
97
+ max_squared_sum=None,
98
+ sample_weight=None,
99
+ l1_ratio=None,
100
+ n_threads=1,
101
+ ):
102
+
103
+ # Comment 2025-08-04: this file might have dead code paths from unsupported solvers.
104
+ # It appears to have initially been a copy-paste of scikit-learn with a few additions
105
+ # for varying levels of offloading to oneDAL, but later on the check above was added that
106
+ # calls 'lr_path_original' early on when it won't end up offloading anything to oneDAL.
107
+ # Some parts of the file have been selectively updated since the initial copy-paste
108
+ # to reflect newer additions to sklearn, but they are not synch. The rest of the file
109
+ # remains as it was before the early offload conditions, so some sections might have
110
+ # become unreachable.
111
+
112
+ if isinstance(Cs, numbers.Integral):
113
+ Cs = np.logspace(-4, 4, Cs)
114
+
115
+ solver = _check_solver(solver, penalty, dual)
116
+
117
+ # Preprocessing.
118
+ if check_input:
119
+ X = check_array(
120
+ X,
121
+ accept_sparse=False,
122
+ dtype=np.float64,
123
+ accept_large_sparse=False,
124
+ )
125
+ y = check_array(y, ensure_2d=False, dtype=None)
126
+ check_consistent_length(X, y)
127
+ _, n_features = X.shape
128
+
129
+ classes = np.unique(y)
130
+ random_state = check_random_state(random_state)
131
+
132
+ multi_class = _check_multi_class(multi_class, solver, len(classes))
133
+ if pos_class is None and multi_class != "multinomial":
134
+ if classes.size > 2:
135
+ raise ValueError("To fit OvR, use the pos_class argument")
136
+ # np.unique(y) gives labels in sorted order.
137
+ pos_class = classes[1]
138
+
139
+ le = LabelEncoder()
140
+
141
+ # For doing a ovr, we need to mask the labels first. for the
142
+ # multinomial case this is not necessary.
143
+ if multi_class == "ovr":
144
+ y_bin = (y == pos_class).astype(X.dtype)
145
+ w0 = np.zeros(n_features + 1, dtype=X.dtype)
146
+ else:
147
+ Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
148
+ w0 = np.zeros((classes.size, n_features + 1), order="C", dtype=X.dtype)
149
+
150
+ # Adoption of https://github.com/scikit-learn/scikit-learn/pull/26721
151
+ sw_sum = len(X)
152
+
153
+ if coef is not None:
154
+ # it must work both giving the bias term and not
155
+ if multi_class == "ovr":
156
+ if coef.size not in (n_features, w0.size):
157
+ raise ValueError(
158
+ "Initialization coef is of shape %d, expected shape "
159
+ "%d or %d" % (coef.size, n_features, w0.size)
160
+ )
161
+ w0[-coef.size :] = np.roll(coef, 1, -1) if coef.size != n_features else coef
162
+ else:
163
+ # For binary problems coef.shape[0] should be 1, otherwise it
164
+ # should be classes.size.
165
+ n_classes = classes.size
166
+ if n_classes == 2:
167
+ n_classes = 1
168
+
169
+ if coef.shape[0] != n_classes or coef.shape[1] not in (
170
+ n_features,
171
+ n_features + 1,
172
+ ):
173
+ raise ValueError(
174
+ "Initialization coef is of shape (%d, %d), expected "
175
+ "shape (%d, %d) or (%d, %d)"
176
+ % (
177
+ coef.shape[0],
178
+ coef.shape[1],
179
+ classes.size,
180
+ n_features,
181
+ classes.size,
182
+ n_features + 1,
183
+ )
184
+ )
185
+
186
+ w0[:, -coef.shape[1] :] = (
187
+ np.roll(coef, 1, -1) if coef.shape[1] != n_features else coef
188
+ )
189
+
190
+ C_daal_multiplier = 1
191
+
192
+ if multi_class == "multinomial":
193
+ # fmin_l_bfgs_b and newton-cg accepts only ravelled parameters.
194
+ if classes.size == 2:
195
+ w0 = w0[-1:, :]
196
+ w0 = w0.ravel(order="C")
197
+ target = Y_multi
198
+
199
+ # Note: scikit-learn does a theoretically incorrect procedure when using
200
+ # multi_class='multinomial' with two classes. This converts the problem
201
+ # into an equivalent problem for binary logistic regression.
202
+ if solver == "lbfgs":
203
+ if classes.size == 2:
204
+ C_daal_multiplier = 2
205
+ w0 *= 2
206
+ daal_extra_args_func = _daal4py_logistic_loss_extra_args
207
+ else:
208
+ daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
209
+ func = _daal4py_loss_and_grad
210
+
211
+ elif solver == "newton-cg":
212
+ if classes.size == 2:
213
+ C_daal_multiplier = 2
214
+ w0 *= 2
215
+ daal_extra_args_func = _daal4py_logistic_loss_extra_args
216
+ else:
217
+ daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
218
+ func = _daal4py_loss_
219
+ grad = _daal4py_grad_
220
+ hess = _daal4py_grad_hess_
221
+ else:
222
+ target = y_bin
223
+ if solver == "lbfgs":
224
+ func = _daal4py_loss_and_grad
225
+ daal_extra_args_func = _daal4py_logistic_loss_extra_args
226
+ elif solver == "newton-cg":
227
+ daal_extra_args_func = _daal4py_logistic_loss_extra_args
228
+ func = _daal4py_loss_
229
+ grad = _daal4py_grad_
230
+ hess = _daal4py_grad_hess_
231
+
232
+ coefs = list()
233
+ n_iter = np.zeros(len(Cs), dtype=np.int32)
234
+ for i, C in enumerate(Cs):
235
+ if solver == "lbfgs":
236
+ extra_args = daal_extra_args_func(
237
+ classes.size,
238
+ w0,
239
+ X,
240
+ target,
241
+ 0.0,
242
+ 1.0 / (2 * C * C_daal_multiplier * sw_sum),
243
+ fit_intercept,
244
+ value=True,
245
+ gradient=True,
246
+ hessian=False,
247
+ )
248
+
249
+ iprint = [-1, 50, 1, 100, 101][
250
+ np.searchsorted(np.array([0, 1, 2, 3]), verbose)
251
+ ]
252
+ opt_res = optimize.minimize(
253
+ func,
254
+ w0,
255
+ method="L-BFGS-B",
256
+ jac=True,
257
+ args=extra_args,
258
+ options={
259
+ "maxiter": max_iter,
260
+ "maxls": 50,
261
+ "gtol": tol,
262
+ "ftol": 64 * np.finfo(float).eps,
263
+ **_get_additional_lbfgs_options_dict("iprint", iprint),
264
+ },
265
+ )
266
+ n_iter_i = _check_optimize_result(
267
+ solver,
268
+ opt_res,
269
+ max_iter,
270
+ extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG,
271
+ )
272
+ w0, loss = opt_res.x, opt_res.fun
273
+ if C_daal_multiplier == 2:
274
+ w0 /= 2
275
+ elif solver == "newton-cg":
276
+
277
+ def make_ncg_funcs(f, value=False, gradient=False, hessian=False):
278
+ daal_penaltyL2 = 1.0 / (2 * C * C_daal_multiplier * sw_sum)
279
+ _obj_, X_, y_, n_samples = daal_extra_args_func(
280
+ classes.size,
281
+ w0,
282
+ X,
283
+ target,
284
+ 0.0,
285
+ daal_penaltyL2,
286
+ fit_intercept,
287
+ value=value,
288
+ gradient=gradient,
289
+ hessian=hessian,
290
+ )
291
+
292
+ def _func_(x, *args):
293
+ return f(x, _obj_, *args)
294
+
295
+ return _func_, (X_, y_, n_samples, daal_penaltyL2)
296
+
297
+ loss_func, extra_args = make_ncg_funcs(func, value=True)
298
+ grad_func, _ = make_ncg_funcs(grad, gradient=True)
299
+ grad_hess_func, _ = make_ncg_funcs(hess, gradient=True)
300
+ w0, n_iter_i = _newton_cg(
301
+ grad_hess_func,
302
+ loss_func,
303
+ grad_func,
304
+ w0,
305
+ args=extra_args,
306
+ maxiter=max_iter,
307
+ tol=tol,
308
+ )
309
+ if C_daal_multiplier == 2:
310
+ w0 /= 2
311
+
312
+ else:
313
+ raise ValueError(
314
+ "solver must be one of {'lbfgs', 'newton-cg'}, got '%s' instead" % solver
315
+ )
316
+
317
+ if multi_class == "multinomial":
318
+ if classes.size == 2:
319
+ multi_w0 = w0[np.newaxis, :]
320
+ else:
321
+ multi_w0 = np.reshape(w0, (classes.size, -1))
322
+ coefs.append(multi_w0.copy())
323
+ else:
324
+ coefs.append(w0.copy())
325
+
326
+ n_iter[i] = n_iter_i
327
+
328
+ if fit_intercept:
329
+ for i, ci in enumerate(coefs):
330
+ coefs[i] = np.roll(ci, -1, -1)
331
+ else:
332
+ for i, ci in enumerate(coefs):
333
+ coefs[i] = np.delete(ci, 0, axis=-1)
334
+
335
+ return np.array(coefs), np.array(Cs), n_iter
336
+
337
+
338
+ def daal4py_fit(self, X, y, sample_weight=None):
339
+ which, what = logistic_module, "_logistic_regression_path"
340
+ replacer = logistic_regression_path
341
+ descriptor = getattr(which, what, None)
342
+ setattr(which, what, replacer)
343
+ try:
344
+ clf = LogisticRegression_original.fit(self, X, y, sample_weight)
345
+ finally:
346
+ setattr(which, what, descriptor)
347
+ return clf
348
+
349
+
350
+ def daal4py_predict(self, X, resultsToEvaluate):
351
+ check_is_fitted(self)
352
+ check_feature_names(self, X, reset=False)
353
+ X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
354
+ try:
355
+ fptype = getFPType(X)
356
+ except ValueError:
357
+ fptype = None
358
+
359
+ if resultsToEvaluate == "computeClassLabels":
360
+ _function_name = "predict"
361
+ elif resultsToEvaluate == "computeClassProbabilities":
362
+ _function_name = "predict_proba"
363
+ elif resultsToEvaluate == "computeClassLogProbabilities":
364
+ _function_name = "predict_log_proba"
365
+ else:
366
+ raise ValueError(
367
+ "resultsToEvaluate must be in [computeClassLabels, \
368
+ computeClassProbabilities, computeClassLogProbabilities]"
369
+ )
370
+
371
+ _patching_status = PatchingConditionsChain(
372
+ f"sklearn.linear_model.LogisticRegression.{_function_name}"
373
+ )
374
+ if _function_name != "predict":
375
+ multi_class = getattr(self, "multi_class", "auto")
376
+ _patching_status.and_conditions(
377
+ [
378
+ (
379
+ self.classes_.size == 2
380
+ or _check_multi_class(
381
+ multi_class if multi_class != "deprecated" else "auto",
382
+ self.solver,
383
+ self.classes_.size,
384
+ )
385
+ != "ovr",
386
+ f"selected multiclass option is not supported for n_classes > 2.",
387
+ ),
388
+ (
389
+ not (self.classes_.size == 2 and multi_class == "multinomial"),
390
+ "multi_class='multinomial' not supported with binary data",
391
+ ),
392
+ ],
393
+ )
394
+
395
+ _dal_ready = _patching_status.and_conditions(
396
+ [
397
+ (not sparse.issparse(X), "X is sparse. Sparse input is not supported."),
398
+ (
399
+ not sparse.issparse(self.coef_),
400
+ "self.coef_ is sparse. Sparse coefficients are not supported.",
401
+ ),
402
+ (fptype is not None, "Unable to get dtype."),
403
+ ]
404
+ )
405
+
406
+ _patching_status.write_log()
407
+ if _dal_ready:
408
+ n_features = self.coef_.shape[1]
409
+ if X.shape[1] != n_features:
410
+ raise ValueError(
411
+ f"X has {X.shape[1]} features, "
412
+ f"but LogisticRegression is expecting {n_features} features as input"
413
+ )
414
+ builder = d4p.logistic_regression_model_builder(X.shape[1], len(self.classes_))
415
+ builder.set_beta(self.coef_, self.intercept_)
416
+ predict = d4p.logistic_regression_prediction(
417
+ nClasses=len(self.classes_),
418
+ fptype=fptype,
419
+ method="defaultDense",
420
+ resultsToEvaluate=resultsToEvaluate,
421
+ )
422
+ res = predict.compute(X, builder.model)
423
+ if resultsToEvaluate == "computeClassLabels":
424
+ res = res.prediction
425
+ if (
426
+ not np.array_equal(self.classes_, np.arange(0, len(self.classes_)))
427
+ or self.classes_.dtype != X.dtype
428
+ ):
429
+ res = self.classes_.take(np.asarray(res, dtype=np.intp))
430
+ elif resultsToEvaluate == "computeClassProbabilities":
431
+ res = res.probabilities
432
+ elif resultsToEvaluate == "computeClassLogProbabilities":
433
+ res = res.logProbabilities
434
+ else:
435
+ raise ValueError(
436
+ "resultsToEvaluate must be in [computeClassLabels, \
437
+ computeClassProbabilities, computeClassLogProbabilities]"
438
+ )
439
+ if res.shape[1] == 1:
440
+ res = np.ravel(res)
441
+ return res
442
+
443
+ if resultsToEvaluate == "computeClassLabels":
444
+ return LogisticRegression_original.predict(self, X)
445
+ if resultsToEvaluate == "computeClassProbabilities":
446
+ return LogisticRegression_original.predict_proba(self, X)
447
+ if resultsToEvaluate == "computeClassLogProbabilities":
448
+ return LogisticRegression_original.predict_log_proba(self, X)
449
+
450
+
451
+ def logistic_regression_path(*args, **kwargs):
452
+
453
+ _patching_status = PatchingConditionsChain(
454
+ "sklearn.linear_model.LogisticRegression.fit"
455
+ )
456
+ _dal_ready = _patching_status.and_conditions(
457
+ [
458
+ (
459
+ kwargs["solver"] in ["lbfgs", "newton-cg"],
460
+ f"'{kwargs['solver']}' solver is not supported. "
461
+ "Only 'lbfgs' and 'newton-cg' solvers are supported.",
462
+ ),
463
+ (not sparse.issparse(args[0]), "X is sparse. Sparse input is not supported."),
464
+ (kwargs["sample_weight"] is None, "Sample weights are not supported."),
465
+ (kwargs["class_weight"] is None, "Class weights are not supported."),
466
+ ]
467
+ )
468
+ if not _dal_ready:
469
+ _patching_status.write_log()
470
+ return lr_path_original(*args, **kwargs)
471
+
472
+ if sklearn_check_version("1.8"):
473
+ kwargs.pop("classes", None)
474
+ res = __logistic_regression_path(*(args[:2]), **kwargs)
475
+ else:
476
+ res = __logistic_regression_path(*args, **kwargs)
477
+
478
+ _patching_status.write_log()
479
+ return res
480
+
481
+
482
+ @control_n_jobs(
483
+ decorated_methods=["fit", "predict", "predict_proba", "predict_log_proba"]
484
+ )
485
+ class LogisticRegression(LogisticRegression_original):
486
+ __doc__ = LogisticRegression_original.__doc__
487
+
488
+ if sklearn_check_version("1.2"):
489
+ _parameter_constraints: dict = {
490
+ **LogisticRegression_original._parameter_constraints
491
+ }
492
+
493
+ def __init__(
494
+ self,
495
+ penalty="l2",
496
+ dual=False,
497
+ tol=1e-4,
498
+ C=1.0,
499
+ fit_intercept=True,
500
+ intercept_scaling=1,
501
+ class_weight=None,
502
+ random_state=None,
503
+ solver="lbfgs",
504
+ max_iter=100,
505
+ multi_class="auto",
506
+ verbose=0,
507
+ warm_start=False,
508
+ n_jobs=None,
509
+ l1_ratio=None,
510
+ ):
511
+ self.penalty = penalty
512
+ self.dual = dual
513
+ self.tol = tol
514
+ self.C = C
515
+ self.fit_intercept = fit_intercept
516
+ self.intercept_scaling = intercept_scaling
517
+ self.class_weight = class_weight
518
+ self.random_state = random_state
519
+ self.solver = solver
520
+ self.max_iter = max_iter
521
+ self.multi_class = multi_class
522
+ self.verbose = verbose
523
+ self.warm_start = warm_start
524
+ self.n_jobs = n_jobs
525
+ self.l1_ratio = l1_ratio
526
+
527
+ def fit(self, X, y, sample_weight=None):
528
+ check_feature_names(self, X, reset=True)
529
+ if sklearn_check_version("1.2"):
530
+ self._validate_params()
531
+ return daal4py_fit(self, X, y, sample_weight)
532
+
533
+ def predict(self, X):
534
+ return daal4py_predict(self, X, "computeClassLabels")
535
+
536
+ def predict_log_proba(self, X):
537
+ return daal4py_predict(self, X, "computeClassLogProbabilities")
538
+
539
+ def predict_proba(self, X):
540
+ return daal4py_predict(self, X, "computeClassProbabilities")
541
+
542
+ fit.__doc__ = LogisticRegression_original.fit.__doc__
543
+ predict.__doc__ = LogisticRegression_original.predict.__doc__
544
+ predict_log_proba.__doc__ = LogisticRegression_original.predict_log_proba.__doc__
545
+ predict_proba.__doc__ = LogisticRegression_original.predict_proba.__doc__