scikit-learn-intelex 2025.1.0__py312-none-manylinux_2_28_x86_64.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 (280) hide show
  1. daal4py/__init__.py +73 -0
  2. daal4py/__main__.py +58 -0
  3. daal4py/_daal4py.cpython-312-x86_64-linux-gnu.so +0 -0
  4. daal4py/doc/third-party-programs.txt +424 -0
  5. daal4py/mb/__init__.py +19 -0
  6. daal4py/mb/model_builders.py +377 -0
  7. daal4py/mpi_transceiver.cpython-312-x86_64-linux-gnu.so +0 -0
  8. daal4py/sklearn/__init__.py +40 -0
  9. daal4py/sklearn/_n_jobs_support.py +248 -0
  10. daal4py/sklearn/_utils.py +245 -0
  11. daal4py/sklearn/cluster/__init__.py +20 -0
  12. daal4py/sklearn/cluster/dbscan.py +165 -0
  13. daal4py/sklearn/cluster/k_means.py +597 -0
  14. daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
  15. daal4py/sklearn/decomposition/__init__.py +19 -0
  16. daal4py/sklearn/decomposition/_pca.py +524 -0
  17. daal4py/sklearn/ensemble/AdaBoostClassifier.py +196 -0
  18. daal4py/sklearn/ensemble/GBTDAAL.py +337 -0
  19. daal4py/sklearn/ensemble/__init__.py +27 -0
  20. daal4py/sklearn/ensemble/_forest.py +1397 -0
  21. daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
  22. daal4py/sklearn/linear_model/__init__.py +29 -0
  23. daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
  24. daal4py/sklearn/linear_model/_linear.py +272 -0
  25. daal4py/sklearn/linear_model/_ridge.py +325 -0
  26. daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
  27. daal4py/sklearn/linear_model/linear.py +17 -0
  28. daal4py/sklearn/linear_model/logistic_loss.py +195 -0
  29. daal4py/sklearn/linear_model/logistic_path.py +1026 -0
  30. daal4py/sklearn/linear_model/ridge.py +17 -0
  31. daal4py/sklearn/linear_model/tests/test_linear.py +208 -0
  32. daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
  33. daal4py/sklearn/manifold/__init__.py +19 -0
  34. daal4py/sklearn/manifold/_t_sne.py +405 -0
  35. daal4py/sklearn/metrics/__init__.py +20 -0
  36. daal4py/sklearn/metrics/_pairwise.py +236 -0
  37. daal4py/sklearn/metrics/_ranking.py +210 -0
  38. daal4py/sklearn/model_selection/__init__.py +19 -0
  39. daal4py/sklearn/model_selection/_split.py +309 -0
  40. daal4py/sklearn/model_selection/tests/test_split.py +56 -0
  41. daal4py/sklearn/monkeypatch/__init__.py +0 -0
  42. daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
  43. daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
  44. daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
  45. daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
  46. daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
  47. daal4py/sklearn/neighbors/__init__.py +21 -0
  48. daal4py/sklearn/neighbors/_base.py +503 -0
  49. daal4py/sklearn/neighbors/_classification.py +139 -0
  50. daal4py/sklearn/neighbors/_regression.py +74 -0
  51. daal4py/sklearn/neighbors/_unsupervised.py +55 -0
  52. daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
  53. daal4py/sklearn/svm/__init__.py +19 -0
  54. daal4py/sklearn/svm/svm.py +734 -0
  55. daal4py/sklearn/utils/__init__.py +21 -0
  56. daal4py/sklearn/utils/base.py +75 -0
  57. daal4py/sklearn/utils/tests/test_utils.py +51 -0
  58. daal4py/sklearn/utils/validation.py +693 -0
  59. onedal/__init__.py +83 -0
  60. onedal/_config.py +54 -0
  61. onedal/_device_offload.py +222 -0
  62. onedal/_onedal_py_dpc.cpython-312-x86_64-linux-gnu.so +0 -0
  63. onedal/_onedal_py_host.cpython-312-x86_64-linux-gnu.so +0 -0
  64. onedal/_onedal_py_spmd_dpc.cpython-312-x86_64-linux-gnu.so +0 -0
  65. onedal/basic_statistics/__init__.py +20 -0
  66. onedal/basic_statistics/basic_statistics.py +107 -0
  67. onedal/basic_statistics/incremental_basic_statistics.py +160 -0
  68. onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
  69. onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
  70. onedal/cluster/__init__.py +27 -0
  71. onedal/cluster/dbscan.py +110 -0
  72. onedal/cluster/kmeans.py +564 -0
  73. onedal/cluster/kmeans_init.py +115 -0
  74. onedal/cluster/tests/test_dbscan.py +125 -0
  75. onedal/cluster/tests/test_kmeans.py +88 -0
  76. onedal/cluster/tests/test_kmeans_init.py +93 -0
  77. onedal/common/_base.py +38 -0
  78. onedal/common/_estimator_checks.py +47 -0
  79. onedal/common/_mixin.py +62 -0
  80. onedal/common/_policy.py +59 -0
  81. onedal/common/_spmd_policy.py +30 -0
  82. onedal/common/hyperparameters.py +125 -0
  83. onedal/common/tests/test_policy.py +76 -0
  84. onedal/covariance/__init__.py +20 -0
  85. onedal/covariance/covariance.py +125 -0
  86. onedal/covariance/incremental_covariance.py +146 -0
  87. onedal/covariance/tests/test_covariance.py +50 -0
  88. onedal/covariance/tests/test_incremental_covariance.py +122 -0
  89. onedal/datatypes/__init__.py +19 -0
  90. onedal/datatypes/_data_conversion.py +154 -0
  91. onedal/datatypes/tests/common.py +126 -0
  92. onedal/datatypes/tests/test_data.py +414 -0
  93. onedal/decomposition/__init__.py +20 -0
  94. onedal/decomposition/incremental_pca.py +204 -0
  95. onedal/decomposition/pca.py +186 -0
  96. onedal/decomposition/tests/test_incremental_pca.py +198 -0
  97. onedal/ensemble/__init__.py +29 -0
  98. onedal/ensemble/forest.py +727 -0
  99. onedal/ensemble/tests/test_random_forest.py +97 -0
  100. onedal/linear_model/__init__.py +27 -0
  101. onedal/linear_model/incremental_linear_model.py +258 -0
  102. onedal/linear_model/linear_model.py +329 -0
  103. onedal/linear_model/logistic_regression.py +249 -0
  104. onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
  105. onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
  106. onedal/linear_model/tests/test_linear_regression.py +250 -0
  107. onedal/linear_model/tests/test_logistic_regression.py +95 -0
  108. onedal/linear_model/tests/test_ridge.py +95 -0
  109. onedal/neighbors/__init__.py +19 -0
  110. onedal/neighbors/neighbors.py +767 -0
  111. onedal/neighbors/tests/test_knn_classification.py +49 -0
  112. onedal/primitives/__init__.py +27 -0
  113. onedal/primitives/get_tree.py +25 -0
  114. onedal/primitives/kernel_functions.py +153 -0
  115. onedal/primitives/tests/test_kernel_functions.py +159 -0
  116. onedal/spmd/__init__.py +25 -0
  117. onedal/spmd/_base.py +30 -0
  118. onedal/spmd/basic_statistics/__init__.py +20 -0
  119. onedal/spmd/basic_statistics/basic_statistics.py +30 -0
  120. onedal/spmd/basic_statistics/incremental_basic_statistics.py +69 -0
  121. onedal/spmd/cluster/__init__.py +28 -0
  122. onedal/spmd/cluster/dbscan.py +23 -0
  123. onedal/spmd/cluster/kmeans.py +56 -0
  124. onedal/spmd/covariance/__init__.py +20 -0
  125. onedal/spmd/covariance/covariance.py +26 -0
  126. onedal/spmd/covariance/incremental_covariance.py +82 -0
  127. onedal/spmd/decomposition/__init__.py +20 -0
  128. onedal/spmd/decomposition/incremental_pca.py +117 -0
  129. onedal/spmd/decomposition/pca.py +26 -0
  130. onedal/spmd/ensemble/__init__.py +19 -0
  131. onedal/spmd/ensemble/forest.py +28 -0
  132. onedal/spmd/linear_model/__init__.py +21 -0
  133. onedal/spmd/linear_model/incremental_linear_model.py +97 -0
  134. onedal/spmd/linear_model/linear_model.py +30 -0
  135. onedal/spmd/linear_model/logistic_regression.py +38 -0
  136. onedal/spmd/neighbors/__init__.py +19 -0
  137. onedal/spmd/neighbors/neighbors.py +75 -0
  138. onedal/svm/__init__.py +19 -0
  139. onedal/svm/svm.py +556 -0
  140. onedal/svm/tests/test_csr_svm.py +351 -0
  141. onedal/svm/tests/test_nusvc.py +204 -0
  142. onedal/svm/tests/test_nusvr.py +210 -0
  143. onedal/svm/tests/test_svc.py +176 -0
  144. onedal/svm/tests/test_svr.py +243 -0
  145. onedal/tests/test_common.py +57 -0
  146. onedal/tests/utils/_dataframes_support.py +162 -0
  147. onedal/tests/utils/_device_selection.py +102 -0
  148. onedal/utils/__init__.py +49 -0
  149. onedal/utils/_array_api.py +81 -0
  150. onedal/utils/_dpep_helpers.py +56 -0
  151. onedal/utils/validation.py +440 -0
  152. scikit_learn_intelex-2025.1.0.dist-info/LICENSE.txt +202 -0
  153. scikit_learn_intelex-2025.1.0.dist-info/METADATA +231 -0
  154. scikit_learn_intelex-2025.1.0.dist-info/RECORD +280 -0
  155. scikit_learn_intelex-2025.1.0.dist-info/WHEEL +5 -0
  156. scikit_learn_intelex-2025.1.0.dist-info/top_level.txt +3 -0
  157. sklearnex/__init__.py +66 -0
  158. sklearnex/__main__.py +58 -0
  159. sklearnex/_config.py +116 -0
  160. sklearnex/_device_offload.py +126 -0
  161. sklearnex/_utils.py +132 -0
  162. sklearnex/basic_statistics/__init__.py +20 -0
  163. sklearnex/basic_statistics/basic_statistics.py +230 -0
  164. sklearnex/basic_statistics/incremental_basic_statistics.py +345 -0
  165. sklearnex/basic_statistics/tests/test_basic_statistics.py +270 -0
  166. sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +404 -0
  167. sklearnex/cluster/__init__.py +20 -0
  168. sklearnex/cluster/dbscan.py +197 -0
  169. sklearnex/cluster/k_means.py +395 -0
  170. sklearnex/cluster/tests/test_dbscan.py +38 -0
  171. sklearnex/cluster/tests/test_kmeans.py +159 -0
  172. sklearnex/conftest.py +82 -0
  173. sklearnex/covariance/__init__.py +19 -0
  174. sklearnex/covariance/incremental_covariance.py +398 -0
  175. sklearnex/covariance/tests/test_incremental_covariance.py +237 -0
  176. sklearnex/decomposition/__init__.py +19 -0
  177. sklearnex/decomposition/pca.py +425 -0
  178. sklearnex/decomposition/tests/test_pca.py +58 -0
  179. sklearnex/dispatcher.py +543 -0
  180. sklearnex/doc/third-party-programs.txt +424 -0
  181. sklearnex/ensemble/__init__.py +29 -0
  182. sklearnex/ensemble/_forest.py +2029 -0
  183. sklearnex/ensemble/tests/test_forest.py +135 -0
  184. sklearnex/glob/__main__.py +72 -0
  185. sklearnex/glob/dispatcher.py +101 -0
  186. sklearnex/linear_model/__init__.py +32 -0
  187. sklearnex/linear_model/coordinate_descent.py +30 -0
  188. sklearnex/linear_model/incremental_linear.py +482 -0
  189. sklearnex/linear_model/incremental_ridge.py +425 -0
  190. sklearnex/linear_model/linear.py +341 -0
  191. sklearnex/linear_model/logistic_regression.py +413 -0
  192. sklearnex/linear_model/ridge.py +24 -0
  193. sklearnex/linear_model/tests/test_incremental_linear.py +207 -0
  194. sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
  195. sklearnex/linear_model/tests/test_linear.py +167 -0
  196. sklearnex/linear_model/tests/test_logreg.py +134 -0
  197. sklearnex/manifold/__init__.py +19 -0
  198. sklearnex/manifold/t_sne.py +21 -0
  199. sklearnex/manifold/tests/test_tsne.py +26 -0
  200. sklearnex/metrics/__init__.py +23 -0
  201. sklearnex/metrics/pairwise.py +22 -0
  202. sklearnex/metrics/ranking.py +20 -0
  203. sklearnex/metrics/tests/test_metrics.py +39 -0
  204. sklearnex/model_selection/__init__.py +21 -0
  205. sklearnex/model_selection/split.py +22 -0
  206. sklearnex/model_selection/tests/test_model_selection.py +34 -0
  207. sklearnex/neighbors/__init__.py +27 -0
  208. sklearnex/neighbors/_lof.py +236 -0
  209. sklearnex/neighbors/common.py +310 -0
  210. sklearnex/neighbors/knn_classification.py +231 -0
  211. sklearnex/neighbors/knn_regression.py +207 -0
  212. sklearnex/neighbors/knn_unsupervised.py +178 -0
  213. sklearnex/neighbors/tests/test_neighbors.py +82 -0
  214. sklearnex/preview/__init__.py +17 -0
  215. sklearnex/preview/covariance/__init__.py +19 -0
  216. sklearnex/preview/covariance/covariance.py +138 -0
  217. sklearnex/preview/covariance/tests/test_covariance.py +66 -0
  218. sklearnex/preview/decomposition/__init__.py +19 -0
  219. sklearnex/preview/decomposition/incremental_pca.py +233 -0
  220. sklearnex/preview/decomposition/tests/test_incremental_pca.py +266 -0
  221. sklearnex/preview/linear_model/__init__.py +19 -0
  222. sklearnex/preview/linear_model/ridge.py +424 -0
  223. sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
  224. sklearnex/spmd/__init__.py +25 -0
  225. sklearnex/spmd/basic_statistics/__init__.py +20 -0
  226. sklearnex/spmd/basic_statistics/basic_statistics.py +21 -0
  227. sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
  228. sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
  229. sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
  230. sklearnex/spmd/cluster/__init__.py +30 -0
  231. sklearnex/spmd/cluster/dbscan.py +50 -0
  232. sklearnex/spmd/cluster/kmeans.py +21 -0
  233. sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
  234. sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
  235. sklearnex/spmd/covariance/__init__.py +20 -0
  236. sklearnex/spmd/covariance/covariance.py +21 -0
  237. sklearnex/spmd/covariance/incremental_covariance.py +37 -0
  238. sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
  239. sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
  240. sklearnex/spmd/decomposition/__init__.py +20 -0
  241. sklearnex/spmd/decomposition/incremental_pca.py +30 -0
  242. sklearnex/spmd/decomposition/pca.py +21 -0
  243. sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
  244. sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
  245. sklearnex/spmd/ensemble/__init__.py +19 -0
  246. sklearnex/spmd/ensemble/forest.py +71 -0
  247. sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
  248. sklearnex/spmd/linear_model/__init__.py +21 -0
  249. sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
  250. sklearnex/spmd/linear_model/linear_model.py +21 -0
  251. sklearnex/spmd/linear_model/logistic_regression.py +21 -0
  252. sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
  253. sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
  254. sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
  255. sklearnex/spmd/neighbors/__init__.py +19 -0
  256. sklearnex/spmd/neighbors/neighbors.py +25 -0
  257. sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
  258. sklearnex/svm/__init__.py +29 -0
  259. sklearnex/svm/_common.py +339 -0
  260. sklearnex/svm/nusvc.py +371 -0
  261. sklearnex/svm/nusvr.py +170 -0
  262. sklearnex/svm/svc.py +399 -0
  263. sklearnex/svm/svr.py +167 -0
  264. sklearnex/svm/tests/test_svm.py +93 -0
  265. sklearnex/tests/test_common.py +390 -0
  266. sklearnex/tests/test_config.py +123 -0
  267. sklearnex/tests/test_memory_usage.py +379 -0
  268. sklearnex/tests/test_monkeypatch.py +276 -0
  269. sklearnex/tests/test_n_jobs_support.py +108 -0
  270. sklearnex/tests/test_parallel.py +48 -0
  271. sklearnex/tests/test_patching.py +385 -0
  272. sklearnex/tests/test_run_to_run_stability.py +321 -0
  273. sklearnex/tests/utils/__init__.py +44 -0
  274. sklearnex/tests/utils/base.py +371 -0
  275. sklearnex/tests/utils/spmd.py +198 -0
  276. sklearnex/utils/__init__.py +19 -0
  277. sklearnex/utils/_array_api.py +82 -0
  278. sklearnex/utils/parallel.py +59 -0
  279. sklearnex/utils/tests/test_finite.py +89 -0
  280. sklearnex/utils/validation.py +17 -0
