scikit-learn-intelex 2024.2.0__py310-none-win_amd64.whl → 2024.4.0__py310-none-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of scikit-learn-intelex might be problematic. Click here for more details.

Files changed (112) hide show
  1. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/__init__.py +9 -7
  2. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/_device_offload.py +31 -4
  3. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/spmd → scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex}/basic_statistics/__init__.py +2 -1
  4. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +288 -0
  5. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +386 -0
  6. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +3 -1
  7. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/conftest.py +63 -0
  8. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +335 -0
  9. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_preview_pca.py → scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +22 -8
  10. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +74 -43
  11. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +78 -89
  12. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +15 -19
  13. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +316 -0
  14. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +63 -11
  15. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +40 -5
  16. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -2
  17. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +74 -20
  18. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +4 -1
  19. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +44 -131
  20. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py → scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +198 -221
  21. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +146 -0
  22. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -5
  23. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +1 -1
  24. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/preview/cluster/k_means.py +5 -73
  25. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +6 -5
  26. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +18 -5
  27. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +4 -12
  28. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +4 -7
  29. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +70 -50
  30. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +6 -52
  31. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +70 -51
  32. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +3 -49
  33. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/_utils.py +164 -0
  34. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +8 -3
  35. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +268 -0
  36. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +8 -2
  37. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +6 -8
  38. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +371 -0
  39. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +2 -1
  40. scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/utils/_namespace.py +97 -0
  41. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2024.4.0.dist-info}/METADATA +2 -2
  42. scikit_learn_intelex-2024.4.0.dist-info/RECORD +101 -0
  43. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/decomposition/pca.py +0 -17
  44. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -27
  45. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/linear_model/linear.py +0 -381
  46. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -308
  47. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -19
  48. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/preview/decomposition/pca.py +0 -374
  49. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/_models_info.py +0 -170
  50. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -240
  51. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/test_patching.py +0 -136
  52. scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex/tests/utils/_launch_algorithms.py +0 -118
  53. scikit_learn_intelex-2024.2.0.dist-info/RECORD +0 -101
  54. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
  55. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
  56. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/_utils.py +0 -0
  57. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +0 -0
  58. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
  59. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +0 -0
  60. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
  61. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
  62. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
  63. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +0 -0
  64. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
  65. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
  66. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
  67. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
  68. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
  69. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
  70. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
  71. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +0 -0
  72. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_path.py +0 -0
  73. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +0 -0
  74. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
  75. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +0 -0
  76. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
  77. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
  78. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
  79. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
  80. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
  81. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
  82. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
  83. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
  84. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
  85. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/preview/cluster/__init__.py +0 -0
  86. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/preview/cluster/_common.py +0 -0
  87. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
  88. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
  89. {scikit_learn_intelex-2024.2.0.data/data/Lib/site-packages/sklearnex → scikit_learn_intelex-2024.4.0.data/data/Lib/site-packages/sklearnex/spmd}/basic_statistics/__init__.py +0 -0
  90. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
  91. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
  92. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
  93. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
  94. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
  95. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
  96. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
  97. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
  98. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
  99. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
  100. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
  101. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
  102. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
  103. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/neighbors.py +0 -0
  104. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
  105. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
  106. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +0 -0
  107. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability_tests.py +0 -0
  108. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
  109. {scikit_learn_intelex-2024.2.0.data → scikit_learn_intelex-2024.4.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
  110. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2024.4.0.dist-info}/LICENSE.txt +0 -0
  111. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2024.4.0.dist-info}/WHEEL +0 -0
  112. {scikit_learn_intelex-2024.2.0.dist-info → scikit_learn_intelex-2024.4.0.dist-info}/top_level.txt +0 -0
