scikit-learn-intelex 2023.2.1__py311-none-win_amd64.whl → 2024.0.1__py311-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 (109) hide show
  1. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/__init__.py +2 -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
  3. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/_config.py +2 -2
  4. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/_device_offload.py +90 -56
  5. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/_utils.py +95 -0
  6. {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
  7. {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
  8. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +4 -4
  9. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +187 -0
  10. {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
  11. {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
  12. {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
  13. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +3 -3
  14. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +2 -2
  15. {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
  16. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/dispatcher.py +102 -72
  17. {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
  18. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/ensemble/_forest.py +1947 -0
  19. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +118 -0
  20. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +31 -16
  21. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +21 -14
  22. {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
  23. {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
  24. {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
  25. {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
  26. {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
  27. {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
  28. {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
  29. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +3 -3
  30. {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
  31. {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
  32. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +5 -5
  33. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +2 -2
  34. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +2 -2
  35. {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
  36. {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
  37. {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
  38. {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
  39. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +9 -5
  40. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +100 -77
  41. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +331 -0
  42. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +307 -0
  43. {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
  44. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/neighbors/lof.py +118 -56
  45. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +85 -0
  46. {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
  47. {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
  48. {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
  49. {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
  50. 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
  51. {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
  52. 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
  53. {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
  54. {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
  55. {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
  56. {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
  57. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +50 -0
  58. {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
  59. {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
  60. {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
  61. {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
  62. {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
  63. {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
  64. {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
  65. {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
  66. {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
  67. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +11 -8
  68. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/_common.py +56 -56
  69. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +110 -55
  70. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +65 -31
  71. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/svc.py +136 -78
  72. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/svm/svr.py +65 -31
  73. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +102 -0
  74. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/_models_info.py +170 -0
  75. {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
  76. {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
  77. {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
  78. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/test_parallel.py +50 -0
  79. {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
  80. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +428 -0
  81. {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
  82. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +3 -3
  83. scikit_learn_intelex-2024.0.1.data/data/Lib/site-packages/sklearnex/utils/parallel.py +59 -0
  84. {scikit_learn_intelex-2023.2.1.data → scikit_learn_intelex-2024.0.1.data}/data/Lib/site-packages/sklearnex/utils/validation.py +2 -2
  85. {scikit_learn_intelex-2023.2.1.dist-info → scikit_learn_intelex-2024.0.1.dist-info}/METADATA +34 -35
  86. scikit_learn_intelex-2024.0.1.dist-info/RECORD +90 -0
  87. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/_utils.py +0 -82
  88. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/cluster/dbscan.py +0 -18
  89. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -20
  90. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/ensemble/forest.py +0 -18
  91. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -46
  92. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -228
  93. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -213
  94. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -57
  95. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -18
  96. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_preview_pca.py +0 -28
  97. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/ensemble/extra_trees.py +0 -1261
  98. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/ensemble/forest.py +0 -1155
  99. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/ensemble/tests/test_preview_ensemble.py +0 -67
  100. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/preview/linear_model/_common.py +0 -66
  101. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -23
  102. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -63
  103. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/tests/_models_info.py +0 -159
  104. scikit_learn_intelex-2023.2.1.data/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -383
  105. scikit_learn_intelex-2023.2.1.dist-info/RECORD +0 -95
  106. {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
  107. {scikit_learn_intelex-2023.2.1.dist-info → scikit_learn_intelex-2024.0.1.dist-info}/LICENSE.txt +0 -0
  108. {scikit_learn_intelex-2023.2.1.dist-info → scikit_learn_intelex-2024.0.1.dist-info}/WHEEL +0 -0
  109. {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
- from .pca import PCA
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__ = ['KMeans']
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, '_onedal_estimator'):
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, '_onedal_estimator'):
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, '_onedal_estimator'):
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, '_onedal_estimator'):
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._algorithm
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
- if daal_check_version((2023, 'P', 200)):
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
- _deprecate_positional_args)
31
+ )
39
32
 
40
- from sklearn.utils._openmp_helpers import _openmp_effective_n_threads
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('1.2'):
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='k-means++',
57
- n_init='auto' if sklearn_check_version('1.4') else 'warn',
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='lloyd',
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
- elif sklearn_check_version('1.0'):
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='k-means++',
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='auto',
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='k-means++',
109
+ init="k-means++",
109
110
  n_init=10,
110
111
  max_iter=300,
111
112
  tol=1e-4,
112
- precompute_distances='deprecated',
113
+ precompute_distances="deprecated",
113
114
  verbose=0,
114
115
  random_state=None,
115
116
  copy_x=True,
116
- n_jobs='deprecated',
117
- algorithm='auto',
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
- 'n_clusters': self.n_clusters,
136
- 'init': self.init,
137
- 'max_iter': self.max_iter,
138
- 'tol': self.tol,
139
- 'n_init': self.n_init,
140
- 'verbose': self.verbose,
141
- 'random_state': self.random_state,
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 == 'fit'
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
- (self.algorithm in supported_algs, 'Only lloyd algorithm is supported.'),
160
- (not issparse(self.init), 'Sparse init values are not supported'),
161
- (correct_count, 'n_clusters is smaller than number of samples'),
162
- (sample_weight is None, 'Sample weight is not None.'),
163
- (not issparse(X), 'Sparse input is not supported.'),
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.get_status(logs=True)
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('1.0'):
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(self, 'fit', {
193
- 'onedal': self.__class__._onedal_fit,
194
- 'sklearn': sklearn_KMeans.fit,
195
- }, X, y, sample_weight)
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
- self._check_params_vs_input(X)
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 == 'predict'
234
+ assert method_name == "predict"
220
235
 
221
236
  class_name = self.__class__.__name__
222
237
  patching_status = PatchingConditionsChain(
223
- f'sklearn.cluster.{class_name}.predict')
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
- (self.algorithm in supported_algs, 'Only lloyd algorithm is supported.'),
230
- (dense_centers, 'Sparse clusters is not supported.'),
231
- (not issparse(X), 'Sparse input is not supported.')
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.get_status(logs=True)
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('1.0'):
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(self, 'predict', {
262
- 'onedal': self.__class__._onedal_predict,
263
- 'sklearn': sklearn_KMeans.predict,
264
- }, X)
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(X, accept_sparse=False, reset=False)
268
- if not hasattr(self, '_onedal_estimator'):
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 == 'fit':
303
+ if method_name == "fit":
276
304
  return self._onedal_fit_supported(method_name, *data)
277
- if method_name == 'predict':
305
+ if method_name == "predict":
278
306
  return self._onedal_predict_supported(method_name, *data)
279
307
  raise RuntimeError(
280
- f'Unknown method {method_name} in {self.__class__.__name__}')
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
- logging.warning('Preview KMeans requires oneDAL version >= 2023.2 '
339
- 'but it was not found')
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 daal4py.sklearn.linear_model import LinearRegression
18
+ from .pca import PCA
19
+
20
+ __all__ = ["PCA"]