scikit-learn-intelex 2024.7.0__py310-none-win_amd64.whl → 2025.0.1__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 (260) hide show
  1. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/__init__.py +73 -0
  2. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/__main__.py +58 -0
  3. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/_daal4py.cp310-win_amd64.pyd +0 -0
  4. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +424 -0
  5. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/mb/__init__.py +19 -0
  6. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/mb/model_builders.py +377 -0
  7. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/mpi_transceiver.cp310-win_amd64.pyd +0 -0
  8. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/__init__.py +40 -0
  9. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +242 -0
  10. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/_utils.py +241 -0
  11. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +20 -0
  12. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +165 -0
  13. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +597 -0
  14. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  15. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn}/decomposition/__init__.py +2 -2
  16. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +524 -0
  17. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +192 -0
  18. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +318 -0
  19. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +27 -0
  20. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +1397 -0
  21. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  22. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +29 -0
  23. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
  24. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +272 -0
  25. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +325 -0
  26. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
  27. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +17 -0
  28. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  29. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +1026 -0
  30. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +17 -0
  31. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +196 -0
  32. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  33. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +19 -0
  34. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +405 -0
  35. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +20 -0
  36. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +155 -0
  37. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +210 -0
  38. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +19 -0
  39. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +309 -0
  40. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  41. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
  42. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  43. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
  44. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  45. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +87 -0
  46. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +118 -0
  47. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +21 -0
  48. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +503 -0
  49. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +139 -0
  50. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +74 -0
  51. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  52. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  53. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +19 -0
  54. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +734 -0
  55. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd/covariance → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils}/__init__.py +5 -3
  56. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils/base.py +75 -0
  57. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +51 -0
  58. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +693 -0
  59. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/__init__.py +83 -0
  60. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_config.py +53 -0
  61. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_device_offload.py +229 -0
  62. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_dpc.cp310-win_amd64.pyd +0 -0
  63. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/_onedal_py_host.cp310-win_amd64.pyd +0 -0
  64. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +107 -0
  65. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  66. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  67. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  68. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/__init__.py +27 -0
  69. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/dbscan.py +110 -0
  70. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/kmeans.py +560 -0
  71. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/kmeans_init.py +115 -0
  72. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +125 -0
  73. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +88 -0
  74. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +93 -0
  75. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_base.py +38 -0
  76. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_estimator_checks.py +47 -0
  77. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_mixin.py +62 -0
  78. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_policy.py +59 -0
  79. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/_spmd_policy.py +30 -0
  80. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/hyperparameters.py +116 -0
  81. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/common/tests/test_policy.py +75 -0
  82. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/__init__.py +20 -0
  83. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/covariance.py +125 -0
  84. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +146 -0
  85. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +50 -0
  86. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +122 -0
  87. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/__init__.py +19 -0
  88. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +95 -0
  89. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +235 -0
  90. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition}/__init__.py +3 -2
  91. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +204 -0
  92. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition/pca.py +186 -0
  93. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +198 -0
  94. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/ensemble/__init__.py +29 -0
  95. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/ensemble/forest.py +720 -0
  96. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +97 -0
  97. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/__init__.py +27 -0
  98. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +258 -0
  99. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/linear_model.py +329 -0
  100. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +249 -0
  101. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
  102. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
  103. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +149 -0
  104. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +95 -0
  105. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +95 -0
  106. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/neighbors/__init__.py +19 -0
  107. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/neighbors/neighbors.py +778 -0
  108. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +49 -0
  109. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/__init__.py +27 -0
  110. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/get_tree.py +25 -0
  111. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/kernel_functions.py +153 -0
  112. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +159 -0
  113. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/__init__.py +19 -0
  114. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/svm.py +556 -0
  115. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +351 -0
  116. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +204 -0
  117. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +210 -0
  118. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_svc.py +168 -0
  119. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/svm/tests/test_svr.py +243 -0
  120. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/tests/test_common.py +41 -0
  121. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +168 -0
  122. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +107 -0
  123. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/utils/__init__.py +49 -0
  124. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/utils/_array_api.py +91 -0
  125. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal/utils/validation.py +432 -0
  126. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/_device_offload.py +36 -13
  127. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +20 -0
  128. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +30 -8
  129. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +49 -16
  130. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +1 -1
  131. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +383 -0
  132. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +153 -0
  133. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +28 -10
  134. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +11 -0
  135. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +1 -1
  136. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/dispatcher.py +19 -9
  137. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1 -1
  138. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +2 -0
  139. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +7 -7
  140. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +45 -26
  141. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +418 -0
  142. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +4 -4
  143. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +13 -10
  144. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  145. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +5 -4
  146. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +3 -3
  147. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +2 -2
  148. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +2 -2
  149. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +4 -2
  150. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +2 -1
  151. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +1 -1
  152. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/preview}/__init__.py +1 -3
  153. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +8 -8
  154. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +2 -2
  155. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/linear_model/ridge.py +4 -4
  156. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +20 -0
  157. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  158. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  159. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +20 -0
  160. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  161. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  162. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/decomposition}/__init__.py +4 -1
  163. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +30 -0
  164. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  165. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +2 -1
  166. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
  167. scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  168. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +4 -1
  169. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +1 -1
  170. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/svc.py +1 -1
  171. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/_utils_spmd.py +18 -5
  172. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +2 -1
  173. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -1
  174. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +12 -11
  175. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +1 -2
  176. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/sklearnex/utils/_array_api.py +5 -20
  177. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/METADATA +3 -2
  178. scikit_learn_intelex-2025.0.1.dist-info/RECORD +255 -0
  179. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -25
  180. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -42
  181. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -84
  182. scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +0 -303
  183. scikit_learn_intelex-2024.7.0.dist-info/RECORD +0 -122
  184. {scikit_learn_intelex-2024.7.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2025.0.1.data/data/Lib/site-packages/onedal}/basic_statistics/__init__.py +0 -0
  185. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
  186. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  187. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
  188. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
  189. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
  190. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
  191. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -0
  192. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  193. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
  194. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  195. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  196. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
  197. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  198. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  199. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
  200. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  201. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  202. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -0
  203. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -0
  204. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +0 -0
  205. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
  206. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  207. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  208. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  209. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  210. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  211. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  212. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  213. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
  214. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
  215. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
  216. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
  217. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  218. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +0 -0
  219. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
  220. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
  221. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/linear_model/__init__.py +0 -0
  222. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_ridge.py +0 -0
  223. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  224. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  225. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
  226. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  227. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  228. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  229. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
  230. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
  231. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  232. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
  233. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  234. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
  235. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  236. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
  237. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
  238. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  239. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  240. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
  241. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  242. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  243. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
  244. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  245. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/_common.py +0 -0
  246. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +0 -0
  247. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/svr.py +0 -0
  248. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  249. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/_utils.py +0 -0
  250. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +0 -0
  251. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
  252. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
  253. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
  254. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
  255. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  256. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/tests/test_finite.py +0 -0
  257. {scikit_learn_intelex-2024.7.0.data → scikit_learn_intelex-2025.0.1.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  258. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/LICENSE.txt +0 -0
  259. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/WHEEL +0 -0
  260. {scikit_learn_intelex-2024.7.0.dist-info → scikit_learn_intelex-2025.0.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,418 @@
1
+ # ===============================================================================
2
+ # Copyright 2024 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ===============================================================================
16
+
17
+ import numbers
18
+ import warnings
19
+
20
+ import numpy as np
21
+ from sklearn.base import BaseEstimator, MultiOutputMixin, RegressorMixin
22
+ from sklearn.metrics import r2_score
23
+ from sklearn.utils import gen_batches
24
+ from sklearn.utils.validation import check_is_fitted, check_X_y
25
+
26
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
27
+ from daal4py.sklearn.utils.validation import sklearn_check_version
28
+
29
+ if sklearn_check_version("1.2"):
30
+ from sklearn.utils._param_validation import Interval
31
+
32
+ from onedal.linear_model import IncrementalRidge as onedal_IncrementalRidge
33
+
34
+ from .._device_offload import dispatch, wrap_output_data
35
+ from .._utils import PatchingConditionsChain
36
+
37
+
38
+ @control_n_jobs(
39
+ decorated_methods=["fit", "partial_fit", "predict", "_onedal_finalize_fit"]
40
+ )
41
+ class IncrementalRidge(MultiOutputMixin, RegressorMixin, BaseEstimator):
42
+ """
43
+ Incremental estimator for Ridge Regression.
44
+ Allows to train Ridge Regression if data is splitted into batches.
45
+
46
+ Parameters
47
+ ----------
48
+ fit_intercept : bool, default=True
49
+ Whether to calculate the intercept for this model. If set
50
+ to False, no intercept will be used in calculations
51
+ (i.e. data is expected to be centered).
52
+
53
+ alpha : float, default=1.0
54
+ Regularization strength; must be a positive float. Regularization
55
+ improves the conditioning of the problem and reduces the variance of
56
+ the estimates. Larger values specify stronger regularization.
57
+
58
+ copy_X : bool, default=True
59
+ If True, X will be copied; else, it may be overwritten.
60
+
61
+ n_jobs : int, default=None
62
+ The number of jobs to use for the computation.
63
+
64
+ batch_size : int, default=None
65
+ The number of samples to use for each batch. Only used when calling
66
+ ``fit``. If ``batch_size`` is ``None``, then ``batch_size``
67
+ is inferred from the data and set to ``5 * n_features``, to provide a
68
+ balance between approximation accuracy and memory consumption.
69
+
70
+ Attributes
71
+ ----------
72
+ coef_ : array of shape (n_features, ) or (n_targets, n_features)
73
+ Estimated coefficients for the ridge regression problem.
74
+ If multiple targets are passed during the fit (y 2D), this
75
+ is a 2D array of shape (n_targets, n_features), while if only
76
+ one target is passed, this is a 1D array of length n_features.
77
+
78
+ intercept_ : float or array of shape (n_targets,)
79
+ Independent term in the linear model. Set to 0.0 if
80
+ `fit_intercept = False`.
81
+
82
+ n_features_in_ : int
83
+ Number of features seen during :term:`fit`.
84
+
85
+ n_samples_seen_ : int
86
+ The number of samples processed by the estimator. Will be reset on
87
+ new calls to fit, but increments across ``partial_fit`` calls.
88
+ It should be not less than `n_features_in_` if `fit_intercept`
89
+ is False and not less than `n_features_in_` + 1 if `fit_intercept`
90
+ is True to obtain regression coefficients.
91
+
92
+ batch_size_ : int
93
+ Inferred batch size from ``batch_size``.
94
+ """
95
+
96
+ _onedal_incremental_ridge = staticmethod(onedal_IncrementalRidge)
97
+
98
+ if sklearn_check_version("1.2"):
99
+ _parameter_constraints: dict = {
100
+ "fit_intercept": ["boolean"],
101
+ "alpha": [Interval(numbers.Real, 0, None, closed="left")],
102
+ "copy_X": ["boolean"],
103
+ "n_jobs": [Interval(numbers.Integral, -1, None, closed="left"), None],
104
+ "batch_size": [Interval(numbers.Integral, 1, None, closed="left"), None],
105
+ }
106
+
107
+ def __init__(
108
+ self, fit_intercept=True, alpha=1.0, copy_X=True, n_jobs=None, batch_size=None
109
+ ):
110
+ self.fit_intercept = fit_intercept
111
+ self.alpha = alpha
112
+ self.copy_X = copy_X
113
+ self.n_jobs = n_jobs
114
+ self.batch_size = batch_size
115
+
116
+ def _onedal_supported(self, method_name, *data):
117
+ patching_status = PatchingConditionsChain(
118
+ f"sklearn.linear_model.{self.__class__.__name__}.{method_name}"
119
+ )
120
+ return patching_status
121
+
122
+ _onedal_cpu_supported = _onedal_supported
123
+ _onedal_gpu_supported = _onedal_supported
124
+
125
+ def _onedal_predict(self, X, queue=None):
126
+ if sklearn_check_version("1.2"):
127
+ self._validate_params()
128
+
129
+ if sklearn_check_version("1.0"):
130
+ X = self._validate_data(X, accept_sparse=False, reset=False)
131
+
132
+ assert hasattr(self, "_onedal_estimator")
133
+ if self._need_to_finalize:
134
+ self._onedal_finalize_fit()
135
+ return self._onedal_estimator.predict(X, queue)
136
+
137
+ def _onedal_score(self, X, y, sample_weight=None, queue=None):
138
+ return r2_score(
139
+ y, self._onedal_predict(X, queue=queue), sample_weight=sample_weight
140
+ )
141
+
142
+ def _onedal_partial_fit(self, X, y, check_input=True, queue=None):
143
+ first_pass = not hasattr(self, "n_samples_seen_") or self.n_samples_seen_ == 0
144
+
145
+ if sklearn_check_version("1.2"):
146
+ self._validate_params()
147
+
148
+ if check_input:
149
+ if sklearn_check_version("1.0"):
150
+ X, y = self._validate_data(
151
+ X,
152
+ y,
153
+ dtype=[np.float64, np.float32],
154
+ reset=first_pass,
155
+ copy=self.copy_X,
156
+ multi_output=True,
157
+ force_all_finite=False,
158
+ )
159
+ else:
160
+ check_X_y(X, y, multi_output=True, y_numeric=True)
161
+
162
+ if first_pass:
163
+ self.n_samples_seen_ = X.shape[0]
164
+ self.n_features_in_ = X.shape[1]
165
+ else:
166
+ self.n_samples_seen_ += X.shape[0]
167
+ onedal_params = {
168
+ "fit_intercept": self.fit_intercept,
169
+ "alpha": self.alpha,
170
+ "copy_X": self.copy_X,
171
+ }
172
+ if not hasattr(self, "_onedal_estimator"):
173
+ self._onedal_estimator = self._onedal_incremental_ridge(**onedal_params)
174
+ self._onedal_estimator.partial_fit(X, y, queue)
175
+ self._need_to_finalize = True
176
+
177
+ def _onedal_finalize_fit(self):
178
+ assert hasattr(self, "_onedal_estimator")
179
+ is_underdetermined = self.n_samples_seen_ < self.n_features_in_ + int(
180
+ self.fit_intercept
181
+ )
182
+ if is_underdetermined:
183
+ raise ValueError("Not enough samples to finalize")
184
+ self._onedal_estimator.finalize_fit()
185
+ self._save_attributes()
186
+ self._need_to_finalize = False
187
+
188
+ def _onedal_fit(self, X, y, queue=None):
189
+ if sklearn_check_version("1.2"):
190
+ self._validate_params()
191
+
192
+ if sklearn_check_version("1.0"):
193
+ X, y = self._validate_data(
194
+ X,
195
+ y,
196
+ dtype=[np.float64, np.float32],
197
+ copy=self.copy_X,
198
+ multi_output=True,
199
+ ensure_2d=True,
200
+ )
201
+ else:
202
+ check_X_y(X, y, multi_output=True, y_numeric=True)
203
+
204
+ n_samples, n_features = X.shape
205
+
206
+ is_underdetermined = n_samples < n_features + int(self.fit_intercept)
207
+ if is_underdetermined:
208
+ raise ValueError("Not enough samples to run oneDAL backend")
209
+
210
+ if self.batch_size is None:
211
+ self.batch_size_ = 5 * n_features
212
+ else:
213
+ self.batch_size_ = self.batch_size
214
+
215
+ self.n_samples_seen_ = 0
216
+ if hasattr(self, "_onedal_estimator"):
217
+ self._onedal_estimator._reset()
218
+
219
+ for batch in gen_batches(n_samples, self.batch_size_):
220
+ X_batch, y_batch = X[batch], y[batch]
221
+ self._onedal_partial_fit(X_batch, y_batch, check_input=False, queue=queue)
222
+
223
+ if sklearn_check_version("1.2"):
224
+ self._validate_params()
225
+
226
+ # finite check occurs on onedal side
227
+ self.n_features_in_ = n_features
228
+
229
+ if n_samples == 1:
230
+ warnings.warn(
231
+ "Only one sample available. You may want to reshape your data array"
232
+ )
233
+
234
+ self._onedal_finalize_fit()
235
+
236
+ return self
237
+
238
+ def partial_fit(self, X, y, check_input=True):
239
+ """
240
+ Incrementally fits the linear model with X and y. All of X and y is
241
+ processed as a single batch.
242
+
243
+ Parameters
244
+ ----------
245
+ X : array-like of shape (n_samples, n_features)
246
+ Training data, where `n_samples` is the number of samples and
247
+ `n_features` is the number of features.
248
+
249
+ y : array-like of shape (n_samples,) or (n_samples, n_targets)
250
+ Target values, where `n_samples` is the number of samples and
251
+ `n_targets` is the number of targets.
252
+
253
+ Returns
254
+ -------
255
+ self : object
256
+ Returns the instance itself.
257
+ """
258
+
259
+ dispatch(
260
+ self,
261
+ "partial_fit",
262
+ {
263
+ "onedal": self.__class__._onedal_partial_fit,
264
+ "sklearn": None,
265
+ },
266
+ X,
267
+ y,
268
+ check_input=check_input,
269
+ )
270
+ return self
271
+
272
+ def fit(self, X, y):
273
+ """
274
+ Fit the model with X and y, using minibatches of size batch_size.
275
+
276
+ Parameters
277
+ ----------
278
+ X : array-like of shape (n_samples, n_features)
279
+ Training data, where `n_samples` is the number of samples and
280
+ `n_features` is the number of features. It is necessary for
281
+ `n_samples` to be not less than `n_features` if `fit_intercept`
282
+ is False and not less than `n_features` + 1 if `fit_intercept`
283
+ is True
284
+
285
+ y : array-like of shape (n_samples,) or (n_samples, n_targets)
286
+ Target values, where `n_samples` is the number of samples and
287
+ `n_targets` is the number of targets.
288
+
289
+ Returns
290
+ -------
291
+ self : object
292
+ Returns the instance itself.
293
+ """
294
+
295
+ dispatch(
296
+ self,
297
+ "fit",
298
+ {
299
+ "onedal": self.__class__._onedal_fit,
300
+ "sklearn": None,
301
+ },
302
+ X,
303
+ y,
304
+ )
305
+ return self
306
+
307
+ @wrap_output_data
308
+ def predict(self, X, y=None):
309
+ """
310
+ Predict using the linear model.
311
+
312
+ Parameters
313
+ ----------
314
+ X : {array-like, sparse matrix} of shape (n_samples, n_features)
315
+ Samples.
316
+
317
+ Returns
318
+ -------
319
+ array, shape (n_samples,) or (n_samples, n_targets)
320
+ Returns predicted values.
321
+ """
322
+ check_is_fitted(
323
+ self,
324
+ msg=f"This {self.__class__.__name__} instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.",
325
+ )
326
+
327
+ return dispatch(
328
+ self,
329
+ "predict",
330
+ {
331
+ "onedal": self.__class__._onedal_predict,
332
+ "sklearn": None,
333
+ },
334
+ X,
335
+ )
336
+
337
+ @wrap_output_data
338
+ def score(self, X, y, sample_weight=None):
339
+ """
340
+ Return the coefficient of determination R^2 of the prediction.
341
+
342
+ The coefficient R^2 is defined as (1 - u/v), where u is the residual
343
+ sum of squares ((y_true - y_pred) ** 2).sum() and v is the total sum
344
+ of squares ((y_true - y_true.mean()) ** 2).sum().
345
+ The best possible score is 1.0 and it can be negative (because the
346
+ model can be arbitrarily worse). A constant model that always
347
+ predicts the expected value of y, disregarding the input features,
348
+ would get a R^2 score of 0.0.
349
+
350
+ Parameters
351
+ ----------
352
+ X : {array-like, sparse matrix} of shape (n_samples, n_features)
353
+ Test samples.
354
+
355
+ y : array-like of shape (n_samples,) or (n_samples, n_targets)
356
+ True values for X.
357
+
358
+ sample_weight : array-like of shape (n_samples,), default=None
359
+ Sample weights.
360
+
361
+ Returns
362
+ -------
363
+ score : float
364
+ R^2 of self.predict(X) wrt. y.
365
+ """
366
+ check_is_fitted(
367
+ self,
368
+ msg=f"This {self.__class__.__name__} instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.",
369
+ )
370
+
371
+ return dispatch(
372
+ self,
373
+ "score",
374
+ {
375
+ "onedal": self.__class__._onedal_score,
376
+ "sklearn": None,
377
+ },
378
+ X,
379
+ y,
380
+ sample_weight=sample_weight,
381
+ )
382
+
383
+ @property
384
+ def coef_(self):
385
+ if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
386
+ self._onedal_finalize_fit()
387
+
388
+ return self._coef
389
+
390
+ @coef_.setter
391
+ def coef_(self, value):
392
+ if hasattr(self, "_onedal_estimator"):
393
+ self._onedal_estimator.coef_ = value
394
+ # checking if the model is already fitted and if so, deleting the model
395
+ if hasattr(self._onedal_estimator, "_onedal_model"):
396
+ del self._onedal_estimator._onedal_model
397
+ self._coef = value
398
+
399
+ @property
400
+ def intercept_(self):
401
+ if hasattr(self, "_onedal_estimator") and self._need_to_finalize:
402
+ self._onedal_finalize_fit()
403
+
404
+ return self._intercept
405
+
406
+ @intercept_.setter
407
+ def intercept_(self, value):
408
+ if hasattr(self, "_onedal_estimator"):
409
+ self._onedal_estimator.intercept_ = value
410
+ # checking if the model is already fitted and if so, deleting the model
411
+ if hasattr(self._onedal_estimator, "_onedal_model"):
412
+ del self._onedal_estimator._onedal_model
413
+ self._intercept = value
414
+
415
+ def _save_attributes(self):
416
+ self.n_features_in_ = self._onedal_estimator.n_features_in_
417
+ self._coef = self._onedal_estimator.coef_
418
+ self._intercept = self._onedal_estimator.intercept_
@@ -15,10 +15,10 @@
15
15
  # ===============================================================================
16
16
 
17
17
  from daal4py.sklearn.linear_model import Ridge
18
- from onedal._device_offload import support_usm_ndarray
18
+ from onedal._device_offload import support_input_format
19
19
 
20
20
  # Note: `sklearnex.linear_model.Ridge` only has functional
21
21
  # sycl GPU support. No GPU device will be offloaded.
22
- Ridge.fit = support_usm_ndarray(queue_param=False)(Ridge.fit)
23
- Ridge.predict = support_usm_ndarray(queue_param=False)(Ridge.predict)
24
- Ridge.score = support_usm_ndarray(queue_param=False)(Ridge.score)
22
+ Ridge.fit = support_input_format(queue_param=False)(Ridge.fit)
23
+ Ridge.predict = support_input_format(queue_param=False)(Ridge.predict)
24
+ Ridge.score = support_input_format(queue_param=False)(Ridge.score)
@@ -34,7 +34,7 @@ def test_sklearnex_fit_on_gold_data(dataframe, queue, fit_intercept, macro_block
34
34
  X = np.array([[1], [2]])
35
35
  X = X.astype(dtype=dtype)
36
36
  X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
37
- y = np.array([1, 2])
37
+ y = np.array([[1], [2]])
38
38
  y = y.astype(dtype=dtype)
39
39
  y_df = _convert_to_dataframe(y, sycl_queue=queue, target_df=dataframe)
40
40
 
@@ -46,12 +46,13 @@ def test_sklearnex_fit_on_gold_data(dataframe, queue, fit_intercept, macro_block
46
46
  inclin.fit(X_df, y_df)
47
47
 
48
48
  y_pred = inclin.predict(X_df)
49
+ np_y_pred = _as_numpy(y_pred)
49
50
 
50
- tol = 2e-6 if y_pred.dtype == np.float32 else 1e-7
51
+ tol = 2e-6 if dtype == np.float32 else 1e-7
51
52
  assert_allclose(inclin.coef_, [1], atol=tol)
52
53
  if fit_intercept:
53
54
  assert_allclose(inclin.intercept_, [0], atol=tol)
54
- assert_allclose(_as_numpy(y_pred), y, atol=tol)
55
+ assert_allclose(np_y_pred, y, atol=tol)
55
56
 
56
57
 
57
58
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
@@ -84,14 +85,15 @@ def test_sklearnex_partial_fit_on_gold_data(
84
85
 
85
86
  X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
86
87
  y_pred = inclin.predict(X_df)
88
+ np_y_pred = _as_numpy(y_pred)
87
89
 
88
90
  assert inclin.n_features_in_ == 1
89
- tol = 2e-6 if y_pred.dtype == np.float32 else 1e-7
91
+ tol = 1e-5 if dtype == np.float32 else 1e-7
90
92
  assert_allclose(inclin.coef_, [[1]], atol=tol)
91
93
  if fit_intercept:
92
94
  assert_allclose(inclin.intercept_, 3, atol=tol)
93
95
 
94
- assert_allclose(_as_numpy(y_pred), y, atol=tol)
96
+ assert_allclose(np_y_pred, y, atol=tol)
95
97
 
96
98
 
97
99
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
@@ -124,14 +126,15 @@ def test_sklearnex_partial_fit_multitarget_on_gold_data(
124
126
 
125
127
  X_df = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
126
128
  y_pred = inclin.predict(X_df)
129
+ np_y_pred = _as_numpy(y_pred)
127
130
 
128
131
  assert inclin.n_features_in_ == 2
129
- tol = 7e-6 if y_pred.dtype == np.float32 else 1e-7
132
+ tol = 7e-6 if dtype == np.float32 else 1e-7
130
133
  assert_allclose(inclin.coef_, [1.0, 2.0], atol=tol)
131
134
  if fit_intercept:
132
135
  assert_allclose(inclin.intercept_, 3.0, atol=tol)
133
136
 
134
- assert_allclose(_as_numpy(y_pred), y, atol=tol)
137
+ assert_allclose(np_y_pred, y, atol=tol)
135
138
 
136
139
 
137
140
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
@@ -182,16 +185,16 @@ def test_sklearnex_partial_fit_on_random_data(
182
185
  inclin.partial_fit(X_split_df, y_split_df)
183
186
 
184
187
  tol = 1e-4 if inclin.coef_.dtype == np.float32 else 1e-7
185
- assert_allclose(coef, inclin.coef_.T, atol=tol)
188
+ assert_allclose(coef.T.squeeze(), inclin.coef_, atol=tol)
186
189
 
187
190
  if fit_intercept:
188
191
  assert_allclose(intercept, inclin.intercept_, atol=tol)
189
192
 
190
193
  X_test = gen.random(size=(num_samples, num_features), dtype=dtype)
191
194
  if fit_intercept:
192
- expected_y_pred = X_test @ coef + intercept[np.newaxis, :]
195
+ expected_y_pred = (X_test @ coef + intercept[np.newaxis, :]).squeeze()
193
196
  else:
194
- expected_y_pred = X_test @ coef
197
+ expected_y_pred = (X_test @ coef).squeeze()
195
198
 
196
199
  X_test_df = _convert_to_dataframe(X_test, sycl_queue=queue, target_df=dataframe)
197
200
 
@@ -0,0 +1,153 @@
1
+ # ===============================================================================
2
+ # Copyright 2024 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ===============================================================================
16
+
17
+ from daal4py.sklearn._utils import daal_check_version
18
+
19
+ if daal_check_version((2024, "P", 600)):
20
+ import numpy as np
21
+ import pytest
22
+ from numpy.testing import assert_allclose
23
+ from sklearn.exceptions import NotFittedError
24
+
25
+ from onedal.tests.utils._dataframes_support import (
26
+ _as_numpy,
27
+ _convert_to_dataframe,
28
+ get_dataframes_and_queues,
29
+ )
30
+ from sklearnex.linear_model import IncrementalRidge
31
+
32
+ def _compute_ridge_coefficients(X, y, alpha, fit_intercept):
33
+ coefficients_manual, intercept_manual = None, None
34
+ if fit_intercept:
35
+ X_mean = np.mean(X, axis=0)
36
+ y_mean = np.mean(y)
37
+ X_centered = X - X_mean
38
+ y_centered = y - y_mean
39
+
40
+ X_with_intercept = np.hstack([np.ones((X.shape[0], 1)), X_centered])
41
+ lambda_identity = alpha * np.eye(X_with_intercept.shape[1])
42
+ inverse_term = np.linalg.inv(
43
+ np.dot(X_with_intercept.T, X_with_intercept) + lambda_identity
44
+ )
45
+ xt_y = np.dot(X_with_intercept.T, y_centered)
46
+ coefficients_manual = np.dot(inverse_term, xt_y)
47
+
48
+ intercept_manual = y_mean - np.dot(X_mean, coefficients_manual[1:])
49
+ coefficients_manual = coefficients_manual[1:]
50
+ else:
51
+ lambda_identity = alpha * np.eye(X.shape[1])
52
+ inverse_term = np.linalg.inv(np.dot(X.T, X) + lambda_identity)
53
+ xt_y = np.dot(X.T, y)
54
+ coefficients_manual = np.dot(inverse_term, xt_y)
55
+
56
+ return coefficients_manual, intercept_manual
57
+
58
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
59
+ @pytest.mark.parametrize("batch_size", [10, 100, 1000])
60
+ @pytest.mark.parametrize("alpha", [0.1, 0.5, 1.0])
61
+ @pytest.mark.parametrize("fit_intercept", [True, False])
62
+ def test_inc_ridge_fit_coefficients(
63
+ dataframe, queue, alpha, batch_size, fit_intercept
64
+ ):
65
+ sample_size, feature_size = 1000, 50
66
+ X = np.random.rand(sample_size, feature_size)
67
+ y = np.random.rand(sample_size)
68
+ X_c = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
69
+ y_c = _convert_to_dataframe(y, sycl_queue=queue, target_df=dataframe)
70
+
71
+ inc_ridge = IncrementalRidge(
72
+ fit_intercept=fit_intercept, alpha=alpha, batch_size=batch_size
73
+ )
74
+ inc_ridge.fit(X_c, y_c)
75
+
76
+ coefficients_manual, intercept_manual = _compute_ridge_coefficients(
77
+ X, y, alpha, fit_intercept
78
+ )
79
+ if fit_intercept:
80
+ assert_allclose(inc_ridge.intercept_, intercept_manual, rtol=1e-6, atol=1e-6)
81
+
82
+ assert_allclose(inc_ridge.coef_, coefficients_manual, rtol=1e-6, atol=1e-6)
83
+
84
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
85
+ @pytest.mark.parametrize("batch_size", [2, 5])
86
+ @pytest.mark.parametrize("alpha", [0.1, 0.5, 1.0])
87
+ def test_inc_ridge_partial_fit_coefficients(dataframe, queue, alpha, batch_size):
88
+ sample_size, feature_size = 1000, 50
89
+ X = np.random.rand(sample_size, feature_size)
90
+ y = np.random.rand(sample_size)
91
+ X_split = np.array_split(X, batch_size)
92
+ y_split = np.array_split(y, batch_size)
93
+
94
+ inc_ridge = IncrementalRidge(fit_intercept=False, alpha=alpha)
95
+
96
+ for batch_index in range(len(X_split)):
97
+ X_c = _convert_to_dataframe(
98
+ X_split[batch_index], sycl_queue=queue, target_df=dataframe
99
+ )
100
+ y_c = _convert_to_dataframe(
101
+ y_split[batch_index], sycl_queue=queue, target_df=dataframe
102
+ )
103
+ inc_ridge.partial_fit(X_c, y_c)
104
+
105
+ lambda_identity = alpha * np.eye(X.shape[1])
106
+ inverse_term = np.linalg.inv(np.dot(X.T, X) + lambda_identity)
107
+ xt_y = np.dot(X.T, y)
108
+ coefficients_manual = np.dot(inverse_term, xt_y)
109
+
110
+ assert_allclose(inc_ridge.coef_, coefficients_manual, rtol=1e-6, atol=1e-6)
111
+
112
+ def test_inc_ridge_score_before_fit():
113
+ X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
114
+ y = np.dot(X, np.array([1, 2])) + 3
115
+ inc_ridge = IncrementalRidge(alpha=0.5)
116
+ with pytest.raises(NotFittedError):
117
+ inc_ridge.score(X, y)
118
+
119
+ def test_inc_ridge_predict_before_fit():
120
+ X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
121
+ inc_ridge = IncrementalRidge(alpha=0.5)
122
+ with pytest.raises(NotFittedError):
123
+ inc_ridge.predict(X)
124
+
125
+ def test_inc_ridge_score_after_fit():
126
+ X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
127
+ y = np.dot(X, np.array([1, 2])) + 3
128
+ inc_ridge = IncrementalRidge(alpha=0.5)
129
+ inc_ridge.fit(X, y)
130
+ assert inc_ridge.score(X, y) >= 0.97
131
+
132
+ @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
133
+ @pytest.mark.parametrize("fit_intercept", [True, False])
134
+ def test_inc_ridge_predict_after_fit(dataframe, queue, fit_intercept):
135
+ sample_size, feature_size = 1000, 50
136
+ X = np.random.rand(sample_size, feature_size)
137
+ y = np.random.rand(sample_size)
138
+ X_c = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
139
+ y_c = _convert_to_dataframe(y, sycl_queue=queue, target_df=dataframe)
140
+
141
+ inc_ridge = IncrementalRidge(fit_intercept=fit_intercept, alpha=0.5)
142
+ inc_ridge.fit(X_c, y_c)
143
+
144
+ y_pred = inc_ridge.predict(X_c)
145
+
146
+ coefficients_manual, intercept_manual = _compute_ridge_coefficients(
147
+ X, y, 0.5, fit_intercept
148
+ )
149
+ y_pred_manual = np.dot(X, coefficients_manual)
150
+ if fit_intercept:
151
+ y_pred_manual += intercept_manual
152
+
153
+ assert_allclose(_as_numpy(y_pred), y_pred_manual, rtol=1e-6, atol=1e-6)
@@ -127,7 +127,8 @@ if daal_check_version((2024, "P", 700)):
127
127
  pred_sp = model_sp.predict(X_sp)
128
128
  prob_sp = model_sp.predict_proba(X_sp)
129
129
 
130
- assert_allclose(pred, pred_sp)
131
- assert_allclose(prob, prob_sp)
132
- assert_allclose(model.coef_, model_sp.coef_, rtol=1e-4)
133
- assert_allclose(model.intercept_, model_sp.intercept_, rtol=1e-4)
130
+ rtol = 2e-4
131
+ assert_allclose(pred, pred_sp, rtol=rtol)
132
+ assert_allclose(prob, prob_sp, rtol=rtol)
133
+ assert_allclose(model.coef_, model_sp.coef_, rtol=rtol)
134
+ assert_allclose(model.intercept_, model_sp.intercept_, rtol=rtol)
@@ -15,7 +15,7 @@
15
15
  # ===============================================================================
16
16
 
17
17
  from daal4py.sklearn.manifold import TSNE
18
- from onedal._device_offload import support_usm_ndarray
18
+ from onedal._device_offload import support_input_format
19
19
 
20
- TSNE.fit = support_usm_ndarray(queue_param=False)(TSNE.fit)
21
- TSNE.fit_transform = support_usm_ndarray(queue_param=False)(TSNE.fit_transform)
20
+ TSNE.fit = support_input_format(queue_param=False)(TSNE.fit)
21
+ TSNE.fit_transform = support_input_format(queue_param=False)(TSNE.fit_transform)