@@ -1,221 +1,198 @@
1
- # ===============================================================================
2
- # Copyright 2021 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
- try:
18
- from packaging.version import Version
19
- except ImportError:
20
- from distutils.version import LooseVersion as Version
21
-
22
- import warnings
23
-
24
- import numpy as np
25
- from sklearn import __version__ as sklearn_version
26
- from sklearn.neighbors._ball_tree import BallTree
27
- from sklearn.neighbors._base import VALID_METRICS
28
- from sklearn.neighbors._base import NeighborsBase as sklearn_NeighborsBase
29
- from sklearn.neighbors._kd_tree import KDTree
30
- from sklearn.neighbors._unsupervised import NearestNeighbors as sklearn_NearestNeighbors
31
- from sklearn.utils.validation import _deprecate_positional_args, check_is_fitted
32
-
33
- from daal4py.sklearn._n_jobs_support import control_n_jobs
34
- from daal4py.sklearn._utils import sklearn_check_version
35
- from onedal.neighbors import NearestNeighbors as onedal_NearestNeighbors
36
- from onedal.utils import _check_array, _num_features, _num_samples
37
-
38
- from .._device_offload import dispatch, wrap_output_data
39
- from .common import KNeighborsDispatchingBase
40
-
41
- if sklearn_check_version("0.22") and Version(sklearn_version) < Version("0.23"):
42
-
43
- class NearestNeighbors_(sklearn_NearestNeighbors):
44
- def __init__(
45
- self,
46
- n_neighbors=5,
47
- radius=1.0,
48
- algorithm="auto",
49
- leaf_size=30,
50
- metric="minkowski",
51
- p=2,
52
- metric_params=None,
53
- n_jobs=None,
54
- ):
55
- super().__init__(
56
- n_neighbors=n_neighbors,
57
- radius=radius,
58
- algorithm=algorithm,
59
- leaf_size=leaf_size,
60
- metric=metric,
61
- p=p,
62
- metric_params=metric_params,
63
- n_jobs=n_jobs,
64
- )
65
-
66
- else:
67
-
68
- class NearestNeighbors_(sklearn_NearestNeighbors):
69
- if sklearn_check_version("1.2"):
70
- _parameter_constraints: dict = {
71
- **sklearn_NearestNeighbors._parameter_constraints
72
- }
73
-
74
- @_deprecate_positional_args
75
- def __init__(
76
- self,
77
- *,
78
- n_neighbors=5,
79
- radius=1.0,
80
- algorithm="auto",
81
- leaf_size=30,
82
- metric="minkowski",
83
- p=2,
84
- metric_params=None,
85
- n_jobs=None,
86
- ):
87
- super().__init__(
88
- n_neighbors=n_neighbors,
89
- radius=radius,
90
- algorithm=algorithm,
91
- leaf_size=leaf_size,
92
- metric=metric,
93
- p=p,
94
- metric_params=metric_params,
95
- n_jobs=n_jobs,
96
- )
97
-
98
-
99
- @control_n_jobs(decorated_methods=["fit", "kneighbors"])
100
- class NearestNeighbors(NearestNeighbors_, KNeighborsDispatchingBase):
101
- if sklearn_check_version("1.2"):
102
- _parameter_constraints: dict = {**NearestNeighbors_._parameter_constraints}
103
-
104
- @_deprecate_positional_args
105
- def __init__(
106
- self,
107
- n_neighbors=5,
108
- radius=1.0,
109
- algorithm="auto",
110
- leaf_size=30,
111
- metric="minkowski",
112
- p=2,
113
- metric_params=None,
114
- n_jobs=None,
115
- ):
116
- super().__init__(
117
- n_neighbors=n_neighbors,
118
- radius=radius,
119
- algorithm=algorithm,
120
- leaf_size=leaf_size,
121
- metric=metric,
122
- p=p,
123
- metric_params=metric_params,
124
- n_jobs=n_jobs,
125
- )
126
-
127
- def fit(self, X, y=None):
128
- self._fit_validation(X, y)
129
- dispatch(
130
- self,
131
- "fit",
132
- {
133
- "onedal": self.__class__._onedal_fit,
134
- "sklearn": sklearn_NearestNeighbors.fit,
135
- },
136
- X,
137
- None,
138
- )
139
- return self
140
-
141
- @wrap_output_data
142
- def kneighbors(self, X=None, n_neighbors=None, return_distance=True):
143
- check_is_fitted(self)
144
- if sklearn_check_version("1.0") and X is not None:
145
- self._check_feature_names(X, reset=False)
146
- return dispatch(
147
- self,
148
- "kneighbors",
149
- {
150
- "onedal": self.__class__._onedal_kneighbors,
151
- "sklearn": sklearn_NearestNeighbors.kneighbors,
152
- },
153
- X,
154
- n_neighbors=n_neighbors,
155
- return_distance=return_distance,
156
- )
157
-
158
- @wrap_output_data
159
- def radius_neighbors(
160
- self, X=None, radius=None, return_distance=True, sort_results=False
161
- ):
162
- _onedal_estimator = getattr(self, "_onedal_estimator", None)
163
-
164
- if (
165
- _onedal_estimator is not None
166
- or getattr(self, "_tree", 0) is None
167
- and self._fit_method == "kd_tree"
168
- ):
169
- if sklearn_check_version("0.24"):
170
- sklearn_NearestNeighbors.fit(self, self._fit_X, getattr(self, "_y", None))
171
- else:
172
- sklearn_NearestNeighbors.fit(self, self._fit_X)
173
- if sklearn_check_version("0.22"):
174
- result = sklearn_NearestNeighbors.radius_neighbors(
175
- self, X, radius, return_distance, sort_results
176
- )
177
- else:
178
- result = sklearn_NearestNeighbors.radius_neighbors(
179
- self, X, radius, return_distance
180
- )
181
-
182
- return result
183
-
184
- def _onedal_fit(self, X, y=None, queue=None):
185
- onedal_params = {
186
- "n_neighbors": self.n_neighbors,
187
- "algorithm": self.algorithm,
188
- "metric": self.effective_metric_,
189
- "p": self.effective_metric_params_["p"],
190
- }
191
-
192
- try:
193
- requires_y = self._get_tags()["requires_y"]
194
- except KeyError:
195
- requires_y = False
196
-
197
- self._onedal_estimator = onedal_NearestNeighbors(**onedal_params)
198
- self._onedal_estimator.requires_y = requires_y
199
- self._onedal_estimator.effective_metric_ = self.effective_metric_
200
- self._onedal_estimator.effective_metric_params_ = self.effective_metric_params_
201
- self._onedal_estimator.fit(X, y, queue=queue)
202
-
203
- self._save_attributes()
204
-
205
- def _onedal_predict(self, X, queue=None):
206
- return self._onedal_estimator.predict(X, queue=queue)
207
-
208
- def _onedal_kneighbors(
209
- self, X=None, n_neighbors=None, return_distance=True, queue=None
210
- ):
211
- return self._onedal_estimator.kneighbors(
212
- X, n_neighbors, return_distance, queue=queue
213
- )
214
-
215
- def _save_attributes(self):
216
- self.classes_ = self._onedal_estimator.classes_
217
- self.n_features_in_ = self._onedal_estimator.n_features_in_
218
- self.n_samples_fit_ = self._onedal_estimator.n_samples_fit_
219
- self._fit_X = self._onedal_estimator._fit_X
220
- self._fit_method = self._onedal_estimator._fit_method
221
- self._tree = self._onedal_estimator._tree
1
+ # ==============================================================================
2
+ # Copyright 2021 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 sklearn.neighbors._regression import (
18
+ KNeighborsRegressor as sklearn_KNeighborsRegressor,
19
+ )
20
+ from sklearn.neighbors._unsupervised import NearestNeighbors as sklearn_NearestNeighbors
21
+ from sklearn.utils.validation import _deprecate_positional_args, check_is_fitted
22
+
23
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
24
+ from daal4py.sklearn._utils import sklearn_check_version
25
+ from onedal.neighbors import KNeighborsRegressor as onedal_KNeighborsRegressor
26
+
27
+ from .._device_offload import dispatch, wrap_output_data
28
+ from .common import KNeighborsDispatchingBase
29
+
30
+
31
+ @control_n_jobs(decorated_methods=["fit", "predict", "kneighbors"])
32
+ class KNeighborsRegressor(sklearn_KNeighborsRegressor, KNeighborsDispatchingBase):
33
+ __doc__ = sklearn_KNeighborsRegressor.__doc__
34
+ if sklearn_check_version("1.2"):
35
+ _parameter_constraints: dict = {
36
+ **sklearn_KNeighborsRegressor._parameter_constraints
37
+ }
38
+
39
+ if sklearn_check_version("1.0"):
40
+
41
+ def __init__(
42
+ self,
43
+ n_neighbors=5,
44
+ *,
45
+ weights="uniform",
46
+ algorithm="auto",
47
+ leaf_size=30,
48
+ p=2,
49
+ metric="minkowski",
50
+ metric_params=None,
51
+ n_jobs=None,
52
+ ):
53
+ super().__init__(
54
+ n_neighbors=n_neighbors,
55
+ weights=weights,
56
+ algorithm=algorithm,
57
+ leaf_size=leaf_size,
58
+ metric=metric,
59
+ p=p,
60
+ metric_params=metric_params,
61
+ n_jobs=n_jobs,
62
+ )
63
+
64
+ else:
65
+
66
+ @_deprecate_positional_args
67
+ def __init__(
68
+ self,
69
+ n_neighbors=5,
70
+ *,
71
+ weights="uniform",
72
+ algorithm="auto",
73
+ leaf_size=30,
74
+ p=2,
75
+ metric="minkowski",
76
+ metric_params=None,
77
+ n_jobs=None,
78
+ **kwargs,
79
+ ):
80
+ super().__init__(
81
+ n_neighbors=n_neighbors,
82
+ weights=weights,
83
+ algorithm=algorithm,
84
+ leaf_size=leaf_size,
85
+ metric=metric,
86
+ p=p,
87
+ metric_params=metric_params,
88
+ n_jobs=n_jobs,
89
+ **kwargs,
90
+ )
91
+
92
+ def fit(self, X, y):
93
+ dispatch(
94
+ self,
95
+ "fit",
96
+ {
97
+ "onedal": self.__class__._onedal_fit,
98
+ "sklearn": sklearn_KNeighborsRegressor.fit,
99
+ },
100
+ X,
101
+ y,
102
+ )
103
+ return self
104
+
105
+ @wrap_output_data
106
+ def predict(self, X):
107
+ check_is_fitted(self)
108
+ if sklearn_check_version("1.0"):
109
+ self._check_feature_names(X, reset=False)
110
+ return dispatch(
111
+ self,
112
+ "predict",
113
+ {
114
+ "onedal": self.__class__._onedal_predict,
115
+ "sklearn": sklearn_KNeighborsRegressor.predict,
116
+ },
117
+ X,
118
+ )
119
+
120
+ @wrap_output_data
121
+ def kneighbors(self, X=None, n_neighbors=None, return_distance=True):
122
+ check_is_fitted(self)
123
+ if sklearn_check_version("1.0") and X is not None:
124
+ self._check_feature_names(X, reset=False)
125
+ return dispatch(
126
+ self,
127
+ "kneighbors",
128
+ {
129
+ "onedal": self.__class__._onedal_kneighbors,
130
+ "sklearn": sklearn_KNeighborsRegressor.kneighbors,
131
+ },
132
+ X,
133
+ n_neighbors=n_neighbors,
134
+ return_distance=return_distance,
135
+ )
136
+
137
+ @wrap_output_data
138
+ def radius_neighbors(
139
+ self, X=None, radius=None, return_distance=True, sort_results=False
140
+ ):
141
+ _onedal_estimator = getattr(self, "_onedal_estimator", None)
142
+
143
+ if (
144
+ _onedal_estimator is not None
145
+ or getattr(self, "_tree", 0) is None
146
+ and self._fit_method == "kd_tree"
147
+ ):
148
+ sklearn_NearestNeighbors.fit(self, self._fit_X, getattr(self, "_y", None))
149
+ result = sklearn_NearestNeighbors.radius_neighbors(
150
+ self, X, radius, return_distance, sort_results
151
+ )
152
+
153
+ return result
154
+
155
+ def _onedal_fit(self, X, y, queue=None):
156
+ onedal_params = {
157
+ "n_neighbors": self.n_neighbors,
158
+ "weights": self.weights,
159
+ "algorithm": self.algorithm,
160
+ "metric": self.effective_metric_,
161
+ "p": self.effective_metric_params_["p"],
162
+ }
163
+
164
+ try:
165
+ requires_y = self._get_tags()["requires_y"]
166
+ except KeyError:
167
+ requires_y = False
168
+
169
+ self._onedal_estimator = onedal_KNeighborsRegressor(**onedal_params)
170
+ self._onedal_estimator.requires_y = requires_y
171
+ self._onedal_estimator.effective_metric_ = self.effective_metric_
172
+ self._onedal_estimator.effective_metric_params_ = self.effective_metric_params_
173
+ self._onedal_estimator.fit(X, y, queue=queue)
174
+
175
+ self._save_attributes()
176
+
177
+ def _onedal_predict(self, X, queue=None):
178
+ return self._onedal_estimator.predict(X, queue=queue)
179
+
180
+ def _onedal_kneighbors(
181
+ self, X=None, n_neighbors=None, return_distance=True, queue=None
182
+ ):
183
+ return self._onedal_estimator.kneighbors(
184
+ X, n_neighbors, return_distance, queue=queue
185
+ )
186
+
187
+ def _save_attributes(self):
188
+ self.n_features_in_ = self._onedal_estimator.n_features_in_
189
+ self.n_samples_fit_ = self._onedal_estimator.n_samples_fit_
190
+ self._fit_X = self._onedal_estimator._fit_X
191
+ self._y = self._onedal_estimator._y
192
+ self._fit_method = self._onedal_estimator._fit_method
193
+ self._tree = self._onedal_estimator._tree
194
+
195
+ fit.__doc__ = sklearn_KNeighborsRegressor.__doc__
196
+ predict.__doc__ = sklearn_KNeighborsRegressor.predict.__doc__
197
+ kneighbors.__doc__ = sklearn_KNeighborsRegressor.kneighbors.__doc__
198
+ radius_neighbors.__doc__ = sklearn_NearestNeighbors.radius_neighbors.__doc__
@@ -0,0 +1,146 @@
1
+ # ===============================================================================
2
+ # Copyright 2021 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 sklearn.neighbors._unsupervised import NearestNeighbors as sklearn_NearestNeighbors
18
+ from sklearn.utils.validation import _deprecate_positional_args, check_is_fitted
19
+
20
+ from daal4py.sklearn._n_jobs_support import control_n_jobs
21
+ from daal4py.sklearn._utils import sklearn_check_version
22
+ from onedal.neighbors import NearestNeighbors as onedal_NearestNeighbors
23
+
24
+ from .._device_offload import dispatch, wrap_output_data
25
+ from .common import KNeighborsDispatchingBase
26
+
27
+
28
+ @control_n_jobs(decorated_methods=["fit", "kneighbors"])
29
+ class NearestNeighbors(sklearn_NearestNeighbors, KNeighborsDispatchingBase):
30
+ __doc__ = sklearn_NearestNeighbors.__doc__
31
+ if sklearn_check_version("1.2"):
32
+ _parameter_constraints: dict = {**sklearn_NearestNeighbors._parameter_constraints}
33
+
34
+ @_deprecate_positional_args
35
+ def __init__(
36
+ self,
37
+ n_neighbors=5,
38
+ radius=1.0,
39
+ algorithm="auto",
40
+ leaf_size=30,
41
+ metric="minkowski",
42
+ p=2,
43
+ metric_params=None,
44
+ n_jobs=None,
45
+ ):
46
+ super().__init__(
47
+ n_neighbors=n_neighbors,
48
+ radius=radius,
49
+ algorithm=algorithm,
50
+ leaf_size=leaf_size,
51
+ metric=metric,
52
+ p=p,
53
+ metric_params=metric_params,
54
+ n_jobs=n_jobs,
55
+ )
56
+
57
+ def fit(self, X, y=None):
58
+ dispatch(
59
+ self,
60
+ "fit",
61
+ {
62
+ "onedal": self.__class__._onedal_fit,
63
+ "sklearn": sklearn_NearestNeighbors.fit,
64
+ },
65
+ X,
66
+ None,
67
+ )
68
+ return self
69
+
70
+ @wrap_output_data
71
+ def kneighbors(self, X=None, n_neighbors=None, return_distance=True):
72
+ check_is_fitted(self)
73
+ if sklearn_check_version("1.0") and X is not None:
74
+ self._check_feature_names(X, reset=False)
75
+ return dispatch(
76
+ self,
77
+ "kneighbors",
78
+ {
79
+ "onedal": self.__class__._onedal_kneighbors,
80
+ "sklearn": sklearn_NearestNeighbors.kneighbors,
81
+ },
82
+ X,
83
+ n_neighbors=n_neighbors,
84
+ return_distance=return_distance,
85
+ )
86
+
87
+ @wrap_output_data
88
+ def radius_neighbors(
89
+ self, X=None, radius=None, return_distance=True, sort_results=False
90
+ ):
91
+ _onedal_estimator = getattr(self, "_onedal_estimator", None)
92
+
93
+ if (
94
+ _onedal_estimator is not None
95
+ or getattr(self, "_tree", 0) is None
96
+ and self._fit_method == "kd_tree"
97
+ ):
98
+ sklearn_NearestNeighbors.fit(self, self._fit_X, getattr(self, "_y", None))
99
+ result = sklearn_NearestNeighbors.radius_neighbors(
100
+ self, X, radius, return_distance, sort_results
101
+ )
102
+
103
+ return result
104
+
105
+ def _onedal_fit(self, X, y=None, queue=None):
106
+ onedal_params = {
107
+ "n_neighbors": self.n_neighbors,
108
+ "algorithm": self.algorithm,
109
+ "metric": self.effective_metric_,
110
+ "p": self.effective_metric_params_["p"],
111
+ }
112
+
113
+ try:
114
+ requires_y = self._get_tags()["requires_y"]
115
+ except KeyError:
116
+ requires_y = False
117
+
118
+ self._onedal_estimator = onedal_NearestNeighbors(**onedal_params)
119
+ self._onedal_estimator.requires_y = requires_y
120
+ self._onedal_estimator.effective_metric_ = self.effective_metric_
121
+ self._onedal_estimator.effective_metric_params_ = self.effective_metric_params_
122
+ self._onedal_estimator.fit(X, y, queue=queue)
123
+
124
+ self._save_attributes()
125
+
126
+ def _onedal_predict(self, X, queue=None):
127
+ return self._onedal_estimator.predict(X, queue=queue)
128
+
129
+ def _onedal_kneighbors(
130
+ self, X=None, n_neighbors=None, return_distance=True, queue=None
131
+ ):
132
+ return self._onedal_estimator.kneighbors(
133
+ X, n_neighbors, return_distance, queue=queue
134
+ )
135
+
136
+ def _save_attributes(self):
137
+ self.classes_ = self._onedal_estimator.classes_
138
+ self.n_features_in_ = self._onedal_estimator.n_features_in_
139
+ self.n_samples_fit_ = self._onedal_estimator.n_samples_fit_
140
+ self._fit_X = self._onedal_estimator._fit_X
141
+ self._fit_method = self._onedal_estimator._fit_method
142
+ self._tree = self._onedal_estimator._tree
143
+
144
+ fit.__doc__ = sklearn_NearestNeighbors.__doc__
145
+ kneighbors.__doc__ = sklearn_NearestNeighbors.kneighbors.__doc__
146
+ radius_neighbors.__doc__ = sklearn_NearestNeighbors.radius_neighbors.__doc__
@@ -14,7 +14,6 @@
14
14
  # limitations under the License.
