scikit-learn-intelex 2025.1.0__py39-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.
- daal4py/__init__.py +73 -0
- daal4py/__main__.py +58 -0
- daal4py/_daal4py.cpython-39-x86_64-linux-gnu.so +0 -0
- daal4py/doc/third-party-programs.txt +424 -0
- daal4py/mb/__init__.py +19 -0
- daal4py/mb/model_builders.py +377 -0
- daal4py/mpi_transceiver.cpython-39-x86_64-linux-gnu.so +0 -0
- daal4py/sklearn/__init__.py +40 -0
- daal4py/sklearn/_n_jobs_support.py +248 -0
- daal4py/sklearn/_utils.py +245 -0
- daal4py/sklearn/cluster/__init__.py +20 -0
- daal4py/sklearn/cluster/dbscan.py +165 -0
- daal4py/sklearn/cluster/k_means.py +597 -0
- daal4py/sklearn/cluster/tests/test_dbscan.py +109 -0
- daal4py/sklearn/decomposition/__init__.py +19 -0
- daal4py/sklearn/decomposition/_pca.py +524 -0
- daal4py/sklearn/ensemble/AdaBoostClassifier.py +196 -0
- daal4py/sklearn/ensemble/GBTDAAL.py +337 -0
- daal4py/sklearn/ensemble/__init__.py +27 -0
- daal4py/sklearn/ensemble/_forest.py +1397 -0
- daal4py/sklearn/ensemble/tests/test_decision_forest.py +206 -0
- daal4py/sklearn/linear_model/__init__.py +29 -0
- daal4py/sklearn/linear_model/_coordinate_descent.py +848 -0
- daal4py/sklearn/linear_model/_linear.py +272 -0
- daal4py/sklearn/linear_model/_ridge.py +325 -0
- daal4py/sklearn/linear_model/coordinate_descent.py +17 -0
- daal4py/sklearn/linear_model/linear.py +17 -0
- daal4py/sklearn/linear_model/logistic_loss.py +195 -0
- daal4py/sklearn/linear_model/logistic_path.py +1026 -0
- daal4py/sklearn/linear_model/ridge.py +17 -0
- daal4py/sklearn/linear_model/tests/test_linear.py +208 -0
- daal4py/sklearn/linear_model/tests/test_ridge.py +69 -0
- daal4py/sklearn/manifold/__init__.py +19 -0
- daal4py/sklearn/manifold/_t_sne.py +405 -0
- daal4py/sklearn/metrics/__init__.py +20 -0
- daal4py/sklearn/metrics/_pairwise.py +236 -0
- daal4py/sklearn/metrics/_ranking.py +210 -0
- daal4py/sklearn/model_selection/__init__.py +19 -0
- daal4py/sklearn/model_selection/_split.py +309 -0
- daal4py/sklearn/model_selection/tests/test_split.py +56 -0
- daal4py/sklearn/monkeypatch/__init__.py +0 -0
- daal4py/sklearn/monkeypatch/dispatcher.py +232 -0
- daal4py/sklearn/monkeypatch/tests/_models_info.py +161 -0
- daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +71 -0
- daal4py/sklearn/monkeypatch/tests/test_patching.py +90 -0
- daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +117 -0
- daal4py/sklearn/neighbors/__init__.py +21 -0
- daal4py/sklearn/neighbors/_base.py +503 -0
- daal4py/sklearn/neighbors/_classification.py +139 -0
- daal4py/sklearn/neighbors/_regression.py +74 -0
- daal4py/sklearn/neighbors/_unsupervised.py +55 -0
- daal4py/sklearn/neighbors/tests/test_kneighbors.py +113 -0
- daal4py/sklearn/svm/__init__.py +19 -0
- daal4py/sklearn/svm/svm.py +734 -0
- daal4py/sklearn/utils/__init__.py +21 -0
- daal4py/sklearn/utils/base.py +75 -0
- daal4py/sklearn/utils/tests/test_utils.py +51 -0
- daal4py/sklearn/utils/validation.py +693 -0
- onedal/__init__.py +83 -0
- onedal/_config.py +54 -0
- onedal/_device_offload.py +222 -0
- onedal/_onedal_py_dpc.cpython-39-x86_64-linux-gnu.so +0 -0
- onedal/_onedal_py_host.cpython-39-x86_64-linux-gnu.so +0 -0
- onedal/_onedal_py_spmd_dpc.cpython-39-x86_64-linux-gnu.so +0 -0
- onedal/basic_statistics/__init__.py +20 -0
- onedal/basic_statistics/basic_statistics.py +107 -0
- onedal/basic_statistics/incremental_basic_statistics.py +160 -0
- onedal/basic_statistics/tests/test_basic_statistics.py +298 -0
- onedal/basic_statistics/tests/test_incremental_basic_statistics.py +196 -0
- onedal/cluster/__init__.py +27 -0
- onedal/cluster/dbscan.py +110 -0
- onedal/cluster/kmeans.py +564 -0
- onedal/cluster/kmeans_init.py +115 -0
- onedal/cluster/tests/test_dbscan.py +125 -0
- onedal/cluster/tests/test_kmeans.py +88 -0
- onedal/cluster/tests/test_kmeans_init.py +93 -0
- onedal/common/_base.py +38 -0
- onedal/common/_estimator_checks.py +47 -0
- onedal/common/_mixin.py +62 -0
- onedal/common/_policy.py +59 -0
- onedal/common/_spmd_policy.py +30 -0
- onedal/common/hyperparameters.py +125 -0
- onedal/common/tests/test_policy.py +76 -0
- onedal/covariance/__init__.py +20 -0
- onedal/covariance/covariance.py +125 -0
- onedal/covariance/incremental_covariance.py +146 -0
- onedal/covariance/tests/test_covariance.py +50 -0
- onedal/covariance/tests/test_incremental_covariance.py +122 -0
- onedal/datatypes/__init__.py +19 -0
- onedal/datatypes/_data_conversion.py +154 -0
- onedal/datatypes/tests/common.py +126 -0
- onedal/datatypes/tests/test_data.py +414 -0
- onedal/decomposition/__init__.py +20 -0
- onedal/decomposition/incremental_pca.py +204 -0
- onedal/decomposition/pca.py +186 -0
- onedal/decomposition/tests/test_incremental_pca.py +198 -0
- onedal/ensemble/__init__.py +29 -0
- onedal/ensemble/forest.py +727 -0
- onedal/ensemble/tests/test_random_forest.py +97 -0
- onedal/linear_model/__init__.py +27 -0
- onedal/linear_model/incremental_linear_model.py +258 -0
- onedal/linear_model/linear_model.py +329 -0
- onedal/linear_model/logistic_regression.py +249 -0
- onedal/linear_model/tests/test_incremental_linear_regression.py +168 -0
- onedal/linear_model/tests/test_incremental_ridge_regression.py +107 -0
- onedal/linear_model/tests/test_linear_regression.py +250 -0
- onedal/linear_model/tests/test_logistic_regression.py +95 -0
- onedal/linear_model/tests/test_ridge.py +95 -0
- onedal/neighbors/__init__.py +19 -0
- onedal/neighbors/neighbors.py +767 -0
- onedal/neighbors/tests/test_knn_classification.py +49 -0
- onedal/primitives/__init__.py +27 -0
- onedal/primitives/get_tree.py +25 -0
- onedal/primitives/kernel_functions.py +153 -0
- onedal/primitives/tests/test_kernel_functions.py +159 -0
- onedal/spmd/__init__.py +25 -0
- onedal/spmd/_base.py +30 -0
- onedal/spmd/basic_statistics/__init__.py +20 -0
- onedal/spmd/basic_statistics/basic_statistics.py +30 -0
- onedal/spmd/basic_statistics/incremental_basic_statistics.py +69 -0
- onedal/spmd/cluster/__init__.py +28 -0
- onedal/spmd/cluster/dbscan.py +23 -0
- onedal/spmd/cluster/kmeans.py +56 -0
- onedal/spmd/covariance/__init__.py +20 -0
- onedal/spmd/covariance/covariance.py +26 -0
- onedal/spmd/covariance/incremental_covariance.py +82 -0
- onedal/spmd/decomposition/__init__.py +20 -0
- onedal/spmd/decomposition/incremental_pca.py +117 -0
- onedal/spmd/decomposition/pca.py +26 -0
- onedal/spmd/ensemble/__init__.py +19 -0
- onedal/spmd/ensemble/forest.py +28 -0
- onedal/spmd/linear_model/__init__.py +21 -0
- onedal/spmd/linear_model/incremental_linear_model.py +97 -0
- onedal/spmd/linear_model/linear_model.py +30 -0
- onedal/spmd/linear_model/logistic_regression.py +38 -0
- onedal/spmd/neighbors/__init__.py +19 -0
- onedal/spmd/neighbors/neighbors.py +75 -0
- onedal/svm/__init__.py +19 -0
- onedal/svm/svm.py +556 -0
- onedal/svm/tests/test_csr_svm.py +351 -0
- onedal/svm/tests/test_nusvc.py +204 -0
- onedal/svm/tests/test_nusvr.py +210 -0
- onedal/svm/tests/test_svc.py +176 -0
- onedal/svm/tests/test_svr.py +243 -0
- onedal/tests/test_common.py +57 -0
- onedal/tests/utils/_dataframes_support.py +162 -0
- onedal/tests/utils/_device_selection.py +102 -0
- onedal/utils/__init__.py +49 -0
- onedal/utils/_array_api.py +81 -0
- onedal/utils/_dpep_helpers.py +56 -0
- onedal/utils/validation.py +440 -0
- scikit_learn_intelex-2025.1.0.dist-info/LICENSE.txt +202 -0
- scikit_learn_intelex-2025.1.0.dist-info/METADATA +231 -0
- scikit_learn_intelex-2025.1.0.dist-info/RECORD +280 -0
- scikit_learn_intelex-2025.1.0.dist-info/WHEEL +5 -0
- scikit_learn_intelex-2025.1.0.dist-info/top_level.txt +3 -0
- sklearnex/__init__.py +66 -0
- sklearnex/__main__.py +58 -0
- sklearnex/_config.py +116 -0
- sklearnex/_device_offload.py +126 -0
- sklearnex/_utils.py +132 -0
- sklearnex/basic_statistics/__init__.py +20 -0
- sklearnex/basic_statistics/basic_statistics.py +230 -0
- sklearnex/basic_statistics/incremental_basic_statistics.py +345 -0
- sklearnex/basic_statistics/tests/test_basic_statistics.py +270 -0
- sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +404 -0
- sklearnex/cluster/__init__.py +20 -0
- sklearnex/cluster/dbscan.py +197 -0
- sklearnex/cluster/k_means.py +395 -0
- sklearnex/cluster/tests/test_dbscan.py +38 -0
- sklearnex/cluster/tests/test_kmeans.py +159 -0
- sklearnex/conftest.py +82 -0
- sklearnex/covariance/__init__.py +19 -0
- sklearnex/covariance/incremental_covariance.py +398 -0
- sklearnex/covariance/tests/test_incremental_covariance.py +237 -0
- sklearnex/decomposition/__init__.py +19 -0
- sklearnex/decomposition/pca.py +425 -0
- sklearnex/decomposition/tests/test_pca.py +58 -0
- sklearnex/dispatcher.py +543 -0
- sklearnex/doc/third-party-programs.txt +424 -0
- sklearnex/ensemble/__init__.py +29 -0
- sklearnex/ensemble/_forest.py +2029 -0
- sklearnex/ensemble/tests/test_forest.py +135 -0
- sklearnex/glob/__main__.py +72 -0
- sklearnex/glob/dispatcher.py +101 -0
- sklearnex/linear_model/__init__.py +32 -0
- sklearnex/linear_model/coordinate_descent.py +30 -0
- sklearnex/linear_model/incremental_linear.py +482 -0
- sklearnex/linear_model/incremental_ridge.py +425 -0
- sklearnex/linear_model/linear.py +341 -0
- sklearnex/linear_model/logistic_regression.py +413 -0
- sklearnex/linear_model/ridge.py +24 -0
- sklearnex/linear_model/tests/test_incremental_linear.py +207 -0
- sklearnex/linear_model/tests/test_incremental_ridge.py +153 -0
- sklearnex/linear_model/tests/test_linear.py +167 -0
- sklearnex/linear_model/tests/test_logreg.py +134 -0
- sklearnex/manifold/__init__.py +19 -0
- sklearnex/manifold/t_sne.py +21 -0
- sklearnex/manifold/tests/test_tsne.py +26 -0
- sklearnex/metrics/__init__.py +23 -0
- sklearnex/metrics/pairwise.py +22 -0
- sklearnex/metrics/ranking.py +20 -0
- sklearnex/metrics/tests/test_metrics.py +39 -0
- sklearnex/model_selection/__init__.py +21 -0
- sklearnex/model_selection/split.py +22 -0
- sklearnex/model_selection/tests/test_model_selection.py +34 -0
- sklearnex/neighbors/__init__.py +27 -0
- sklearnex/neighbors/_lof.py +236 -0
- sklearnex/neighbors/common.py +310 -0
- sklearnex/neighbors/knn_classification.py +231 -0
- sklearnex/neighbors/knn_regression.py +207 -0
- sklearnex/neighbors/knn_unsupervised.py +178 -0
- sklearnex/neighbors/tests/test_neighbors.py +82 -0
- sklearnex/preview/__init__.py +17 -0
- sklearnex/preview/covariance/__init__.py +19 -0
- sklearnex/preview/covariance/covariance.py +138 -0
- sklearnex/preview/covariance/tests/test_covariance.py +66 -0
- sklearnex/preview/decomposition/__init__.py +19 -0
- sklearnex/preview/decomposition/incremental_pca.py +233 -0
- sklearnex/preview/decomposition/tests/test_incremental_pca.py +266 -0
- sklearnex/preview/linear_model/__init__.py +19 -0
- sklearnex/preview/linear_model/ridge.py +424 -0
- sklearnex/preview/linear_model/tests/test_ridge.py +102 -0
- sklearnex/spmd/__init__.py +25 -0
- sklearnex/spmd/basic_statistics/__init__.py +20 -0
- sklearnex/spmd/basic_statistics/basic_statistics.py +21 -0
- sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +30 -0
- sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +107 -0
- sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +307 -0
- sklearnex/spmd/cluster/__init__.py +30 -0
- sklearnex/spmd/cluster/dbscan.py +50 -0
- sklearnex/spmd/cluster/kmeans.py +21 -0
- sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +97 -0
- sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +172 -0
- sklearnex/spmd/covariance/__init__.py +20 -0
- sklearnex/spmd/covariance/covariance.py +21 -0
- sklearnex/spmd/covariance/incremental_covariance.py +37 -0
- sklearnex/spmd/covariance/tests/test_covariance_spmd.py +107 -0
- sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +184 -0
- sklearnex/spmd/decomposition/__init__.py +20 -0
- sklearnex/spmd/decomposition/incremental_pca.py +30 -0
- sklearnex/spmd/decomposition/pca.py +21 -0
- sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +269 -0
- sklearnex/spmd/decomposition/tests/test_pca_spmd.py +128 -0
- sklearnex/spmd/ensemble/__init__.py +19 -0
- sklearnex/spmd/ensemble/forest.py +71 -0
- sklearnex/spmd/ensemble/tests/test_forest_spmd.py +265 -0
- sklearnex/spmd/linear_model/__init__.py +21 -0
- sklearnex/spmd/linear_model/incremental_linear_model.py +35 -0
- sklearnex/spmd/linear_model/linear_model.py +21 -0
- sklearnex/spmd/linear_model/logistic_regression.py +21 -0
- sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +329 -0
- sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +145 -0
- sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +162 -0
- sklearnex/spmd/neighbors/__init__.py +19 -0
- sklearnex/spmd/neighbors/neighbors.py +25 -0
- sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +288 -0
- sklearnex/svm/__init__.py +29 -0
- sklearnex/svm/_common.py +339 -0
- sklearnex/svm/nusvc.py +371 -0
- sklearnex/svm/nusvr.py +170 -0
- sklearnex/svm/svc.py +399 -0
- sklearnex/svm/svr.py +167 -0
- sklearnex/svm/tests/test_svm.py +93 -0
- sklearnex/tests/test_common.py +390 -0
- sklearnex/tests/test_config.py +123 -0
- sklearnex/tests/test_memory_usage.py +379 -0
- sklearnex/tests/test_monkeypatch.py +276 -0
- sklearnex/tests/test_n_jobs_support.py +108 -0
- sklearnex/tests/test_parallel.py +48 -0
- sklearnex/tests/test_patching.py +385 -0
- sklearnex/tests/test_run_to_run_stability.py +321 -0
- sklearnex/tests/utils/__init__.py +44 -0
- sklearnex/tests/utils/base.py +371 -0
- sklearnex/tests/utils/spmd.py +198 -0
- sklearnex/utils/__init__.py +19 -0
- sklearnex/utils/_array_api.py +82 -0
- sklearnex/utils/parallel.py +59 -0
- sklearnex/utils/tests/test_finite.py +89 -0
- 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"]
|