scikit-learn-intelex 2023.2.1__py38-none-win_amd64.whl → 2024.0.1__py38-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.
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/__init__.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/__main__.py +16 -12
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/_config.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/_device_offload.py +90 -56
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/_utils.py +95 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +4 -4
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +187 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +12 -6
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +5 -5
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +5 -4
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/dispatcher.py +102 -72
- {scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex}/ensemble/__init__.py +12 -4
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1947 -0
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +118 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +31 -16
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +21 -14
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +10 -10
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +2 -2
- {scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview → scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex}/linear_model/linear.py +173 -83
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +23 -7
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +4 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +4 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +5 -5
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +8 -6
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +6 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +9 -5
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +100 -77
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +331 -0
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +307 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +116 -58
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/lof.py +118 -56
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +85 -0
- {scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/decomposition → scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview}/__init__.py +18 -20
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/preview/cluster/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +7 -7
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +104 -73
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/linear_model/linear.py → scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +4 -1
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/preview/decomposition/pca.py +128 -100
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/tests/test_preview_linear.py → scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_preview_pca.py +18 -16
- {scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/linear_model → scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/spmd}/__init__.py +24 -22
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +11 -5
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +50 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +16 -14
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +2 -2
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +3 -3
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +11 -8
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/_common.py +56 -56
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +110 -55
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +65 -31
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/svc.py +136 -78
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/svr.py +65 -31
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +102 -0
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/_models_info.py +170 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +9 -8
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +63 -69
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +55 -53
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +50 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +8 -7
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +428 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/tests/utils/_launch_algorithms.py +39 -39
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -3
- scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/utils/parallel.py +59 -0
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/utils/validation.py +2 -2
- {scikit_learn_intelex-2023.2.1.dist-info → scikit_learn_intelex-2024.0.1.dist-info}/METADATA +34 -35
- scikit_learn_intelex-2024.0.1.dist-info/RECORD +90 -0
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/_utils.py +0 -82
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -18
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -20
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/ensemble/forest.py +0 -18
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -46
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -228
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -213
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -57
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -18
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_preview_pca.py +0 -28
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/ensemble/extra_trees.py +0 -1261
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/ensemble/forest.py +0 -1155
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/ensemble/tests/test_preview_ensemble.py +0 -67
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/_common.py +0 -66
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -23
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -63
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/tests/_models_info.py +0 -159
- scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -383
- scikit_learn_intelex-2023.2.1.dist-info/RECORD +0 -95
- {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2023.2.1.dist-info → scikit_learn_intelex-2024.0.1.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2023.2.1.dist-info → scikit_learn_intelex-2024.0.1.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2023.2.1.dist-info → scikit_learn_intelex-2024.0.1.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
#!/usr/bin/env python
|
|
2
|
-
|
|
3
|
-
# Copyright 2023 Intel Corporation
|
|
4
|
-
#
|
|
5
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
# you may not use this file except in compliance with the License.
|
|
7
|
-
# You may obtain a copy of the License at
|
|
8
|
-
#
|
|
9
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
#
|
|
11
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
# See the License for the specific language governing permissions and
|
|
15
|
-
# limitations under the License.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
__all__ = ['PCA']
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# ==============================================================================
|
|
3
|
+
# Copyright 2023 Intel Corporation
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
# ==============================================================================
|
|
17
|
+
|
|
18
|
+
__all__ = ["cluster", "decomposition"]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
|
-
|
|
2
|
+
# ==============================================================================
|
|
3
3
|
# Copyright 2023 Intel Corporation
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
14
|
# See the License for the specific language governing permissions and
|
|
15
15
|
# limitations under the License.
|
|
16
|
-
|
|
16
|
+
# ==============================================================================
|
|
17
17
|
|
|
18
18
|
from .k_means import KMeans
|
|
19
19
|
|
|
20
|
-
__all__ = [
|
|
20
|
+
__all__ = ["KMeans"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ==============================================================================
|
|
2
2
|
# Copyright 2023 Intel Corporation
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
|
-
#
|
|
15
|
+
# ==============================================================================
|
|
16
16
|
|
|
17
17
|
from abc import ABC
|
|
18
18
|
|
|
@@ -23,7 +23,7 @@ def get_cluster_centers(self):
|
|
|
23
23
|
|
|
24
24
|
def set_cluster_centers(self, value):
|
|
25
25
|
self._cluster_centers_ = value
|
|
26
|
-
if hasattr(self,
|
|
26
|
+
if hasattr(self, "_onedal_estimator"):
|
|
27
27
|
self._onedal_estimator.cluster_centers_ = value
|
|
28
28
|
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@ def get_labels(self):
|
|
|
33
33
|
|
|
34
34
|
def set_labels(self, value):
|
|
35
35
|
self._labels_ = value
|
|
36
|
-
if hasattr(self,
|
|
36
|
+
if hasattr(self, "_onedal_estimator"):
|
|
37
37
|
self._onedal_estimator.labels_ = value
|
|
38
38
|
|
|
39
39
|
|
|
@@ -43,7 +43,7 @@ def get_inertia(self):
|
|
|
43
43
|
|
|
44
44
|
def set_inertia(self, value):
|
|
45
45
|
self._inertia_ = value
|
|
46
|
-
if hasattr(self,
|
|
46
|
+
if hasattr(self, "_onedal_estimator"):
|
|
47
47
|
self._onedal_estimator.inertia_ = value
|
|
48
48
|
|
|
49
49
|
|
|
@@ -53,7 +53,7 @@ def get_n_iter(self):
|
|
|
53
53
|
|
|
54
54
|
def set_n_iter(self, value):
|
|
55
55
|
self._n_iter_ = value
|
|
56
|
-
if hasattr(self,
|
|
56
|
+
if hasattr(self, "_onedal_estimator"):
|
|
57
57
|
self._onedal_estimator.n_iter_ = value
|
|
58
58
|
|
|
59
59
|
|
|
@@ -67,7 +67,7 @@ class BaseKMeans(ABC):
|
|
|
67
67
|
self._n_iter_ = self._onedal_estimator.n_iter_
|
|
68
68
|
self._labels_ = self._onedal_estimator.labels_
|
|
69
69
|
self._inertia_ = self._onedal_estimator.inertia_
|
|
70
|
-
self._algorithm = self._onedal_estimator.
|
|
70
|
+
self._algorithm = self._onedal_estimator.algorithm
|
|
71
71
|
self._cluster_centers_ = self._onedal_estimator.cluster_centers_
|
|
72
72
|
self._sparse = False
|
|
73
73
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
|
-
|
|
2
|
+
# ==============================================================================
|
|
3
3
|
# Copyright 2023 Intel Corporation
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -13,54 +13,51 @@
|
|
|
13
13
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
14
|
# See the License for the specific language governing permissions and
|
|
15
15
|
# limitations under the License.
|
|
16
|
-
|
|
16
|
+
# ==============================================================================
|
|
17
17
|
|
|
18
|
-
from daal4py.sklearn._utils import daal_check_version
|
|
19
18
|
import logging
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
from daal4py.sklearn._utils import daal_check_version
|
|
21
|
+
|
|
22
|
+
if daal_check_version((2023, "P", 200)):
|
|
22
23
|
import numpy as np
|
|
23
24
|
from scipy.sparse import issparse
|
|
24
|
-
|
|
25
|
-
from ._common import BaseKMeans
|
|
26
|
-
from ..._device_offload import dispatch, wrap_output_data
|
|
27
|
-
|
|
28
|
-
from onedal.cluster import KMeans as onedal_KMeans
|
|
29
25
|
from sklearn.cluster import KMeans as sklearn_KMeans
|
|
30
|
-
|
|
31
|
-
from daal4py.sklearn._utils import (
|
|
32
|
-
sklearn_check_version,
|
|
33
|
-
PatchingConditionsChain)
|
|
34
|
-
|
|
26
|
+
from sklearn.utils._openmp_helpers import _openmp_effective_n_threads
|
|
35
27
|
from sklearn.utils.validation import (
|
|
28
|
+
_deprecate_positional_args,
|
|
36
29
|
_num_samples,
|
|
37
30
|
check_is_fitted,
|
|
38
|
-
|
|
31
|
+
)
|
|
39
32
|
|
|
40
|
-
from sklearn.
|
|
33
|
+
from daal4py.sklearn._utils import sklearn_check_version
|
|
34
|
+
from onedal.cluster import KMeans as onedal_KMeans
|
|
35
|
+
|
|
36
|
+
from ..._device_offload import dispatch, wrap_output_data
|
|
37
|
+
from ..._utils import PatchingConditionsChain
|
|
38
|
+
from ._common import BaseKMeans
|
|
41
39
|
|
|
42
40
|
class KMeans(sklearn_KMeans, BaseKMeans):
|
|
43
41
|
__doc__ = sklearn_KMeans.__doc__
|
|
44
42
|
n_iter_, inertia_ = None, None
|
|
45
43
|
labels_, cluster_centers_ = None, None
|
|
46
44
|
|
|
47
|
-
if sklearn_check_version(
|
|
48
|
-
_parameter_constraints: dict = {
|
|
49
|
-
**sklearn_KMeans._parameter_constraints}
|
|
45
|
+
if sklearn_check_version("1.2"):
|
|
46
|
+
_parameter_constraints: dict = {**sklearn_KMeans._parameter_constraints}
|
|
50
47
|
|
|
51
48
|
@_deprecate_positional_args
|
|
52
49
|
def __init__(
|
|
53
50
|
self,
|
|
54
51
|
n_clusters=8,
|
|
55
52
|
*,
|
|
56
|
-
init=
|
|
57
|
-
n_init=
|
|
53
|
+
init="k-means++",
|
|
54
|
+
n_init="auto" if sklearn_check_version("1.4") else "warn",
|
|
58
55
|
max_iter=300,
|
|
59
56
|
tol=1e-4,
|
|
60
57
|
verbose=0,
|
|
61
58
|
random_state=None,
|
|
62
59
|
copy_x=True,
|
|
63
|
-
algorithm=
|
|
60
|
+
algorithm="lloyd",
|
|
64
61
|
):
|
|
65
62
|
super().__init__(
|
|
66
63
|
n_clusters=n_clusters,
|
|
@@ -73,20 +70,22 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
73
70
|
copy_x=copy_x,
|
|
74
71
|
algorithm=algorithm,
|
|
75
72
|
)
|
|
76
|
-
|
|
73
|
+
|
|
74
|
+
elif sklearn_check_version("1.0"):
|
|
75
|
+
|
|
77
76
|
@_deprecate_positional_args
|
|
78
77
|
def __init__(
|
|
79
78
|
self,
|
|
80
79
|
n_clusters=8,
|
|
81
80
|
*,
|
|
82
|
-
init=
|
|
81
|
+
init="k-means++",
|
|
83
82
|
n_init=10,
|
|
84
83
|
max_iter=300,
|
|
85
84
|
tol=1e-4,
|
|
86
85
|
verbose=0,
|
|
87
86
|
random_state=None,
|
|
88
87
|
copy_x=True,
|
|
89
|
-
algorithm=
|
|
88
|
+
algorithm="auto",
|
|
90
89
|
):
|
|
91
90
|
super().__init__(
|
|
92
91
|
n_clusters=n_clusters,
|
|
@@ -99,22 +98,24 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
99
98
|
copy_x=copy_x,
|
|
100
99
|
algorithm=algorithm,
|
|
101
100
|
)
|
|
101
|
+
|
|
102
102
|
else:
|
|
103
|
+
|
|
103
104
|
@_deprecate_positional_args
|
|
104
105
|
def __init__(
|
|
105
106
|
self,
|
|
106
107
|
n_clusters=8,
|
|
107
108
|
*,
|
|
108
|
-
init=
|
|
109
|
+
init="k-means++",
|
|
109
110
|
n_init=10,
|
|
110
111
|
max_iter=300,
|
|
111
112
|
tol=1e-4,
|
|
112
|
-
precompute_distances=
|
|
113
|
+
precompute_distances="deprecated",
|
|
113
114
|
verbose=0,
|
|
114
115
|
random_state=None,
|
|
115
116
|
copy_x=True,
|
|
116
|
-
n_jobs=
|
|
117
|
-
algorithm=
|
|
117
|
+
n_jobs="deprecated",
|
|
118
|
+
algorithm="auto",
|
|
118
119
|
):
|
|
119
120
|
super().__init__(
|
|
120
121
|
n_clusters=n_clusters,
|
|
@@ -132,38 +133,42 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
132
133
|
|
|
133
134
|
def _initialize_onedal_estimator(self):
|
|
134
135
|
onedal_params = {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
136
|
+
"n_clusters": self.n_clusters,
|
|
137
|
+
"init": self.init,
|
|
138
|
+
"max_iter": self.max_iter,
|
|
139
|
+
"tol": self.tol,
|
|
140
|
+
"n_init": self.n_init,
|
|
141
|
+
"verbose": self.verbose,
|
|
142
|
+
"random_state": self.random_state,
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
self._onedal_estimator = onedal_KMeans(**onedal_params)
|
|
145
146
|
|
|
146
147
|
def _onedal_fit_supported(self, method_name, X, y=None, sample_weight=None):
|
|
147
|
-
assert method_name ==
|
|
148
|
+
assert method_name == "fit"
|
|
148
149
|
|
|
149
150
|
class_name = self.__class__.__name__
|
|
150
|
-
patching_status = PatchingConditionsChain(
|
|
151
|
-
f'sklearn.cluster.{class_name}.fit')
|
|
151
|
+
patching_status = PatchingConditionsChain(f"sklearn.cluster.{class_name}.fit")
|
|
152
152
|
|
|
153
153
|
sample_count = _num_samples(X)
|
|
154
154
|
self._algorithm = self.algorithm
|
|
155
155
|
supported_algs = ["auto", "full", "lloyd"]
|
|
156
156
|
correct_count = self.n_clusters < sample_count
|
|
157
157
|
|
|
158
|
-
patching_status.and_conditions(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
158
|
+
patching_status.and_conditions(
|
|
159
|
+
[
|
|
160
|
+
(
|
|
161
|
+
self.algorithm in supported_algs,
|
|
162
|
+
"Only lloyd algorithm is supported.",
|
|
163
|
+
),
|
|
164
|
+
(not issparse(self.init), "Sparse init values are not supported"),
|
|
165
|
+
(correct_count, "n_clusters is smaller than number of samples"),
|
|
166
|
+
(sample_weight is None, "Sample weight is not None."),
|
|
167
|
+
(not issparse(X), "Sparse input is not supported."),
|
|
168
|
+
]
|
|
169
|
+
)
|
|
165
170
|
|
|
166
|
-
return patching_status
|
|
171
|
+
return patching_status
|
|
167
172
|
|
|
168
173
|
def fit(self, X, y=None, sample_weight=None):
|
|
169
174
|
"""Compute k-means clustering.
|
|
@@ -184,15 +189,22 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
184
189
|
|
|
185
190
|
"""
|
|
186
191
|
|
|
187
|
-
if sklearn_check_version(
|
|
192
|
+
if sklearn_check_version("1.0"):
|
|
188
193
|
self._check_feature_names(X, reset=True)
|
|
189
194
|
if sklearn_check_version("1.2"):
|
|
190
195
|
self._validate_params()
|
|
191
196
|
|
|
192
|
-
dispatch(
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
197
|
+
dispatch(
|
|
198
|
+
self,
|
|
199
|
+
"fit",
|
|
200
|
+
{
|
|
201
|
+
"onedal": self.__class__._onedal_fit,
|
|
202
|
+
"sklearn": sklearn_KMeans.fit,
|
|
203
|
+
},
|
|
204
|
+
X,
|
|
205
|
+
y,
|
|
206
|
+
sample_weight,
|
|
207
|
+
)
|
|
196
208
|
|
|
197
209
|
return self
|
|
198
210
|
|
|
@@ -205,7 +217,10 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
205
217
|
dtype=[np.float64, np.float32],
|
|
206
218
|
)
|
|
207
219
|
|
|
208
|
-
|
|
220
|
+
if sklearn_check_version("1.2"):
|
|
221
|
+
self._check_params_vs_input(X)
|
|
222
|
+
else:
|
|
223
|
+
self._check_params(X)
|
|
209
224
|
|
|
210
225
|
self._n_features_out = self.n_clusters
|
|
211
226
|
self._n_threads = _openmp_effective_n_threads()
|
|
@@ -216,22 +231,28 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
216
231
|
self._save_attributes()
|
|
217
232
|
|
|
218
233
|
def _onedal_predict_supported(self, method_name, X):
|
|
219
|
-
assert method_name ==
|
|
234
|
+
assert method_name == "predict"
|
|
220
235
|
|
|
221
236
|
class_name = self.__class__.__name__
|
|
222
237
|
patching_status = PatchingConditionsChain(
|
|
223
|
-
f
|
|
238
|
+
f"sklearn.cluster.{class_name}.predict"
|
|
239
|
+
)
|
|
224
240
|
|
|
225
241
|
supported_algs = ["auto", "full", "lloyd"]
|
|
226
242
|
dense_centers = not issparse(self.cluster_centers_)
|
|
227
243
|
|
|
228
|
-
patching_status.and_conditions(
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
244
|
+
patching_status.and_conditions(
|
|
245
|
+
[
|
|
246
|
+
(
|
|
247
|
+
self.algorithm in supported_algs,
|
|
248
|
+
"Only lloyd algorithm is supported.",
|
|
249
|
+
),
|
|
250
|
+
(dense_centers, "Sparse clusters is not supported."),
|
|
251
|
+
(not issparse(X), "Sparse input is not supported."),
|
|
252
|
+
]
|
|
253
|
+
)
|
|
233
254
|
|
|
234
|
-
return patching_status
|
|
255
|
+
return patching_status
|
|
235
256
|
|
|
236
257
|
@wrap_output_data
|
|
237
258
|
def predict(self, X):
|
|
@@ -253,31 +274,39 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
253
274
|
|
|
254
275
|
"""
|
|
255
276
|
|
|
256
|
-
if sklearn_check_version(
|
|
277
|
+
if sklearn_check_version("1.0"):
|
|
257
278
|
self._check_feature_names(X, reset=True)
|
|
258
279
|
if sklearn_check_version("1.2"):
|
|
259
280
|
self._validate_params()
|
|
260
281
|
|
|
261
|
-
return dispatch(
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
282
|
+
return dispatch(
|
|
283
|
+
self,
|
|
284
|
+
"predict",
|
|
285
|
+
{
|
|
286
|
+
"onedal": self.__class__._onedal_predict,
|
|
287
|
+
"sklearn": sklearn_KMeans.predict,
|
|
288
|
+
},
|
|
289
|
+
X,
|
|
290
|
+
)
|
|
265
291
|
|
|
266
292
|
def _onedal_predict(self, X, queue=None):
|
|
267
|
-
X = self._validate_data(
|
|
268
|
-
|
|
293
|
+
X = self._validate_data(
|
|
294
|
+
X, accept_sparse=False, reset=False, dtype=[np.float64, np.float32]
|
|
295
|
+
)
|
|
296
|
+
if not hasattr(self, "_onedal_estimator"):
|
|
269
297
|
self._initialize_onedal_estimator()
|
|
270
298
|
self._onedal_estimator.cluster_centers_ = self.cluster_centers_
|
|
271
299
|
|
|
272
300
|
return self._onedal_estimator.predict(X, queue=queue)
|
|
273
301
|
|
|
274
302
|
def _onedal_supported(self, method_name, *data):
|
|
275
|
-
if method_name ==
|
|
303
|
+
if method_name == "fit":
|
|
276
304
|
return self._onedal_fit_supported(method_name, *data)
|
|
277
|
-
if method_name ==
|
|
305
|
+
if method_name == "predict":
|
|
278
306
|
return self._onedal_predict_supported(method_name, *data)
|
|
279
307
|
raise RuntimeError(
|
|
280
|
-
f
|
|
308
|
+
f"Unknown method {method_name} in {self.__class__.__name__}"
|
|
309
|
+
)
|
|
281
310
|
|
|
282
311
|
def _onedal_gpu_supported(self, method_name, *data):
|
|
283
312
|
return self._onedal_supported(method_name, *data)
|
|
@@ -335,5 +364,7 @@ if daal_check_version((2023, 'P', 200)):
|
|
|
335
364
|
|
|
336
365
|
else:
|
|
337
366
|
from daal4py.sklearn.cluster import KMeans
|
|
338
|
-
|
|
339
|
-
|
|
367
|
+
|
|
368
|
+
logging.warning(
|
|
369
|
+
"Preview KMeans requires oneDAL version >= 2023.2 " "but it was not found"
|
|
370
|
+
)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
1
2
|
# ===============================================================================
|
|
2
3
|
# Copyright 2023 Intel Corporation
|
|
3
4
|
#
|
|
@@ -14,4 +15,6 @@
|
|
|
14
15
|
# limitations under the License.
|
|
15
16
|
# ===============================================================================
|
|
16
17
|
|
|
17
|
-
from
|
|
18
|
+
from .pca import PCA
|
|
19
|
+
|
|
20
|
+
__all__ = ["PCA"]
|