15
15
  # ===============================================================================
16
16
 
17
- import numpy as np
18
17
  import pytest
19
18
  from numpy.testing import assert_allclose
20
19
 
@@ -33,7 +32,6 @@ from sklearnex.neighbors import (
33
32
 
34
33
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
35
34
  def test_sklearnex_import_knn_classifier(dataframe, queue):
36
-
37
35
  X = _convert_to_dataframe([[0], [1], [2], [3]], sycl_queue=queue, target_df=dataframe)
38
36
  y = _convert_to_dataframe([0, 0, 1, 1], sycl_queue=queue, target_df=dataframe)
39
37
  neigh = KNeighborsClassifier(n_neighbors=3).fit(X, y)
@@ -45,7 +43,6 @@ def test_sklearnex_import_knn_classifier(dataframe, queue):
45
43
 
46
44
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
47
45
  def test_sklearnex_import_knn_regression(dataframe, queue):
48
-
49
46
  X = _convert_to_dataframe([[0], [1], [2], [3]], sycl_queue=queue, target_df=dataframe)
50
47
  y = _convert_to_dataframe([0, 0, 1, 1], sycl_queue=queue, target_df=dataframe)
51
48
  neigh = KNeighborsRegressor(n_neighbors=2).fit(X, y)
@@ -61,7 +58,6 @@ def test_sklearnex_import_knn_regression(dataframe, queue):
61
58
  [LocalOutlierFactor, NearestNeighbors],
62
59
  )
63
60
  def test_sklearnex_kneighbors(estimator, dataframe, queue):
64
-
65
61
  X = [[0, 0, 2], [1, 0, 0], [0, 0, 1]]
66
62
  X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
67
63
  test = _convert_to_dataframe([[0, 0, 1.3]], sycl_queue=queue, target_df=dataframe)
@@ -74,7 +70,6 @@ def test_sklearnex_kneighbors(estimator, dataframe, queue):
74
70
 
75
71
  @pytest.mark.parametrize("dataframe,queue", get_dataframes_and_queues())
76
72
  def test_sklearnex_import_lof(dataframe, queue):
77
-
78
73
  X = [[7, 7, 7], [1, 0, 0], [0, 0, 1], [0, 0, 1]]
79
74
  X = _convert_to_dataframe(X, sycl_queue=queue, target_df=dataframe)
80
75
  lof = LocalOutlierFactor(n_neighbors=2)
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
  # ==============================================================================
16
16
 
17
- __all__ = ["cluster", "covariance", "decomposition"]
17
+ __all__ = ["cluster", "covariance"]