scikit-learn-intelex 2025.7.0__py39-none-win_amd64.whl → 2025.9.0__py39-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.cp39-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.cp39-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.cp39-win_amd64.pyd +0 -0
  11. scikit_learn_intelex-2025.9.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-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.cp39-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.cp39-win_amd64.pyd +0 -0
  102. scikit_learn_intelex-2025.7.0.data/data/Lib/site-packages/onedal/_onedal_py_host.cp39-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
@@ -1,1039 +0,0 @@
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._sag import sag_solver
24
- from sklearn.utils import (
25
- check_array,
26
- check_consistent_length,
27
- check_random_state,
28
- compute_class_weight,
29
- )
30
- from sklearn.utils.optimize import _check_optimize_result, _newton_cg
31
- from sklearn.utils.validation import _check_sample_weight, check_is_fitted
32
-
33
- import daal4py as d4p
34
-
35
- from .._n_jobs_support import control_n_jobs
36
- from .._utils import PatchingConditionsChain, getFPType, sklearn_check_version
37
- from ..utils.validation import check_feature_names
38
- from .logistic_loss import (
39
- _daal4py_cross_entropy_loss_extra_args,
40
- _daal4py_grad_,
41
- _daal4py_grad_hess_,
42
- _daal4py_logistic_loss_extra_args,
43
- _daal4py_loss_,
44
- _daal4py_loss_and_grad,
45
- )
46
-
47
- if sklearn_check_version("1.1"):
48
- from sklearn._loss.loss import HalfBinomialLoss, HalfMultinomialLoss
49
- from sklearn.linear_model._linear_loss import LinearModelLoss
50
- from sklearn.linear_model._logistic import _LOGISTIC_SOLVER_CONVERGENCE_MSG
51
- from sklearn.linear_model._logistic import (
52
- LogisticRegression as LogisticRegression_original,
53
- )
54
- from sklearn.linear_model._logistic import (
55
- _check_multi_class,
56
- _check_solver,
57
- _fit_liblinear,
58
- )
59
- else:
60
- from sklearn.linear_model._logistic import (
61
- _check_solver,
62
- _check_multi_class,
63
- _fit_liblinear,
64
- _logistic_loss_and_grad,
65
- _logistic_loss,
66
- _logistic_grad_hess,
67
- _multinomial_loss,
68
- _multinomial_loss_grad,
69
- _multinomial_grad_hess,
70
- _LOGISTIC_SOLVER_CONVERGENCE_MSG,
71
- LogisticRegression as LogisticRegression_original,
72
- )
73
-
74
- from sklearn.linear_model._logistic import _logistic_regression_path as lr_path_original
75
- from sklearn.preprocessing import LabelBinarizer, LabelEncoder
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="warn",
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
- """Compute a Logistic Regression model for a list of regularization
103
- parameters.
104
-
105
- This is an implementation that uses the result of the previous model
106
- to speed up computations along the set of solutions, making it faster
107
- than sequentially calling LogisticRegression for the different parameters.
108
- Note that there will be no speedup with liblinear solver, since it does
109
- not handle warm-starting.
110
-
111
- Read more in the :ref:`User Guide <logistic_regression>`.
112
-
113
- Parameters
114
- ----------
115
- X : array-like or sparse matrix, shape (n_samples, n_features)
116
- Input data.
117
-
118
- y : array-like, shape (n_samples,) or (n_samples, n_targets)
119
- Input data, target values.
120
-
121
- pos_class : int, None
122
- The class with respect to which we perform a one-vs-all fit.
123
- If None, then it is assumed that the given problem is binary.
124
-
125
- Cs : int | array-like, shape (n_cs,)
126
- List of values for the regularization parameter or integer specifying
127
- the number of regularization parameters that should be used. In this
128
- case, the parameters will be chosen in a logarithmic scale between
129
- 1e-4 and 1e4.
130
-
131
- fit_intercept : bool
132
- Whether to fit an intercept for the model. In this case the shape of
133
- the returned array is (n_cs, n_features + 1).
134
-
135
- max_iter : int
136
- Maximum number of iterations for the solver.
137
-
138
- tol : float
139
- Stopping criterion. For the newton-cg and lbfgs solvers, the iteration
140
- will stop when ``max{|g_i | i = 1, ..., n} <= tol``
141
- where ``g_i`` is the i-th component of the gradient.
142
-
143
- verbose : int
144
- For the liblinear and lbfgs solvers set verbose to any positive
145
- number for verbosity.
146
-
147
- solver : {'lbfgs', 'newton-cg', 'liblinear', 'sag', 'saga'}
148
- Numerical solver to use.
149
-
150
- coef : array-like, shape (n_features,), default None
151
- Initialization value for coefficients of logistic regression.
152
- Useless for liblinear solver.
153
-
154
- class_weight : dict or 'balanced', optional
155
- Weights associated with classes in the form ``{class_label: weight}``.
156
- If not given, all classes are supposed to have weight one.
157
-
158
- The "balanced" mode uses the values of y to automatically adjust
159
- weights inversely proportional to class frequencies in the input data
160
- as ``n_samples / (n_classes * np.bincount(y))``.
161
-
162
- Note that these weights will be multiplied with sample_weight (passed
163
- through the fit method) if sample_weight is specified.
164
-
165
- dual : bool
166
- Dual or primal formulation. Dual formulation is only implemented for
167
- l2 penalty with liblinear solver. Prefer dual=False when
168
- n_samples > n_features.
169
-
170
- penalty : str, 'l1', 'l2', or 'elasticnet'
171
- Used to specify the norm used in the penalization. The 'newton-cg',
172
- 'sag' and 'lbfgs' solvers support only l2 penalties. 'elasticnet' is
173
- only supported by the 'saga' solver.
174
-
175
- intercept_scaling : float, default 1.
176
- Useful only when the solver 'liblinear' is used
177
- and self.fit_intercept is set to True. In this case, x becomes
178
- [x, self.intercept_scaling],
179
- i.e. a "synthetic" feature with constant value equal to
180
- intercept_scaling is appended to the instance vector.
181
- The intercept becomes ``intercept_scaling * synthetic_feature_weight``.
182
-
183
- Note! the synthetic feature weight is subject to l1/l2 regularization
184
- as all other features.
185
- To lessen the effect of regularization on synthetic feature weight
186
- (and therefore on the intercept) intercept_scaling has to be increased.
187
-
188
- multi_class : str, {'ovr', 'multinomial', 'auto'}, default: 'ovr'
189
- If the option chosen is 'ovr', then a binary problem is fit for each
190
- label. For 'multinomial' the loss minimised is the multinomial loss fit
191
- across the entire probability distribution, *even when the data is
192
- binary*. 'multinomial' is unavailable when solver='liblinear'.
193
- 'auto' selects 'ovr' if the data is binary, or if solver='liblinear',
194
- and otherwise selects 'multinomial'.
195
-
196
- .. versionadded:: 0.18
197
- Stochastic Average Gradient descent solver for 'multinomial' case.
198
- .. versionchanged:: 0.20
199
- Default will change from 'ovr' to 'auto' in 0.22.
200
-
201
- random_state : int, RandomState instance or None, optional, default None
202
- The seed of the pseudo random number generator to use when shuffling
203
- the data. If int, random_state is the seed used by the random number
204
- generator; If RandomState instance, random_state is the random number
205
- generator; If None, the random number generator is the RandomState
206
- instance used by `np.random`. Used when ``solver`` == 'sag' or
207
- 'liblinear'.
208
-
209
- check_input : bool, default True
210
- If False, the input arrays X and y will not be checked.
211
-
212
- max_squared_sum : float, default None
213
- Maximum squared sum of X over samples. Used only in SAG solver.
214
- If None, it will be computed, going through all the samples.
215
- The value should be precomputed to speed up cross validation.
216
-
217
- sample_weight : array-like, shape(n_samples,) optional
218
- Array of weights that are assigned to individual samples.
219
- If not provided, then each sample is given unit weight.
220
-
221
- l1_ratio : float or None, optional (default=None)
222
- The Elastic-Net mixing parameter, with ``0 <= l1_ratio <= 1``. Only
223
- used if ``penalty='elasticnet'``. Setting ``l1_ratio=0`` is equivalent
224
- to using ``penalty='l2'``, while setting ``l1_ratio=1`` is equivalent
225
- to using ``penalty='l1'``. For ``0 < l1_ratio <1``, the penalty is a
226
- combination of L1 and L2.
227
-
228
- Returns
229
- -------
230
- coefs : ndarray, shape (n_cs, n_features) or (n_cs, n_features + 1)
231
- List of coefficients for the Logistic Regression model. If
232
- fit_intercept is set to True then the second dimension will be
233
- n_features + 1, where the last item represents the intercept. For
234
- ``multiclass='multinomial'``, the shape is (n_classes, n_cs,
235
- n_features) or (n_classes, n_cs, n_features + 1).
236
-
237
- Cs : ndarray
238
- Grid of Cs used for cross-validation.
239
-
240
- n_iter : array, shape (n_cs,)
241
- Actual number of iteration for each Cs.
242
-
243
- Notes
244
- -----
245
- You might get slightly different results with the solver liblinear than
246
- with the others since this uses LIBLINEAR which penalizes the intercept.
247
-
248
- .. versionchanged:: 0.19
249
- The "copy" parameter was removed.
250
- """
251
- _patching_status = PatchingConditionsChain(
252
- "sklearn.linear_model.LogisticRegression.fit"
253
- )
254
- # TODO: remove this fallback workaround after
255
- # logistic path is reworked to align with sklearn 1.2
256
- _dal_ready = _patching_status.and_conditions(
257
- [
258
- (
259
- not (sklearn_check_version("1.2") and solver == "newton-cholesky"),
260
- f"'{solver}' solver is not supported. "
261
- "Only 'lbfgs' and 'newton-cg' solvers are supported.",
262
- )
263
- ]
264
- )
265
- if not _dal_ready:
266
- _patching_status.write_log()
267
- return lr_path_original(
268
- X,
269
- y,
270
- pos_class=pos_class,
271
- Cs=Cs,
272
- fit_intercept=fit_intercept,
273
- max_iter=max_iter,
274
- tol=tol,
275
- verbose=verbose,
276
- solver=solver,
277
- coef=coef,
278
- class_weight=class_weight,
279
- dual=dual,
280
- penalty=penalty,
281
- intercept_scaling=intercept_scaling,
282
- multi_class=multi_class,
283
- random_state=random_state,
284
- check_input=check_input,
285
- max_squared_sum=max_squared_sum,
286
- sample_weight=sample_weight,
287
- l1_ratio=l1_ratio,
288
- n_threads=n_threads,
289
- )
290
-
291
- if isinstance(Cs, numbers.Integral):
292
- Cs = np.logspace(-4, 4, Cs)
293
-
294
- solver = _check_solver(solver, penalty, dual)
295
-
296
- # Preprocessing.
297
- if check_input:
298
- if sklearn_check_version("1.1"):
299
- X = check_array(
300
- X,
301
- accept_sparse="csr",
302
- dtype=np.float64,
303
- accept_large_sparse=solver not in ["liblinear", "sag", "saga"],
304
- )
305
- else:
306
- X = check_array(
307
- X,
308
- accept_sparse="csr",
309
- dtype=np.float64,
310
- accept_large_sparse=solver != "liblinear",
311
- )
312
- y = check_array(y, ensure_2d=False, dtype=None)
313
- check_consistent_length(X, y)
314
- _, n_features = X.shape
315
-
316
- classes = np.unique(y)
317
- random_state = check_random_state(random_state)
318
-
319
- multi_class = _check_multi_class(multi_class, solver, len(classes))
320
- if pos_class is None and multi_class != "multinomial":
321
- if classes.size > 2:
322
- raise ValueError("To fit OvR, use the pos_class argument")
323
- # np.unique(y) gives labels in sorted order.
324
- pos_class = classes[1]
325
-
326
- _dal_ready = _patching_status.and_conditions(
327
- [
328
- (
329
- solver in ["lbfgs", "newton-cg"],
330
- f"'{solver}' solver is not supported. "
331
- "Only 'lbfgs' and 'newton-cg' solvers are supported.",
332
- ),
333
- (not sparse.issparse(X), "X is sparse. Sparse input is not supported."),
334
- (sample_weight is None, "Sample weights are not supported."),
335
- (class_weight is None, "Class weights are not supported."),
336
- ]
337
- )
338
-
339
- if not _dal_ready:
340
- sample_weight = _check_sample_weight(sample_weight, X, dtype=X.dtype, copy=True)
341
- # If class_weights is a dict (provided by the user), the weights
342
- # are assigned to the original labels. If it is "balanced", then
343
- # the class_weights are assigned after masking the labels with a OvR.
344
- le = LabelEncoder()
345
- if (
346
- isinstance(class_weight, dict) or multi_class == "multinomial"
347
- ) and not _dal_ready:
348
- class_weight_ = compute_class_weight(class_weight, classes=classes, y=y)
349
- if not np.allclose(class_weight_, np.ones_like(class_weight_)):
350
- sample_weight *= class_weight_[le.fit_transform(y)]
351
-
352
- # For doing a ovr, we need to mask the labels first. for the
353
- # multinomial case this is not necessary.
354
- if multi_class == "ovr":
355
- y_bin = np.ones(y.shape, dtype=X.dtype)
356
-
357
- if sklearn_check_version("1.1"):
358
- mask = y == pos_class
359
- y_bin = np.ones(y.shape, dtype=X.dtype)
360
- # for compute_class_weight
361
-
362
- if solver == "liblinear" or (
363
- not sklearn_check_version("1.6") and solver not in ["lbfgs", "newton-cg"]
364
- ):
365
- mask_classes = np.array([-1, 1])
366
- y_bin[~mask] = -1.0
367
- else:
368
- # HalfBinomialLoss, used for those solvers, represents y in [0, 1] instead
369
- # of in [-1, 1].
370
- mask_classes = np.array([0, 1])
371
- y_bin[~mask] = 0.0
372
- else:
373
- mask_classes = np.array([-1, 1])
374
- mask = y == pos_class
375
- y_bin[~mask] = -1.0
376
- # for compute_class_weight
377
-
378
- if class_weight == "balanced" and not _dal_ready:
379
- class_weight_ = compute_class_weight(
380
- class_weight, classes=mask_classes, y=y_bin
381
- )
382
- if not np.allclose(class_weight_, np.ones_like(class_weight_)):
383
- sample_weight *= class_weight_[le.fit_transform(y_bin)]
384
-
385
- if _dal_ready:
386
- w0 = np.zeros(n_features + 1, dtype=X.dtype)
387
- y_bin[~mask] = 0.0
388
- else:
389
- w0 = np.zeros(n_features + int(fit_intercept), dtype=X.dtype)
390
-
391
- else:
392
- if sklearn_check_version("1.1"):
393
- if sklearn_check_version("1.6"):
394
- solver_list = ["sag", "saga", "lbfgs", "newton-cg", "newton-cholesky"]
395
- else:
396
- solver_list = ["sag", "saga", "lbfgs", "newton-cg"]
397
- if solver in solver_list:
398
- # SAG, lbfgs and newton-cg multinomial solvers need LabelEncoder,
399
- # not LabelBinarizer, i.e. y as a 1d-array of integers.
400
- # LabelEncoder also saves memory compared to LabelBinarizer, especially
401
- # when n_classes is large.
402
- if _dal_ready:
403
- Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
404
- else:
405
- le = LabelEncoder()
406
- Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
407
- else:
408
- # For liblinear solver, apply LabelBinarizer, i.e. y is one-hot encoded.
409
- lbin = LabelBinarizer()
410
- Y_multi = lbin.fit_transform(y)
411
- if Y_multi.shape[1] == 1:
412
- Y_multi = np.hstack([1 - Y_multi, Y_multi])
413
- else:
414
- if solver not in ["sag", "saga"]:
415
- if _dal_ready:
416
- Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
417
- else:
418
- lbin = LabelBinarizer()
419
- Y_multi = lbin.fit_transform(y)
420
- if Y_multi.shape[1] == 1:
421
- Y_multi = np.hstack([1 - Y_multi, Y_multi])
422
- else:
423
- # SAG multinomial solver needs LabelEncoder, not LabelBinarizer
424
- le = LabelEncoder()
425
- Y_multi = le.fit_transform(y).astype(X.dtype, copy=False)
426
-
427
- if _dal_ready:
428
- w0 = np.zeros((classes.size, n_features + 1), order="C", dtype=X.dtype)
429
- else:
430
- w0 = np.zeros(
431
- (classes.size, n_features + int(fit_intercept)), order="F", dtype=X.dtype
432
- )
433
-
434
- # Adoption of https://github.com/scikit-learn/scikit-learn/pull/26721
435
- if solver in ["lbfgs", "newton-cg", "newton-cholesky"]:
436
- sw_sum = len(X) if sample_weight is None else np.sum(sample_weight)
437
-
438
- if coef is not None:
439
- # it must work both giving the bias term and not
440
- if multi_class == "ovr":
441
- if coef.size not in (n_features, w0.size):
442
- raise ValueError(
443
- "Initialization coef is of shape %d, expected shape "
444
- "%d or %d" % (coef.size, n_features, w0.size)
445
- )
446
- if _dal_ready:
447
- w0[-coef.size :] = (
448
- np.roll(coef, 1, -1) if coef.size != n_features else coef
449
- )
450
- else:
451
- w0[: coef.size] = coef
452
- else:
453
- # For binary problems coef.shape[0] should be 1, otherwise it
454
- # should be classes.size.
455
- n_classes = classes.size
456
- if n_classes == 2:
457
- n_classes = 1
458
-
459
- if coef.shape[0] != n_classes or coef.shape[1] not in (
460
- n_features,
461
- n_features + 1,
462
- ):
463
- raise ValueError(
464
- "Initialization coef is of shape (%d, %d), expected "
465
- "shape (%d, %d) or (%d, %d)"
466
- % (
467
- coef.shape[0],
468
- coef.shape[1],
469
- classes.size,
470
- n_features,
471
- classes.size,
472
- n_features + 1,
473
- )
474
- )
475
-
476
- if _dal_ready:
477
- w0[:, -coef.shape[1] :] = (
478
- np.roll(coef, 1, -1) if coef.shape[1] != n_features else coef
479
- )
480
- else:
481
- if n_classes == 1:
482
- w0[0, : coef.shape[1]] = -coef
483
- w0[1, : coef.shape[1]] = coef
484
- else:
485
- w0[:, : coef.shape[1]] = coef
486
-
487
- C_daal_multiplier = 1
488
- # commented out because this is Py3 feature
489
- # def _map_to_binary_logistic_regression():
490
- # nonlocal C_daal_multiplier
491
- # nonlocal w0
492
- # C_daal_multiplier = 2
493
- # w0 *= 2
494
-
495
- if multi_class == "multinomial":
496
- # fmin_l_bfgs_b and newton-cg accepts only ravelled parameters.
497
- if sklearn_check_version("1.6"):
498
- solver_list = ["lbfgs", "newton-cg", "newton-cholesky"]
499
- else:
500
- solver_list = ["lbfgs", "newton-cg"]
501
- if solver in solver_list:
502
- if _dal_ready and classes.size == 2:
503
- w0 = w0[-1:, :]
504
- if sklearn_check_version("1.1"):
505
- w0 = w0.ravel(order="F")
506
- else:
507
- w0 = w0.ravel()
508
- target = Y_multi
509
- loss = None
510
- if sklearn_check_version("1.1"):
511
- loss = LinearModelLoss(
512
- base_loss=HalfMultinomialLoss(n_classes=classes.size),
513
- fit_intercept=fit_intercept,
514
- )
515
- if solver == "lbfgs":
516
- if _dal_ready:
517
- if classes.size == 2:
518
- # _map_to_binary_logistic_regression()
519
- C_daal_multiplier = 2
520
- w0 *= 2
521
- daal_extra_args_func = _daal4py_logistic_loss_extra_args
522
- else:
523
- daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
524
- func = _daal4py_loss_and_grad
525
- else:
526
- if sklearn_check_version("1.1") and loss is not None:
527
- func = loss.loss_gradient
528
- else:
529
-
530
- def func(x, *args):
531
- return _multinomial_loss_grad(x, *args)[0:2]
532
-
533
- elif solver == "newton-cg":
534
- if _dal_ready:
535
- if classes.size == 2:
536
- # _map_to_binary_logistic_regression()
537
- C_daal_multiplier = 2
538
- w0 *= 2
539
- daal_extra_args_func = _daal4py_logistic_loss_extra_args
540
- else:
541
- daal_extra_args_func = _daal4py_cross_entropy_loss_extra_args
542
- func = _daal4py_loss_
543
- grad = _daal4py_grad_
544
- hess = _daal4py_grad_hess_
545
- else:
546
- if sklearn_check_version("1.1") and loss is not None:
547
- func = loss.loss
548
- grad = loss.gradient
549
- hess = loss.gradient_hessian_product # hess = [gradient, hessp]
550
- else:
551
-
552
- def func(x, *args):
553
- return _multinomial_loss(x, *args)[0]
554
-
555
- def grad(x, *args):
556
- return _multinomial_loss_grad(x, *args)[1]
557
-
558
- hess = _multinomial_grad_hess
559
- warm_start_sag = {"coef": w0.T}
560
- else:
561
- target = y_bin
562
- if solver == "lbfgs":
563
- if _dal_ready:
564
- func = _daal4py_loss_and_grad
565
- daal_extra_args_func = _daal4py_logistic_loss_extra_args
566
- else:
567
- if sklearn_check_version("1.1"):
568
- loss = LinearModelLoss(
569
- base_loss=HalfBinomialLoss(), fit_intercept=fit_intercept
570
- )
571
- func = loss.loss_gradient
572
- else:
573
- func = _logistic_loss_and_grad
574
- elif solver == "newton-cg":
575
- if _dal_ready:
576
- daal_extra_args_func = _daal4py_logistic_loss_extra_args
577
- func = _daal4py_loss_
578
- grad = _daal4py_grad_
579
- hess = _daal4py_grad_hess_
580
- else:
581
- if sklearn_check_version("1.1"):
582
- loss = LinearModelLoss(
583
- base_loss=HalfBinomialLoss(), fit_intercept=fit_intercept
584
- )
585
- func = loss.loss
586
- grad = loss.gradient
587
- hess = loss.gradient_hessian_product # hess = [gradient, hessp]
588
- else:
589
- func = _logistic_loss
590
-
591
- def grad(x, *args):
592
- return _logistic_loss_and_grad(x, *args)[1]
593
-
594
- hess = _logistic_grad_hess
595
- warm_start_sag = {"coef": np.expand_dims(w0, axis=1)}
596
-
597
- coefs = list()
598
- n_iter = np.zeros(len(Cs), dtype=np.int32)
599
- for i, C in enumerate(Cs):
600
- if solver == "lbfgs":
601
- if _dal_ready:
602
- extra_args = daal_extra_args_func(
603
- classes.size,
604
- w0,
605
- X,
606
- target,
607
- 0.0,
608
- 1.0 / (2 * C * C_daal_multiplier * sw_sum),
609
- fit_intercept,
610
- value=True,
611
- gradient=True,
612
- hessian=False,
613
- )
614
- else:
615
- if sklearn_check_version("1.1"):
616
- l2_reg_strength = 1.0 / (C * sw_sum)
617
- extra_args = (X, target, sample_weight, l2_reg_strength, n_threads)
618
- else:
619
- extra_args = (X, target, 1.0 / (C * sw_sum), sample_weight)
620
-
621
- iprint = [-1, 50, 1, 100, 101][
622
- np.searchsorted(np.array([0, 1, 2, 3]), verbose)
623
- ]
624
- opt_res = optimize.minimize(
625
- func,
626
- w0,
627
- method="L-BFGS-B",
628
- jac=True,
629
- args=extra_args,
630
- options={
631
- "maxiter": max_iter,
632
- "maxls": 50,
633
- "iprint": iprint,
634
- "gtol": tol,
635
- "ftol": 64 * np.finfo(float).eps,
636
- },
637
- )
638
- n_iter_i = _check_optimize_result(
639
- solver,
640
- opt_res,
641
- max_iter,
642
- extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG,
643
- )
644
- w0, loss = opt_res.x, opt_res.fun
645
- if _dal_ready and C_daal_multiplier == 2:
646
- w0 /= 2
647
- elif solver == "newton-cg":
648
- if _dal_ready:
649
-
650
- def make_ncg_funcs(f, value=False, gradient=False, hessian=False):
651
- daal_penaltyL2 = 1.0 / (2 * C * C_daal_multiplier * sw_sum)
652
- _obj_, X_, y_, n_samples = daal_extra_args_func(
653
- classes.size,
654
- w0,
655
- X,
656
- target,
657
- 0.0,
658
- daal_penaltyL2,
659
- fit_intercept,
660
- value=value,
661
- gradient=gradient,
662
- hessian=hessian,
663
- )
664
-
665
- def _func_(x, *args):
666
- return f(x, _obj_, *args)
667
-
668
- return _func_, (X_, y_, n_samples, daal_penaltyL2)
669
-
670
- loss_func, extra_args = make_ncg_funcs(func, value=True)
671
- grad_func, _ = make_ncg_funcs(grad, gradient=True)
672
- grad_hess_func, _ = make_ncg_funcs(hess, gradient=True)
673
- w0, n_iter_i = _newton_cg(
674
- grad_hess_func,
675
- loss_func,
676
- grad_func,
677
- w0,
678
- args=extra_args,
679
- maxiter=max_iter,
680
- tol=tol,
681
- )
682
- else:
683
- if sklearn_check_version("1.1"):
684
- l2_reg_strength = 1.0 / (C * sw_sum)
685
- args = (X, target, sample_weight, l2_reg_strength, n_threads)
686
- else:
687
- args = (X, target, 1.0 / (C * sw_sum), sample_weight)
688
-
689
- w0, n_iter_i = _newton_cg(
690
- hess, func, grad, w0, args=args, maxiter=max_iter, tol=tol
691
- )
692
- elif solver == "liblinear":
693
- (
694
- coef_,
695
- intercept_,
696
- n_iter_i,
697
- ) = _fit_liblinear(
698
- X,
699
- target,
700
- C,
701
- fit_intercept,
702
- intercept_scaling,
703
- None,
704
- penalty,
705
- dual,
706
- verbose,
707
- max_iter,
708
- tol,
709
- random_state,
710
- sample_weight=sample_weight,
711
- )
712
- if fit_intercept:
713
- w0 = np.concatenate([coef_.ravel(), intercept_])
714
- else:
715
- w0 = coef_.ravel()
716
-
717
- elif solver in ["sag", "saga"]:
718
- if multi_class == "multinomial":
719
- target = target.astype(X.dtype, copy=False)
720
- loss = "multinomial"
721
- else:
722
- loss = "log"
723
- # alpha is for L2-norm, beta is for L1-norm
724
- if penalty == "l1":
725
- alpha = 0.0
726
- beta = 1.0 / C
727
- elif penalty == "l2":
728
- alpha = 1.0 / C
729
- beta = 0.0
730
- else: # Elastic-Net penalty
731
- alpha = (1.0 / C) * (1 - l1_ratio)
732
- beta = (1.0 / C) * l1_ratio
733
-
734
- w0, n_iter_i, warm_start_sag = sag_solver(
735
- X,
736
- target,
737
- sample_weight,
738
- loss,
739
- alpha,
740
- beta,
741
- max_iter,
742
- tol,
743
- verbose,
744
- random_state,
745
- False,
746
- max_squared_sum,
747
- warm_start_sag,
748
- is_saga=(solver == "saga"),
749
- )
750
-
751
- else:
752
- raise ValueError(
753
- "solver must be one of {'liblinear', 'lbfgs', "
754
- "'newton-cg', 'sag'}, got '%s' instead" % solver
755
- )
756
-
757
- if multi_class == "multinomial":
758
- if _dal_ready:
759
- if classes.size == 2:
760
- multi_w0 = w0[np.newaxis, :]
761
- else:
762
- multi_w0 = np.reshape(w0, (classes.size, -1))
763
- else:
764
- n_classes = max(2, classes.size)
765
- if sklearn_check_version("1.1"):
766
- if sklearn_check_version("1.6"):
767
- solver_list = ["lbfgs", "newton-cg", "newton-cholesky"]
768
- else:
769
- solver_list = ["lbfgs", "newton-cg"]
770
- if solver in solver_list:
771
- multi_w0 = np.reshape(w0, (n_classes, -1), order="F")
772
- else:
773
- multi_w0 = w0
774
- else:
775
- multi_w0 = np.reshape(w0, (n_classes, -1))
776
- if n_classes == 2:
777
- multi_w0 = multi_w0[1][np.newaxis, :]
778
- coefs.append(multi_w0.copy())
779
- else:
780
- coefs.append(w0.copy())
781
-
782
- n_iter[i] = n_iter_i
783
-
784
- if _dal_ready:
785
- if fit_intercept:
786
- for i, ci in enumerate(coefs):
787
- coefs[i] = np.roll(ci, -1, -1)
788
- else:
789
- for i, ci in enumerate(coefs):
790
- coefs[i] = np.delete(ci, 0, axis=-1)
791
-
792
- _patching_status.write_log()
793
-
794
- return np.array(coefs), np.array(Cs), n_iter
795
-
796
-
797
- def daal4py_fit(self, X, y, sample_weight=None):
798
- which, what = logistic_module, "_logistic_regression_path"
799
- replacer = logistic_regression_path
800
- descriptor = getattr(which, what, None)
801
- setattr(which, what, replacer)
802
- try:
803
- clf = LogisticRegression_original.fit(self, X, y, sample_weight)
804
- finally:
805
- setattr(which, what, descriptor)
806
- return clf
807
-
808
-
809
- def daal4py_predict(self, X, resultsToEvaluate):
810
- check_is_fitted(self)
811
- check_feature_names(self, X, reset=False)
812
- X = check_array(X, accept_sparse="csr", dtype=[np.float64, np.float32])
813
- try:
814
- fptype = getFPType(X)
815
- except ValueError:
816
- fptype = None
817
-
818
- if resultsToEvaluate == "computeClassLabels":
819
- _function_name = "predict"
820
- elif resultsToEvaluate == "computeClassProbabilities":
821
- _function_name = "predict_proba"
822
- elif resultsToEvaluate == "computeClassLogProbabilities":
823
- _function_name = "predict_log_proba"
824
- else:
825
- raise ValueError(
826
- "resultsToEvaluate must be in [computeClassLabels, \
827
- computeClassProbabilities, computeClassLogProbabilities]"
828
- )
829
-
830
- _patching_status = PatchingConditionsChain(
831
- f"sklearn.linear_model.LogisticRegression.{_function_name}"
832
- )
833
- if _function_name != "predict":
834
- _patching_status.and_conditions(
835
- [
836
- (
837
- self.classes_.size == 2
838
- or logistic_module._check_multi_class(
839
- self.multi_class if self.multi_class != "deprecated" else "auto",
840
- self.solver,
841
- self.classes_.size,
842
- )
843
- != "ovr",
844
- f"selected multiclass option is not supported for n_classes > 2.",
845
- ),
846
- ],
847
- )
848
-
849
- _dal_ready = _patching_status.and_conditions(
850
- [
851
- (not sparse.issparse(X), "X is sparse. Sparse input is not supported."),
852
- (
853
- not sparse.issparse(self.coef_),
854
- "self.coef_ is sparse. Sparse coefficients are not supported.",
855
- ),
856
- (fptype is not None, "Unable to get dtype."),
857
- ]
858
- )
859
-
860
- _patching_status.write_log()
861
- if _dal_ready:
862
- n_features = self.coef_.shape[1]
863
- if X.shape[1] != n_features:
864
- raise ValueError(
865
- f"X has {X.shape[1]} features, "
866
- f"but LogisticRegression is expecting {n_features} features as input"
867
- )
868
- builder = d4p.logistic_regression_model_builder(X.shape[1], len(self.classes_))
869
- builder.set_beta(self.coef_, self.intercept_)
870
- predict = d4p.logistic_regression_prediction(
871
- nClasses=len(self.classes_),
872
- fptype=fptype,
873
- method="defaultDense",
874
- resultsToEvaluate=resultsToEvaluate,
875
- )
876
- res = predict.compute(X, builder.model)
877
- if resultsToEvaluate == "computeClassLabels":
878
- res = res.prediction
879
- if (
880
- not np.array_equal(self.classes_, np.arange(0, len(self.classes_)))
881
- or self.classes_.dtype != X.dtype
882
- ):
883
- res = self.classes_.take(np.asarray(res, dtype=np.intp))
884
- elif resultsToEvaluate == "computeClassProbabilities":
885
- res = res.probabilities
886
- elif resultsToEvaluate == "computeClassLogProbabilities":
887
- res = res.logProbabilities
888
- else:
889
- raise ValueError(
890
- "resultsToEvaluate must be in [computeClassLabels, \
891
- computeClassProbabilities, computeClassLogProbabilities]"
892
- )
893
- if res.shape[1] == 1:
894
- res = np.ravel(res)
895
- return res
896
-
897
- if resultsToEvaluate == "computeClassLabels":
898
- return LogisticRegression_original.predict(self, X)
899
- if resultsToEvaluate == "computeClassProbabilities":
900
- return LogisticRegression_original.predict_proba(self, X)
901
- if resultsToEvaluate == "computeClassLogProbabilities":
902
- return LogisticRegression_original.predict_log_proba(self, X)
903
-
904
-
905
- def logistic_regression_path(
906
- X,
907
- y,
908
- pos_class=None,
909
- Cs=10,
910
- fit_intercept=True,
911
- max_iter=100,
912
- tol=1e-4,
913
- verbose=0,
914
- solver="lbfgs",
915
- coef=None,
916
- class_weight=None,
917
- dual=False,
918
- penalty="l2",
919
- intercept_scaling=1.0,
920
- multi_class="auto",
921
- random_state=None,
922
- check_input=True,
923
- max_squared_sum=None,
924
- sample_weight=None,
925
- l1_ratio=None,
926
- n_threads=1,
927
- ):
928
- if sklearn_check_version("1.1"):
929
- return __logistic_regression_path(
930
- X,
931
- y,
932
- pos_class=pos_class,
933
- Cs=Cs,
934
- fit_intercept=fit_intercept,
935
- max_iter=max_iter,
936
- tol=tol,
937
- verbose=verbose,
938
- solver=solver,
939
- coef=coef,
940
- class_weight=class_weight,
941
- dual=dual,
942
- penalty=penalty,
943
- intercept_scaling=intercept_scaling,
944
- multi_class=multi_class,
945
- random_state=random_state,
946
- check_input=check_input,
947
- max_squared_sum=max_squared_sum,
948
- sample_weight=sample_weight,
949
- l1_ratio=l1_ratio,
950
- n_threads=n_threads,
951
- )
952
- return __logistic_regression_path(
953
- X,
954
- y,
955
- pos_class=pos_class,
956
- Cs=Cs,
957
- fit_intercept=fit_intercept,
958
- max_iter=max_iter,
959
- tol=tol,
960
- verbose=verbose,
961
- solver=solver,
962
- coef=coef,
963
- class_weight=class_weight,
964
- dual=dual,
965
- penalty=penalty,
966
- intercept_scaling=intercept_scaling,
967
- multi_class=multi_class,
968
- random_state=random_state,
969
- check_input=check_input,
970
- max_squared_sum=max_squared_sum,
971
- sample_weight=sample_weight,
972
- l1_ratio=l1_ratio,
973
- )
974
-
975
-
976
- @control_n_jobs(
977
- decorated_methods=["fit", "predict", "predict_proba", "predict_log_proba"]
978
- )
979
- class LogisticRegression(LogisticRegression_original):
980
- __doc__ = LogisticRegression_original.__doc__
981
-
982
- if sklearn_check_version("1.2"):
983
- _parameter_constraints: dict = {
984
- **LogisticRegression_original._parameter_constraints
985
- }
986
-
987
- def __init__(
988
- self,
989
- penalty="l2",
990
- dual=False,
991
- tol=1e-4,
992
- C=1.0,
993
- fit_intercept=True,
994
- intercept_scaling=1,
995
- class_weight=None,
996
- random_state=None,
997
- solver="lbfgs",
998
- max_iter=100,
999
- multi_class="auto",
1000
- verbose=0,
1001
- warm_start=False,
1002
- n_jobs=None,
1003
- l1_ratio=None,
1004
- ):
1005
- self.penalty = penalty
1006
- self.dual = dual
1007
- self.tol = tol
1008
- self.C = C
1009
- self.fit_intercept = fit_intercept
1010
- self.intercept_scaling = intercept_scaling
1011
- self.class_weight = class_weight
1012
- self.random_state = random_state
1013
- self.solver = solver
1014
- self.max_iter = max_iter
1015
- self.multi_class = multi_class
1016
- self.verbose = verbose
1017
- self.warm_start = warm_start
1018
- self.n_jobs = n_jobs
1019
- self.l1_ratio = l1_ratio
1020
-
1021
- def fit(self, X, y, sample_weight=None):
1022
- check_feature_names(self, X, reset=True)
1023
- if sklearn_check_version("1.2"):
1024
- self._validate_params()
1025
- return daal4py_fit(self, X, y, sample_weight)
1026
-
1027
- def predict(self, X):
1028
- return daal4py_predict(self, X, "computeClassLabels")
1029
-
1030
- def predict_log_proba(self, X):
1031
- return daal4py_predict(self, X, "computeClassLogProbabilities")
1032
-
1033
- def predict_proba(self, X):
1034
- return daal4py_predict(self, X, "computeClassProbabilities")
1035
-
1036
- fit.__doc__ = LogisticRegression_original.fit.__doc__
1037
- predict.__doc__ = LogisticRegression_original.predict.__doc__
1038
- predict_log_proba.__doc__ = LogisticRegression_original.predict_log_proba.__doc__
1039
- predict_proba.__doc__ = LogisticRegression_original.predict_proba.__doc__