@@ -0,0 +1,17 @@
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
+ from ._ridge import *
@@ -0,0 +1,208 @@
1
+ # ==============================================================================
2
+ # Copyright 2020 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
+
18
+ from os import environ
19
+
20
+ from daal4py.sklearn._utils import sklearn_check_version
21
+
22
+ # sklearn requires manual enabling of Scipy array API support
23
+ # if `array-api-compat` package is present in environment
24
+ # TODO: create generic approach to handle this for all tests
25
+ if sklearn_check_version("1.6"):
26
+ environ["SCIPY_ARRAY_API"] = "1"
27
+
28
+
29
+ import numpy as np
30
+ import pytest
31
+ from sklearn.datasets import make_regression
32
+ from sklearn.linear_model import LinearRegression
33
+ from sklearn.utils._testing import assert_array_almost_equal
34
+
35
+
36
+ def make_dataset(n_samples, n_features, kind=np.array, random_state=0, types=None):
37
+ try:
38
+ from pandas import DataFrame
39
+
40
+ if kind not in (list, np.array, DataFrame):
41
+ kind = np.array
42
+ except ImportError:
43
+ if kind not in (list, np.array):
44
+ kind = np.array
45
+
46
+ x, y = make_regression(n_samples, n_features, random_state=random_state)
47
+
48
+ if kind == list:
49
+ x = list(x)
50
+ for i, row in enumerate(x):
51
+ x[i] = list(row)
52
+ y = list(y)
53
+
54
+ if types:
55
+ n_types = len(types)
56
+ for i, row in enumerate(x):
57
+ for j, cell in enumerate(row):
58
+ x[i][j] = types[j % n_types](cell)
59
+
60
+ try:
61
+ from pandas import DataFrame
62
+
63
+ if kind == DataFrame:
64
+ x = DataFrame(data=x, index=None, columns=None)
65
+ y = DataFrame(y)
66
+
67
+ if types:
68
+ n_types = len(types)
69
+ dir_dtypes = {col: types[i % n_types] for i, col in enumerate(x.columns)}
70
+ x = x.astype(dir_dtypes)
71
+ except ImportError:
72
+ pass
73
+
74
+ return x, y
75
+
76
+
77
+ def test_linear_array_vs_dataframe_homogen():
78
+ pd = pytest.importorskip("pandas")
79
+
80
+ x_train, y_train = make_dataset(100, 20)
81
+ x_test, _ = make_dataset(100, 20, random_state=1)
82
+
83
+ df_x_train, df_y_train = make_dataset(100, 20, pd.DataFrame)
84
+ df_x_test, _ = make_dataset(100, 20, pd.DataFrame, random_state=1)
85
+
86
+ array_reg = LinearRegression()
87
+ array_reg.fit(x_train, y_train)
88
+
89
+ df_reg = LinearRegression()
90
+ df_reg.fit(df_x_train, df_y_train)
91
+
92
+ assert_array_almost_equal(
93
+ array_reg.coef_.reshape((-1, 1)), df_reg.coef_.reshape((-1, 1))
94
+ )
95
+ assert_array_almost_equal(array_reg.intercept_, df_reg.intercept_)
96
+ assert_array_almost_equal(
97
+ array_reg.predict(x_test).reshape((-1, 1)),
98
+ df_reg.predict(df_x_test).reshape((-1, 1)),
99
+ )
100
+
101
+
102
+ def test_linear_array_vs_dataframe_heterogen():
103
+ pd = pytest.importorskip("pandas")
104
+
105
+ types = (np.float64, np.float32)
106
+
107
+ x_train, y_train = make_dataset(100, 20)
108
+ x_test, _ = make_dataset(100, 20, random_state=1)
109
+
110
+ df_x_train, df_y_train = make_dataset(100, 20, pd.DataFrame, types=types)
111
+ df_x_test, _ = make_dataset(100, 20, pd.DataFrame, random_state=1, types=types)
112
+
113
+ array_reg = LinearRegression()
114
+ array_reg.fit(x_train, y_train)
115
+
116
+ df_reg = LinearRegression()
117
+ df_reg.fit(df_x_train, df_y_train)
118
+
119
+ assert_array_almost_equal(
120
+ array_reg.coef_.reshape((-1, 1)), df_reg.coef_.reshape((-1, 1))
121
+ )
122
+ assert_array_almost_equal(array_reg.intercept_, df_reg.intercept_)
123
+ assert_array_almost_equal(
124
+ array_reg.predict(x_test).reshape((-1, 1)),
125
+ df_reg.predict(df_x_test).reshape((-1, 1)),
126
+ decimal=5,
127
+ )
128
+
129
+
130
+ def test_linear_array_vs_dataframe_heterogen_double_float():
131
+ pd = pytest.importorskip("pandas")
132
+
133
+ types = (np.float64, np.float32)
134
+
135
+ x_train, y_train = make_dataset(100, 20, list, types=types)
136
+ x_test, _ = make_dataset(100, 20, list, random_state=1, types=types)
137
+
138
+ df_x_train, df_y_train = make_dataset(100, 20, pd.DataFrame, types=types)
139
+ df_x_test, _ = make_dataset(100, 20, pd.DataFrame, random_state=1, types=types)
140
+
141
+ array_reg = LinearRegression()
142
+ array_reg.fit(x_train, y_train)
143
+
144
+ df_reg = LinearRegression()
145
+ df_reg.fit(df_x_train, df_y_train)
146
+
147
+ assert_array_almost_equal(
148
+ array_reg.coef_.reshape((-1, 1)), df_reg.coef_.reshape((-1, 1))
149
+ )
150
+ assert_array_almost_equal(array_reg.intercept_, df_reg.intercept_)
151
+ assert_array_almost_equal(
152
+ array_reg.predict(x_test).reshape((-1, 1)),
153
+ df_reg.predict(df_x_test).reshape((-1, 1)),
154
+ )
155
+
156
+
157
+ def test_linear_array_vs_dataframe_heterogen_double_int():
158
+ pd = pytest.importorskip("pandas")
159
+
160
+ types = (np.float64, np.int32)
161
+
162
+ x_train, y_train = make_dataset(100, 20, list, types=types)
163
+ x_test, _ = make_dataset(100, 20, list, random_state=1, types=types)
164
+
165
+ df_x_train, df_y_train = make_dataset(100, 20, pd.DataFrame, types=types)
166
+ df_x_test, _ = make_dataset(100, 20, pd.DataFrame, random_state=1, types=types)
167
+
168
+ array_reg = LinearRegression()
169
+ array_reg.fit(x_train, y_train)
170
+
171
+ df_reg = LinearRegression()
172
+ df_reg.fit(df_x_train, df_y_train)
173
+
174
+ assert_array_almost_equal(
175
+ array_reg.coef_.reshape((-1, 1)), df_reg.coef_.reshape((-1, 1))
176
+ )
177
+ assert_array_almost_equal(array_reg.intercept_, df_reg.intercept_)
178
+ assert_array_almost_equal(
179
+ array_reg.predict(x_test).reshape((-1, 1)),
180
+ df_reg.predict(df_x_test).reshape((-1, 1)),
181
+ )
182
+
183
+
184
+ def test_linear_array_vs_dataframe_heterogen_float_int():
185
+ pd = pytest.importorskip("pandas")
186
+
187
+ types = (np.float32, np.int32)
188
+
189
+ x_train, y_train = make_dataset(100, 20, list, types=types)
190
+ x_test, _ = make_dataset(100, 20, list, random_state=1, types=types)
191
+
192
+ df_x_train, df_y_train = make_dataset(100, 20, pd.DataFrame, types=types)
193
+ df_x_test, _ = make_dataset(100, 20, pd.DataFrame, random_state=1, types=types)
194
+
195
+ array_reg = LinearRegression()
196
+ array_reg.fit(x_train, y_train)
197
+
198
+ df_reg = LinearRegression()
199
+ df_reg.fit(df_x_train, df_y_train)
200
+
201
+ assert_array_almost_equal(
202
+ array_reg.coef_.reshape((-1, 1)), df_reg.coef_.reshape((-1, 1))
203
+ )
204
+ assert_array_almost_equal(array_reg.intercept_, df_reg.intercept_)
205
+ assert_array_almost_equal(
206
+ array_reg.predict(x_test).reshape((-1, 1)),
207
+ df_reg.predict(df_x_test).reshape((-1, 1)),
208
+ )
@@ -0,0 +1,69 @@
1
+ # ==============================================================================
2
+ # Copyright 2024 Intel Corporation
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ # ==============================================================================
16
+
17
+ import numpy
18
+ import pytest
19
+ from sklearn.datasets import make_regression
20
+
21
+
22
+ def _test_multivariate_ridge_coefficients(ridge_class, random_state):
23
+ X, y = make_regression(
24
+ n_samples=10, n_features=5, n_targets=3, random_state=random_state
25
+ )
26
+ alpha = 3 + numpy.random.rand(3) * 5
27
+
28
+ # computing coefficients using daal4py Ridge
29
+ model = ridge_class(fit_intercept=False, alpha=alpha)
30
+ model.fit(X, y)
31
+
32
+ # computing coefficients manually
33
+ n_features, n_targets = X.shape[1], y.shape[1]
34
+ betas = numpy.zeros((n_targets, n_features))
35
+
36
+ identity_matrix = numpy.eye(n_features)
37
+
38
+ for j in range(n_targets):
39
+ y_j = y[:, j]
40
+ inverse_term = numpy.linalg.inv(numpy.dot(X.T, X) + alpha[j] * identity_matrix)
41
+ beta_j = numpy.dot(inverse_term, numpy.dot(X.T, y_j))
42
+ betas[j, :] = beta_j
43
+
44
+ # asserting that the coefficients are close
45
+ numpy.testing.assert_allclose(model.coef_, betas, rtol=1e-3, atol=1e-3)
46
+
47
+
48
+ def _test_multivariate_ridge_alpha_shape(ridge_class, random_state):
49
+ X, y = make_regression(
50
+ n_samples=10, n_features=5, n_targets=3, random_state=random_state
51
+ )
52
+ wrong_shape_alpha = numpy.random.rand(5)
53
+ # asserting exception if alpha has wrong shape
54
+ with pytest.raises(ValueError):
55
+ ridge_class(alpha=wrong_shape_alpha).fit(X, y)
56
+
57
+
58
+ def test_multivariate_ridge_coefficients():
59
+ from daal4py.sklearn.linear_model._ridge import Ridge
60
+
61
+ random_state = 0
62
+ _test_multivariate_ridge_coefficients(Ridge, random_state)
63
+
64
+
65
+ def test_multivariate_ridge_alpha_shape():
66
+ from daal4py.sklearn.linear_model._ridge import Ridge
67
+
68
+ random_state = 0
69
+ _test_multivariate_ridge_alpha_shape(Ridge, random_state)
@@ -0,0 +1,19 @@
1
+ # ==============================================================================
2
+ # Copyright 2020 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 ._t_sne import TSNE
18
+
19
+ __all__ = ["TSNE"]