scikit-learn-intelex 2025.5.0__py313-none-win_amd64.whl → 2025.6.0__py313-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-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/_daal4py.cp313-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mb/gbt_convertors.py +119 -52
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mb/tree_based_builders.py +31 -16
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mpi_transceiver.cp313-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/dispatcher.py +1 -1
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_device_offload.py +11 -3
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_onedal_py_dpc.cp313-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_onedal_py_host.cp313-win_amd64.pyd +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_device_selection.py +2 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_array_api.py +11 -1
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_sycl_queue_manager.py +16 -2
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +194 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_utils.py +12 -45
- scikit_learn_intelex-2025.6.0.data/data/Lib/site-packages/sklearnex/base.py +109 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/basic_statistics.py +3 -2
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/incremental_basic_statistics.py +3 -6
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/dbscan.py +4 -3
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/k_means.py +18 -13
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/incremental_covariance.py +10 -5
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/pca.py +2 -3
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/_forest.py +5 -4
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/coordinate_descent.py +12 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_linear.py +2 -2
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/incremental_ridge.py +3 -8
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/linear.py +3 -7
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/logistic_regression.py +11 -13
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/ridge.py +3 -2
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/t_sne.py +6 -3
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/common.py +3 -2
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/covariance.py +3 -6
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/incremental_pca.py +3 -6
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/_common.py +3 -3
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvc.py +1 -1
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/nusvr.py +1 -1
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svc.py +1 -1
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/svr.py +1 -1
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_common.py +25 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_config.py +62 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_memory_usage.py +3 -2
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_patching.py +89 -60
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_run_to_run_stability.py +7 -0
- {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/METADATA +2 -3
- scikit_learn_intelex-2025.6.0.dist-info/RECORD +257 -0
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/daal4py/doc/third-party-programs.txt +0 -424
- scikit_learn_intelex-2025.5.0.data/data/Lib/site-packages/sklearnex/_device_offload.py +0 -143
- scikit_learn_intelex-2025.5.0.dist-info/RECORD +0 -257
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/__main__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mb/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/mb/logistic_regression_builders.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/_utils.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/k_means.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/decomposition/_pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/AdaBoostClassifier.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/GBTDAAL.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/_forest.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/ensemble/tests/test_decision_forest.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_linear.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/_ridge.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/coordinate_descent.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/linear.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_loss.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/logistic_path.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/ridge.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/manifold/_t_sne.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_pairwise.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/metrics/_ranking.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/_split.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/model_selection/tests/test_split.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/_models_info.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/test_patching.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/monkeypatch/tests/utils/_launch_algorithms.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_base.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_classification.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/neighbors/tests/test_kneighbors.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/base.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/tests/test_utils.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/daal4py/sklearn/utils/validation.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/_config.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/basic_statistics/tests/utils.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/cluster/tests/test_kmeans_init.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_backend.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_estimator_checks.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/_mixin.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/common/tests/test_sycl.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/_data_conversion.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/common.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/datatypes/tests/test_data.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/ensemble/tests/test_random_forest.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_incremental_ridge_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_linear_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/neighbors.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/neighbors/tests/test_knn_classification.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/get_tree.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/primitives/tests/test_kernel_functions.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/svm.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_csr_svm.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvc.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_nusvr.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svc.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/svm/tests/test_svr.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/test_common.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/tests/utils/_dataframes_support.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/_dpep_helpers.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/onedal/utils/validation.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/__main__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/_config.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/basic_statistics/tests/test_incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_dbscan.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/cluster/tests/test_kmeans.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/conftest.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/covariance/tests/test_incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/decomposition/tests/test_pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/doc/third-party-programs.txt +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/ensemble/tests/test_forest.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/__main__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/glob/dispatcher.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_linear.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_incremental_ridge.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_linear.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_logreg.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/linear_model/tests/test_ridge.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/manifold/tests/test_tsne.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/pairwise.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/ranking.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/metrics/tests/test_metrics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/split.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/model_selection/tests/test_model_selection.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/_lof.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_classification.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/knn_unsupervised.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/neighbors/tests/test_neighbors.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/covariance/tests/test_covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/preview/decomposition/tests/test_incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/incremental_basic_statistics.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_basic_statistics_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/basic_statistics/tests/test_incremental_basic_statistics_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/dbscan.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/kmeans.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_dbscan_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/cluster/tests/test_kmeans_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/incremental_covariance.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/covariance/tests/test_incremental_covariance_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/incremental_pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/pca.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_incremental_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/decomposition/tests/test_pca_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/forest.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/ensemble/tests/test_forest_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/incremental_linear_model.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/linear_model.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/logistic_regression.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_incremental_linear_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_linear_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/linear_model/tests/test_logistic_regression_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/spmd/neighbors/tests/test_neighbors_spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/svm/tests/test_svm.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_hyperparameters.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_monkeypatch.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_n_jobs_support.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/test_parallel.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/base.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/tests/utils/spmd.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/__init__.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/_array_api.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/parallel.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/tests/test_validation.py +0 -0
- {scikit_learn_intelex-2025.5.0.data → scikit_learn_intelex-2025.6.0.data}/data/Lib/site-packages/sklearnex/utils/validation.py +0 -0
- {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/LICENSE.txt +0 -0
- {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/WHEEL +0 -0
- {scikit_learn_intelex-2025.5.0.dist-info → scikit_learn_intelex-2025.6.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,194 @@
|
|
|
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 collections.abc import Callable
|
|
18
|
+
from functools import wraps
|
|
19
|
+
from typing import Any, Union
|
|
20
|
+
|
|
21
|
+
from onedal._device_offload import _copy_to_usm, _transfer_to_host
|
|
22
|
+
from onedal.utils import _sycl_queue_manager as QM
|
|
23
|
+
from onedal.utils._array_api import _asarray, _is_numpy_namespace
|
|
24
|
+
from onedal.utils._dpep_helpers import dpnp_available
|
|
25
|
+
|
|
26
|
+
if dpnp_available:
|
|
27
|
+
import dpnp
|
|
28
|
+
from onedal.utils._array_api import _convert_to_dpnp
|
|
29
|
+
|
|
30
|
+
from ._config import config_context, get_config, set_config
|
|
31
|
+
from ._utils import PatchingConditionsChain, get_tags
|
|
32
|
+
from .base import oneDALEstimator
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _get_backend(
|
|
36
|
+
obj: type[oneDALEstimator], method_name: str, *data
|
|
37
|
+
) -> tuple[Union[bool, None], PatchingConditionsChain]:
|
|
38
|
+
"""This function verifies the hardware conditions, data characteristics, and
|
|
39
|
+
estimator parameters necessary for offloading computation to oneDAL. The status
|
|
40
|
+
of this patching is returned as a PatchingConditionsChain object along with a
|
|
41
|
+
boolean flag signaling whether the computation can be offloaded to oneDAL or not.
|
|
42
|
+
It is assumed that the queue (which determined what hardware to possibly use for
|
|
43
|
+
oneDAL) has been previously and extensively collected (i.e. the data has already
|
|
44
|
+
been checked using onedal's SyclQueueManager for queues)."""
|
|
45
|
+
queue = QM.get_global_queue()
|
|
46
|
+
cpu_device = queue is None or getattr(queue.sycl_device, "is_cpu", True)
|
|
47
|
+
gpu_device = queue is not None and getattr(queue.sycl_device, "is_gpu", False)
|
|
48
|
+
|
|
49
|
+
if cpu_device:
|
|
50
|
+
patching_status = obj._onedal_cpu_supported(method_name, *data)
|
|
51
|
+
return patching_status.get_status(), patching_status
|
|
52
|
+
|
|
53
|
+
if gpu_device:
|
|
54
|
+
patching_status = obj._onedal_gpu_supported(method_name, *data)
|
|
55
|
+
if (
|
|
56
|
+
not patching_status.get_status()
|
|
57
|
+
and (config := get_config())["allow_fallback_to_host"]
|
|
58
|
+
):
|
|
59
|
+
QM.fallback_to_host()
|
|
60
|
+
return None, patching_status
|
|
61
|
+
return patching_status.get_status(), patching_status
|
|
62
|
+
|
|
63
|
+
raise RuntimeError("Device support is not implemented for the supplied data type.")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
if "array_api_dispatch" in get_config():
|
|
67
|
+
_array_api_offload = lambda: get_config()["array_api_dispatch"]
|
|
68
|
+
else:
|
|
69
|
+
_array_api_offload = lambda: False
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def dispatch(
|
|
73
|
+
obj: type[oneDALEstimator],
|
|
74
|
+
method_name: str,
|
|
75
|
+
branches: dict[Callable, Callable],
|
|
76
|
+
*args,
|
|
77
|
+
**kwargs,
|
|
78
|
+
) -> Any:
|
|
79
|
+
"""Dispatch object method call to oneDAL if conditionally possible.
|
|
80
|
+
Depending on support conditions, oneDAL will be called, otherwise it will
|
|
81
|
+
fall back to calling scikit-learn. Dispatching to oneDAL can be influenced
|
|
82
|
+
by the 'use_raw_input' or 'allow_fallback_to_host' config parameters.
|
|
83
|
+
|
|
84
|
+
Parameters
|
|
85
|
+
----------
|
|
86
|
+
obj : object
|
|
87
|
+
sklearnex object which inherits from oneDALEstimator and contains
|
|
88
|
+
``onedal_cpu_supported`` and ``onedal_gpu_supported`` methods which
|
|
89
|
+
evaluate oneDAL support.
|
|
90
|
+
|
|
91
|
+
method_name : string
|
|
92
|
+
name of method to be evaluated for oneDAL support
|
|
93
|
+
|
|
94
|
+
branches : dict
|
|
95
|
+
dictionary containing functions to be called. Only keys 'sklearn' and
|
|
96
|
+
'onedal' are used which should contain the relevant scikit-learn and
|
|
97
|
+
onedal object methods respectively. All functions should accept the
|
|
98
|
+
inputs from *args and **kwargs. Additionally, the onedal object method
|
|
99
|
+
must accept a 'queue' keyword.
|
|
100
|
+
|
|
101
|
+
*args : tuple
|
|
102
|
+
arguments to be supplied to the dispatched method
|
|
103
|
+
|
|
104
|
+
**kwargs : dict
|
|
105
|
+
keyword arguments to be supplied to the dispatched method
|
|
106
|
+
|
|
107
|
+
Returns
|
|
108
|
+
-------
|
|
109
|
+
unknown : object
|
|
110
|
+
Returned object dependent on the supplied branches. Implicitly the returned
|
|
111
|
+
object types should match for the sklearn and onedal object methods.
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
if get_config()["use_raw_input"]:
|
|
115
|
+
return branches["onedal"](obj, *args, **kwargs)
|
|
116
|
+
|
|
117
|
+
# Determine if array_api dispatching is enabled, and if estimator is capable
|
|
118
|
+
onedal_array_api = _array_api_offload() and get_tags(obj).onedal_array_api
|
|
119
|
+
sklearn_array_api = _array_api_offload() and get_tags(obj).array_api_support
|
|
120
|
+
|
|
121
|
+
# backend can only be a boolean or None, None signifies an unverified backend
|
|
122
|
+
backend: "bool | None" = None
|
|
123
|
+
|
|
124
|
+
# config context needs to be saved, as the sycl_queue_manager interacts with
|
|
125
|
+
# target_offload, which can regenerate a GPU queue later on. Therefore if a
|
|
126
|
+
# fallback occurs, then the state of target_offload must be set to default
|
|
127
|
+
# so that later use of get_global_queue only sends to host. We must modify
|
|
128
|
+
# the target offload settings, but we must also set the original value at the
|
|
129
|
+
# end, hence the need of a contextmanager.
|
|
130
|
+
with QM.manage_global_queue(None, *args):
|
|
131
|
+
if onedal_array_api:
|
|
132
|
+
backend, patching_status = _get_backend(obj, method_name, *args)
|
|
133
|
+
if backend:
|
|
134
|
+
queue = QM.get_global_queue()
|
|
135
|
+
patching_status.write_log(queue=queue, transferred_to_host=False)
|
|
136
|
+
return branches["onedal"](obj, *args, **kwargs, queue=queue)
|
|
137
|
+
elif sklearn_array_api and backend is False:
|
|
138
|
+
patching_status.write_log(transferred_to_host=False)
|
|
139
|
+
return branches["sklearn"](obj, *args, **kwargs)
|
|
140
|
+
|
|
141
|
+
# move data to host because of multiple reasons: array_api fallback to host,
|
|
142
|
+
# non array_api supporing oneDAL code, issues with usm support in sklearn.
|
|
143
|
+
has_usm_data_for_args, hostargs = _transfer_to_host(*args)
|
|
144
|
+
has_usm_data_for_kwargs, hostvalues = _transfer_to_host(*kwargs.values())
|
|
145
|
+
|
|
146
|
+
hostkwargs = dict(zip(kwargs.keys(), hostvalues))
|
|
147
|
+
has_usm_data = has_usm_data_for_args or has_usm_data_for_kwargs
|
|
148
|
+
|
|
149
|
+
while backend is None:
|
|
150
|
+
backend, patching_status = _get_backend(obj, method_name, *hostargs)
|
|
151
|
+
|
|
152
|
+
if backend:
|
|
153
|
+
queue = QM.get_global_queue()
|
|
154
|
+
patching_status.write_log(queue=queue, transferred_to_host=False)
|
|
155
|
+
return branches["onedal"](obj, *hostargs, **hostkwargs, queue=queue)
|
|
156
|
+
else:
|
|
157
|
+
if sklearn_array_api and not has_usm_data:
|
|
158
|
+
# dpnp fallback is not handled properly yet.
|
|
159
|
+
patching_status.write_log(transferred_to_host=False)
|
|
160
|
+
return branches["sklearn"](obj, *args, **kwargs)
|
|
161
|
+
else:
|
|
162
|
+
patching_status.write_log()
|
|
163
|
+
return branches["sklearn"](obj, *hostargs, **hostkwargs)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def wrap_output_data(func: Callable) -> Callable:
|
|
167
|
+
"""
|
|
168
|
+
Converts and moves the output arrays of the decorated function
|
|
169
|
+
to match the input array type and device.
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
@wraps(func)
|
|
173
|
+
def wrapper(self, *args, **kwargs) -> Any:
|
|
174
|
+
result = func(self, *args, **kwargs)
|
|
175
|
+
if not (len(args) == 0 and len(kwargs) == 0):
|
|
176
|
+
data = (*args, *kwargs.values())
|
|
177
|
+
|
|
178
|
+
usm_iface = getattr(data[0], "__sycl_usm_array_interface__", None)
|
|
179
|
+
if usm_iface is not None:
|
|
180
|
+
result = _copy_to_usm(usm_iface["syclobj"], result)
|
|
181
|
+
if dpnp_available and isinstance(data[0], dpnp.ndarray):
|
|
182
|
+
result = _convert_to_dpnp(result)
|
|
183
|
+
return result
|
|
184
|
+
|
|
185
|
+
if get_config().get("transform_output") in ("default", None):
|
|
186
|
+
input_array_api = getattr(data[0], "__array_namespace__", lambda: None)()
|
|
187
|
+
if input_array_api and not _is_numpy_namespace(input_array_api):
|
|
188
|
+
input_array_api_device = data[0].device
|
|
189
|
+
result = _asarray(
|
|
190
|
+
result, input_array_api, device=input_array_api_device
|
|
191
|
+
)
|
|
192
|
+
return result
|
|
193
|
+
|
|
194
|
+
return wrapper
|
|
@@ -28,16 +28,19 @@ from daal4py.sklearn._utils import (
|
|
|
28
28
|
)
|
|
29
29
|
from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
30
30
|
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
# Not an ideal solution, but this allows for access to the outputs of older
|
|
32
|
+
# sklearnex tag dictionaries in a way similar to the sklearn >=1.6 tag
|
|
33
|
+
# dataclasses via duck-typing. At some point this must be removed for direct
|
|
34
|
+
# use of get_tags in all circumstances, dictated by sklearn support. This is
|
|
35
|
+
# implemented in a way to minimally impact performance.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
if sklearn_check_version("1.6"):
|
|
39
|
+
from sklearn.utils import get_tags
|
|
39
40
|
else:
|
|
40
|
-
|
|
41
|
+
from sklearn.base import BaseEstimator
|
|
42
|
+
|
|
43
|
+
get_tags = lambda obj: type("Tags", (), BaseEstimator._get_tags(obj))
|
|
41
44
|
|
|
42
45
|
|
|
43
46
|
class PatchingConditionsChain(daal4py_PatchingConditionsChain):
|
|
@@ -142,20 +145,6 @@ def register_hyperparameters(hyperparameters_map):
|
|
|
142
145
|
return decorator
|
|
143
146
|
|
|
144
147
|
|
|
145
|
-
# This abstract class is meant to generate a clickable doc link for classses
|
|
146
|
-
# in sklearnex that are not part of base scikit-learn.
|
|
147
|
-
class ExtensionEstimator(BaseForHTMLDocLink):
|
|
148
|
-
@property
|
|
149
|
-
def _doc_link_module(self) -> str:
|
|
150
|
-
return "sklearnex"
|
|
151
|
-
|
|
152
|
-
@property
|
|
153
|
-
def _doc_link_template(self) -> str:
|
|
154
|
-
module_path, _ = self.__class__.__module__.rsplit(".", 1)
|
|
155
|
-
class_name = self.__class__.__name__
|
|
156
|
-
return f"https://uxlfoundation.github.io/scikit-learn-intelex/latest/non-scikit-algorithms.html#{module_path}.{class_name}"
|
|
157
|
-
|
|
158
|
-
|
|
159
148
|
def _add_inc_serialization_note(class_docstrings: str) -> str:
|
|
160
149
|
"""Adds a small note note about serialization for extension estimators that are incremental.
|
|
161
150
|
The class docstrings should leave a placeholder '%incremental_serialization_note%' inside
|
|
@@ -179,25 +168,3 @@ the policy is not saved in serialized data."""
|
|
|
179
168
|
return class_docstrings.replace(
|
|
180
169
|
r"%incremental_serialization_note%", inc_serialization_note
|
|
181
170
|
)
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
# This abstract class is meant to generate a clickable doc link for classses
|
|
185
|
-
# in sklearnex that have counterparts in scikit-learn.
|
|
186
|
-
class PatchableEstimator(BaseForHTMLDocLink):
|
|
187
|
-
@property
|
|
188
|
-
def _doc_link_module(self) -> str:
|
|
189
|
-
return "sklearnex"
|
|
190
|
-
|
|
191
|
-
@property
|
|
192
|
-
def _doc_link_template(self) -> str:
|
|
193
|
-
if re.search(r"^\d\.\d\.\d$", sklearn.__version__):
|
|
194
|
-
sklearn_version_parts = sklearn.__version__.split(".")
|
|
195
|
-
doc_version_url = sklearn_version_parts[0] + "." + sklearn_version_parts[1]
|
|
196
|
-
else:
|
|
197
|
-
doc_version_url = "stable"
|
|
198
|
-
module_path, _ = self.__class__.__module__.rsplit(".", 1)
|
|
199
|
-
module_path = re.sub("sklearnex", "sklearn", module_path)
|
|
200
|
-
class_name = self.__class__.__name__
|
|
201
|
-
# for TSNE, which re-uses daal4py
|
|
202
|
-
module_path = re.sub(r"daal4py\.", "", module_path)
|
|
203
|
-
return f"https://scikit-learn.org/{doc_version_url}/modules/generated/{module_path}.{class_name}.html"
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# ===============================================================================
|
|
2
|
+
# Copyright contributors to the oneDAL project
|
|
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.base import BaseEstimator
|
|
18
|
+
|
|
19
|
+
from daal4py.sklearn._utils import sklearn_check_version
|
|
20
|
+
|
|
21
|
+
if sklearn_check_version("1.6"):
|
|
22
|
+
from dataclasses import dataclass, fields
|
|
23
|
+
|
|
24
|
+
from sklearn.utils import Tags as _sklearn_Tags
|
|
25
|
+
|
|
26
|
+
@dataclass
|
|
27
|
+
class Tags(_sklearn_Tags):
|
|
28
|
+
onedal_array_api: bool = False
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class oneDALEstimator:
|
|
32
|
+
"""Inherited class for all oneDAL-based estimators.
|
|
33
|
+
|
|
34
|
+
This class must be inherited before any scikit-learn estimator
|
|
35
|
+
classes (i.e. those which inherit from scikit-learn's BaseEstimator).
|
|
36
|
+
|
|
37
|
+
It enables:
|
|
38
|
+
|
|
39
|
+
- dispatching to oneDAL
|
|
40
|
+
- html documentation
|
|
41
|
+
|
|
42
|
+
Notes
|
|
43
|
+
-----
|
|
44
|
+
Sklearnex-only estimators must inherit this class directly before
|
|
45
|
+
BaseEstimator in order to properly render documentation. Other
|
|
46
|
+
sklearn classes like Mixins can be before this class in the MRO
|
|
47
|
+
without any impact on functionality.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
if sklearn_check_version("1.6"):
|
|
51
|
+
# Starting in sklearn 1.6, _more_tags is deprecated. An oneDALEstimator
|
|
52
|
+
# is defined to handle the various versioning issues with the tags and
|
|
53
|
+
# with the ongoing rollout of sklearn's array_api support. This will make
|
|
54
|
+
# maintenance easier, and centralize tag changes to a single location.
|
|
55
|
+
|
|
56
|
+
def __sklearn_tags__(self) -> Tags:
|
|
57
|
+
# This convention is unnecessarily restrictive with more performant
|
|
58
|
+
# alternatives but it best follows sklearn. Subclasses will now only need
|
|
59
|
+
# to set `onedal_array_api` to True to signify gpu zero-copy support
|
|
60
|
+
# and maintenance is smaller because of underlying sklearn infrastructure
|
|
61
|
+
sktags = super().__sklearn_tags__()
|
|
62
|
+
tag_dict = {
|
|
63
|
+
field.name: getattr(sktags, field.name) for field in fields(sktags)
|
|
64
|
+
}
|
|
65
|
+
return Tags(**tag_dict)
|
|
66
|
+
|
|
67
|
+
elif sklearn_check_version("1.3"):
|
|
68
|
+
|
|
69
|
+
def _more_tags(self) -> dict[bool]:
|
|
70
|
+
return {"onedal_array_api": False}
|
|
71
|
+
|
|
72
|
+
else:
|
|
73
|
+
# array_api_support tag was added in sklearn 1.3 via scikit-learn/scikit-learn#26372
|
|
74
|
+
def _more_tags(self) -> dict[bool, bool]:
|
|
75
|
+
return {"array_api_support": False, "onedal_array_api": False}
|
|
76
|
+
|
|
77
|
+
if sklearn_check_version("1.4"):
|
|
78
|
+
|
|
79
|
+
@property
|
|
80
|
+
def _doc_link_module(self) -> str:
|
|
81
|
+
return "sklearnex"
|
|
82
|
+
|
|
83
|
+
def _doc_link_url_param_generator(self, *_) -> dict[str, str]:
|
|
84
|
+
return {
|
|
85
|
+
"estimator_module": "sklearn."
|
|
86
|
+
+ self.__class__.__module__.rsplit(".", 2)[-2],
|
|
87
|
+
"estimator_name": self.__class__.__name__,
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
def _get_doc_link(self) -> str:
|
|
91
|
+
# This method is meant to generate a clickable doc link for classses
|
|
92
|
+
# in sklearnex including those that are not part of base scikit-learn.
|
|
93
|
+
# It should be inherited before inheriting from a scikit-learn estimator.
|
|
94
|
+
|
|
95
|
+
mro = self.__class__.__mro__
|
|
96
|
+
# The next object in the Estimators MRO after oneDALEstimator should be
|
|
97
|
+
# the equivalent sklearn estimator, if it is BaseEstimator, it is a
|
|
98
|
+
# sklearnex-only estimator.
|
|
99
|
+
url = BaseEstimator._get_doc_link(self)
|
|
100
|
+
if (
|
|
101
|
+
url
|
|
102
|
+
and oneDALEstimator in mro
|
|
103
|
+
and mro[mro.index(oneDALEstimator) + 1] is BaseEstimator
|
|
104
|
+
):
|
|
105
|
+
module_path, _ = self.__class__.__module__.rsplit(".", 1)
|
|
106
|
+
class_name = self.__class__.__name__
|
|
107
|
+
url = f"https://uxlfoundation.github.io/scikit-learn-intelex/latest/non-scikit-algorithms.html#{module_path}.{class_name}"
|
|
108
|
+
|
|
109
|
+
return url
|
|
@@ -28,7 +28,8 @@ from onedal.basic_statistics import BasicStatistics as onedal_BasicStatistics
|
|
|
28
28
|
from onedal.utils.validation import _is_csr
|
|
29
29
|
|
|
30
30
|
from .._device_offload import dispatch
|
|
31
|
-
from .._utils import
|
|
31
|
+
from .._utils import PatchingConditionsChain
|
|
32
|
+
from ..base import oneDALEstimator
|
|
32
33
|
from ..utils.validation import validate_data
|
|
33
34
|
|
|
34
35
|
if sklearn_check_version("1.2"):
|
|
@@ -36,7 +37,7 @@ if sklearn_check_version("1.2"):
|
|
|
36
37
|
|
|
37
38
|
|
|
38
39
|
@control_n_jobs(decorated_methods=["fit"])
|
|
39
|
-
class BasicStatistics(
|
|
40
|
+
class BasicStatistics(oneDALEstimator, BaseEstimator):
|
|
40
41
|
"""
|
|
41
42
|
Estimator for basic statistics.
|
|
42
43
|
Allows to compute basic statistics for provided data.
|
|
@@ -27,11 +27,8 @@ from onedal.basic_statistics import (
|
|
|
27
27
|
|
|
28
28
|
from .._config import get_config
|
|
29
29
|
from .._device_offload import dispatch
|
|
30
|
-
from .._utils import
|
|
31
|
-
|
|
32
|
-
PatchingConditionsChain,
|
|
33
|
-
_add_inc_serialization_note,
|
|
34
|
-
)
|
|
30
|
+
from .._utils import PatchingConditionsChain, _add_inc_serialization_note
|
|
31
|
+
from ..base import oneDALEstimator
|
|
35
32
|
from ..utils.validation import validate_data
|
|
36
33
|
|
|
37
34
|
if sklearn_check_version("1.2"):
|
|
@@ -42,7 +39,7 @@ import warnings
|
|
|
42
39
|
|
|
43
40
|
|
|
44
41
|
@control_n_jobs(decorated_methods=["partial_fit", "_onedal_finalize_fit"])
|
|
45
|
-
class IncrementalBasicStatistics(
|
|
42
|
+
class IncrementalBasicStatistics(oneDALEstimator, BaseEstimator):
|
|
46
43
|
"""
|
|
47
44
|
Calculates basic statistics on the given data, allows for computation when the data are split into
|
|
48
45
|
batches. The user can use ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
|
|
@@ -27,14 +27,15 @@ from onedal.cluster import DBSCAN as onedal_DBSCAN
|
|
|
27
27
|
|
|
28
28
|
from .._config import get_config
|
|
29
29
|
from .._device_offload import dispatch
|
|
30
|
-
from .._utils import
|
|
30
|
+
from .._utils import PatchingConditionsChain
|
|
31
|
+
from ..base import oneDALEstimator
|
|
31
32
|
from ..utils.validation import validate_data
|
|
32
33
|
|
|
33
34
|
if sklearn_check_version("1.1") and not sklearn_check_version("1.2"):
|
|
34
35
|
from sklearn.utils import check_scalar
|
|
35
36
|
|
|
36
37
|
|
|
37
|
-
class BaseDBSCAN(
|
|
38
|
+
class BaseDBSCAN(oneDALEstimator):
|
|
38
39
|
def _onedal_dbscan(self, **onedal_params):
|
|
39
40
|
return onedal_DBSCAN(**onedal_params)
|
|
40
41
|
|
|
@@ -48,7 +49,7 @@ class BaseDBSCAN(ABC):
|
|
|
48
49
|
|
|
49
50
|
|
|
50
51
|
@control_n_jobs(decorated_methods=["fit"])
|
|
51
|
-
class DBSCAN(
|
|
52
|
+
class DBSCAN(BaseDBSCAN, _sklearn_DBSCAN):
|
|
52
53
|
__doc__ = _sklearn_DBSCAN.__doc__
|
|
53
54
|
|
|
54
55
|
if sklearn_check_version("1.2"):
|
|
@@ -35,15 +35,18 @@ if daal_check_version((2023, "P", 200)):
|
|
|
35
35
|
|
|
36
36
|
from daal4py.sklearn._n_jobs_support import control_n_jobs
|
|
37
37
|
from daal4py.sklearn._utils import sklearn_check_version
|
|
38
|
+
from onedal._device_offload import support_input_format
|
|
38
39
|
from onedal.cluster import KMeans as onedal_KMeans
|
|
39
40
|
from onedal.utils.validation import _is_csr
|
|
40
41
|
|
|
41
42
|
from .._device_offload import dispatch, wrap_output_data
|
|
42
|
-
from .._utils import
|
|
43
|
+
from .._utils import PatchingConditionsChain
|
|
44
|
+
from ..base import oneDALEstimator
|
|
45
|
+
from ..utils._array_api import get_namespace
|
|
43
46
|
from ..utils.validation import validate_data
|
|
44
47
|
|
|
45
48
|
@control_n_jobs(decorated_methods=["fit", "fit_transform", "predict", "score"])
|
|
46
|
-
class KMeans(
|
|
49
|
+
class KMeans(oneDALEstimator, _sklearn_KMeans):
|
|
47
50
|
__doc__ = _sklearn_KMeans.__doc__
|
|
48
51
|
|
|
49
52
|
if sklearn_check_version("1.2"):
|
|
@@ -317,16 +320,20 @@ if daal_check_version((2023, "P", 200)):
|
|
|
317
320
|
_onedal_gpu_supported = _onedal_supported
|
|
318
321
|
_onedal_cpu_supported = _onedal_supported
|
|
319
322
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
323
|
+
def _check_test_data(self, X):
|
|
324
|
+
xp, _ = get_namespace(X)
|
|
325
|
+
X = validate_data(
|
|
326
|
+
self,
|
|
327
|
+
X,
|
|
328
|
+
accept_sparse="csr",
|
|
329
|
+
reset=False,
|
|
330
|
+
dtype=[xp.float64, xp.float32],
|
|
331
|
+
order="C",
|
|
332
|
+
accept_large_sparse=False,
|
|
333
|
+
)
|
|
334
|
+
return X
|
|
327
335
|
|
|
328
|
-
|
|
329
|
-
return self._transform(X)
|
|
336
|
+
_transform = support_input_format(_sklearn_KMeans._transform)
|
|
330
337
|
|
|
331
338
|
@wrap_output_data
|
|
332
339
|
def score(self, X, y=None, sample_weight=None):
|
|
@@ -381,8 +388,6 @@ if daal_check_version((2023, "P", 200)):
|
|
|
381
388
|
|
|
382
389
|
fit.__doc__ = _sklearn_KMeans.fit.__doc__
|
|
383
390
|
predict.__doc__ = _sklearn_KMeans.predict.__doc__
|
|
384
|
-
transform.__doc__ = _sklearn_KMeans.transform.__doc__
|
|
385
|
-
fit_transform.__doc__ = _sklearn_KMeans.fit_transform.__doc__
|
|
386
391
|
score.__doc__ = _sklearn_KMeans.score.__doc__
|
|
387
392
|
|
|
388
393
|
else:
|
|
@@ -30,16 +30,17 @@ from daal4py.sklearn._utils import daal_check_version, sklearn_check_version
|
|
|
30
30
|
from onedal.covariance import (
|
|
31
31
|
IncrementalEmpiricalCovariance as onedal_IncrementalEmpiricalCovariance,
|
|
32
32
|
)
|
|
33
|
+
from onedal.utils._array_api import _is_numpy_namespace
|
|
33
34
|
from sklearnex import config_context
|
|
34
35
|
|
|
35
36
|
from .._config import get_config
|
|
36
37
|
from .._device_offload import dispatch, wrap_output_data
|
|
37
38
|
from .._utils import (
|
|
38
|
-
ExtensionEstimator,
|
|
39
39
|
PatchingConditionsChain,
|
|
40
40
|
_add_inc_serialization_note,
|
|
41
41
|
register_hyperparameters,
|
|
42
42
|
)
|
|
43
|
+
from ..base import oneDALEstimator
|
|
43
44
|
from ..metrics import pairwise_distances
|
|
44
45
|
from ..utils._array_api import get_namespace
|
|
45
46
|
from ..utils.validation import check_feature_names, validate_data
|
|
@@ -49,7 +50,7 @@ if sklearn_check_version("1.2"):
|
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
@control_n_jobs(decorated_methods=["partial_fit", "fit", "_onedal_finalize_fit"])
|
|
52
|
-
class IncrementalEmpiricalCovariance(
|
|
53
|
+
class IncrementalEmpiricalCovariance(oneDALEstimator, BaseEstimator):
|
|
53
54
|
"""
|
|
54
55
|
Maximum likelihood covariance estimator that allows for the estimation when the data are split into
|
|
55
56
|
batches. The user can use the ``partial_fit`` method to provide a single batch of data or use the ``fit`` method to provide
|
|
@@ -231,11 +232,11 @@ class IncrementalEmpiricalCovariance(ExtensionEstimator, BaseEstimator):
|
|
|
231
232
|
X = validate_data(
|
|
232
233
|
self,
|
|
233
234
|
X_test,
|
|
234
|
-
dtype=[
|
|
235
|
+
dtype=[xp.float64, xp.float32],
|
|
235
236
|
reset=False,
|
|
236
237
|
)
|
|
237
238
|
|
|
238
|
-
if
|
|
239
|
+
if not _is_numpy_namespace(xp):
|
|
239
240
|
location = xp.asarray(location, device=X_test.device)
|
|
240
241
|
# depending on the sklearn version, check_array
|
|
241
242
|
# and validate_data will return only numpy arrays
|
|
@@ -361,12 +362,13 @@ class IncrementalEmpiricalCovariance(ExtensionEstimator, BaseEstimator):
|
|
|
361
362
|
# self.location_) , and will check for finiteness via check array
|
|
362
363
|
# check_feature_names will match _validate_data functionally
|
|
363
364
|
location = self.location_[np.newaxis, :]
|
|
364
|
-
if
|
|
365
|
+
if not _is_numpy_namespace(xp):
|
|
365
366
|
# Guarantee that inputs to pairwise_distances match in type and location
|
|
366
367
|
location = xp.asarray(location, device=X.device)
|
|
367
368
|
|
|
368
369
|
try:
|
|
369
370
|
dist = pairwise_distances(X, location, metric="mahalanobis", VI=precision)
|
|
371
|
+
|
|
370
372
|
except ValueError as e:
|
|
371
373
|
# Throw the expected sklearn error in an n_feature length violation
|
|
372
374
|
if "Incompatible dimension for X and Y matrices: X.shape[1] ==" in str(e):
|
|
@@ -377,6 +379,9 @@ class IncrementalEmpiricalCovariance(ExtensionEstimator, BaseEstimator):
|
|
|
377
379
|
else:
|
|
378
380
|
raise e
|
|
379
381
|
|
|
382
|
+
if not _is_numpy_namespace(xp):
|
|
383
|
+
dist = xp.asarray(dist, device=X.device)
|
|
384
|
+
|
|
380
385
|
return (xp.reshape(dist, (-1,))) ** 2
|
|
381
386
|
|
|
382
387
|
_onedal_cpu_supported = _onedal_supported
|
|
@@ -18,8 +18,6 @@ import logging
|
|
|
18
18
|
|
|
19
19
|
from daal4py.sklearn._utils import daal_check_version
|
|
20
20
|
|
|
21
|
-
from .._utils import PatchableEstimator
|
|
22
|
-
|
|
23
21
|
if daal_check_version((2024, "P", 100)):
|
|
24
22
|
import numbers
|
|
25
23
|
from math import sqrt
|
|
@@ -34,6 +32,7 @@ if daal_check_version((2024, "P", 100)):
|
|
|
34
32
|
|
|
35
33
|
from .._device_offload import dispatch, wrap_output_data
|
|
36
34
|
from .._utils import PatchingConditionsChain
|
|
35
|
+
from ..base import oneDALEstimator
|
|
37
36
|
from ..utils._array_api import get_namespace
|
|
38
37
|
from ..utils.validation import validate_data
|
|
39
38
|
|
|
@@ -48,7 +47,7 @@ if daal_check_version((2024, "P", 100)):
|
|
|
48
47
|
from onedal.decomposition import PCA as onedal_PCA
|
|
49
48
|
|
|
50
49
|
@control_n_jobs(decorated_methods=["fit", "transform", "fit_transform"])
|
|
51
|
-
class PCA(
|
|
50
|
+
class PCA(oneDALEstimator, _sklearn_PCA):
|
|
52
51
|
__doc__ = _sklearn_PCA.__doc__
|
|
53
52
|
|
|
54
53
|
if sklearn_check_version("1.2"):
|
|
@@ -64,7 +64,8 @@ from sklearnex._utils import register_hyperparameters
|
|
|
64
64
|
|
|
65
65
|
from .._config import get_config
|
|
66
66
|
from .._device_offload import dispatch, wrap_output_data
|
|
67
|
-
from .._utils import
|
|
67
|
+
from .._utils import PatchingConditionsChain
|
|
68
|
+
from ..base import oneDALEstimator
|
|
68
69
|
from ..utils._array_api import get_namespace
|
|
69
70
|
from ..utils.validation import check_n_features, validate_data
|
|
70
71
|
|
|
@@ -74,7 +75,7 @@ if sklearn_check_version("1.4"):
|
|
|
74
75
|
from daal4py.sklearn.utils import _assert_all_finite
|
|
75
76
|
|
|
76
77
|
|
|
77
|
-
class BaseForest(
|
|
78
|
+
class BaseForest(oneDALEstimator, ABC):
|
|
78
79
|
_onedal_factory = None
|
|
79
80
|
|
|
80
81
|
def _onedal_fit(self, X, y, sample_weight=None, queue=None):
|
|
@@ -400,7 +401,7 @@ class BaseForest(PatchableEstimator, ABC):
|
|
|
400
401
|
self.estimator = estimator
|
|
401
402
|
|
|
402
403
|
|
|
403
|
-
class ForestClassifier(
|
|
404
|
+
class ForestClassifier(BaseForest, _sklearn_ForestClassifier):
|
|
404
405
|
# Surprisingly, even though scikit-learn warns against using
|
|
405
406
|
# their ForestClassifier directly, it actually has a more stable
|
|
406
407
|
# API than the user-facing objects (over time). If they change it
|
|
@@ -850,7 +851,7 @@ class ForestClassifier(_sklearn_ForestClassifier, BaseForest):
|
|
|
850
851
|
)
|
|
851
852
|
|
|
852
853
|
|
|
853
|
-
class ForestRegressor(
|
|
854
|
+
class ForestRegressor(BaseForest, _sklearn_ForestRegressor):
|
|
854
855
|
_err = "out_of_bag_error_r2|out_of_bag_error_prediction"
|
|
855
856
|
_get_tree_state = staticmethod(get_tree_state_reg)
|
|
856
857
|
|
|
@@ -14,17 +14,29 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
# ===============================================================================
|
|
16
16
|
|
|
17
|
+
from daal4py.sklearn._utils import sklearn_check_version
|
|
17
18
|
from daal4py.sklearn.linear_model import ElasticNet, Lasso
|
|
18
19
|
from onedal._device_offload import support_input_format
|
|
19
20
|
|
|
21
|
+
from ..base import oneDALEstimator
|
|
22
|
+
|
|
20
23
|
# Note: `sklearnex.linear_model.ElasticNet` only has functional
|
|
21
24
|
# sycl GPU support. No GPU device will be offloaded.
|
|
22
25
|
ElasticNet.fit = support_input_format(ElasticNet.fit)
|
|
23
26
|
ElasticNet.predict = support_input_format(ElasticNet.predict)
|
|
24
27
|
ElasticNet.score = support_input_format(ElasticNet.score)
|
|
28
|
+
if sklearn_check_version("1.4"):
|
|
29
|
+
ElasticNet._doc_link_module = "daal4py"
|
|
30
|
+
ElasticNet._doc_link_url_param_generator = (
|
|
31
|
+
oneDALEstimator._doc_link_url_param_generator
|
|
32
|
+
)
|
|
33
|
+
|
|
25
34
|
|
|
26
35
|
# Note: `sklearnex.linear_model.Lasso` only has functional
|
|
27
36
|
# sycl GPU support. No GPU device will be offloaded.
|
|
28
37
|
Lasso.fit = support_input_format(Lasso.fit)
|
|
29
38
|
Lasso.predict = support_input_format(Lasso.predict)
|
|
30
39
|
Lasso.score = support_input_format(Lasso.score)
|
|
40
|
+
if sklearn_check_version("1.4"):
|
|
41
|
+
Lasso._doc_link_module = "daal4py"
|
|
42
|
+
Lasso._doc_link_url_param_generator = oneDALEstimator._doc_link_url_param_generator
|