Skip to content

Remove daal4py algorithms scheduled for removal in 2026.0#2944

Open
Vika-F wants to merge 6 commits intouxlfoundation:mainfrom
Vika-F:dev/remove_algos
Open

Remove daal4py algorithms scheduled for removal in 2026.0#2944
Vika-F wants to merge 6 commits intouxlfoundation:mainfrom
Vika-F:dev/remove_algos

Conversation

@Vika-F
Copy link
Contributor

@Vika-F Vika-F commented Feb 13, 2026

Description

Remove Tier 1 algorithms proposed for removal in this RFC:
https://github.com/uxlfoundation/oneDAL/tree/rfcs/rfcs/20251015-DAAL-algorithms-deprecation#analysis-algorithms-to-be-deprecated

Analysis algorithms:

  • Association Rules
  • Multivariate Outlier Detection
  • Multivariate BACON Outlier Detection
  • Univariate Outlier Detection
  • SAGA Optimization Solver
  • SGD Optimization Solver
  • Adaptive Subgradient Method (AdaGrad)
  • Sorting
  • Quantile

Training and prediction algorithms to be deprecated:

  • AdaBoost Classifier
  • AdaBoost Multiclass Classifier
  • BrownBoost Classifier
  • LogitBoost Classifier
  • Classification Decision Tree
  • Regression Decision Tree
  • Naive Bayes Classifier
  • Classificaton Stump
  • Regression Stump

Checklist:

Completeness and readability

  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation to reflect the changes or created a separate PR with updates and provided its number in the description, if necessary.
  • Git commit message contains an appropriate signed-off-by string (see CONTRIBUTING.md for details).
  • I have resolved any merge conflicts that might occur with the base branch.

Testing

  • I have run it locally and tested the changes extensively.
  • All CI jobs are green or I have provided justification why they aren't.
  • I have extended testing suite if new functionality was introduced in this PR.
    no new functionality in this PR

Performance

not applicable

@david-cortes-intel
Copy link
Contributor

david-cortes-intel commented Feb 13, 2026

I'm not sure about the best way to handle this PR. If the oneDAL PR with the removals gets merged, it should be possible to get the nightly jobs passing here afterwards, but everything else will be broken until 2026.0 is released through public channels.

Perhaps in the meantime these algorithms could be added to the ignored list here:

def wrap_algo(algo, ver):

.. and then be removed from it after the initial 2026.0 release.

@Vika-F
Copy link
Contributor Author

Vika-F commented Feb 13, 2026

I'm not sure about the best way to handle this PR. If the oneDAL PR with the removals gets merged, it should be possible to get the nightly jobs passing here afterwards, but everything else will be broken until 2026.0 is released through public channels.

Perhaps in the meantime these algorithms could be added to the ignored list here:

def wrap_algo(algo, ver):

.. and then be removed from it after the initial 2026.0 release.

I think updating the exclusions is a proper way of handling this kind of removals, why not?
It should work even before the algorithms removal in oneDAL - the APIs for the removed algorithms won't be generated in this case.
The plan is to merge this PR first, and then uxlfoundation/oneDAL#3508

@codecov
Copy link

codecov bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
azure 79.85% <ø> (?)
github 81.87% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 26 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@david-cortes-intel
Copy link
Contributor

Doc error is about entries for 'sorting' which are still referenced in the docs.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes Tier 1 algorithms from daal4py that were scheduled for deprecation in version 2026.0, as outlined in the oneDAL RFC for algorithm deprecation. The removal includes both analysis algorithms and training/prediction algorithms that are no longer maintained.

Changes:

  • Removed 9 training/prediction algorithm implementations (AdaBoost, BrownBoost, LogitBoost, Decision Tree classification/regression, Naive Bayes, Stump classification/regression)
  • Removed 9 analysis algorithms (Association Rules, 3 types of Outlier Detection, 3 Optimization Solvers, Sorting, Quantile)
  • Updated documentation to remove references to deprecated algorithms
  • Added removed algorithms to generator exclusion lists
  • Removed example files and associated test data
  • Cleaned up test files to remove references to deprecated algorithms

Reviewed changes

Copilot reviewed 38 out of 61 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/test_estimators.py Removed AdaBoostClassifier import and test
tests/test_daal4py_examples.py Removed example configs for deprecated algorithms and CSR support checks
src/tree_visitor.h Removed decision tree classification visitor template specializations
generator/wrappers.py Added deprecated algorithm namespaces to exclusion list
examples/daal4py/*.py Deleted example files for all removed algorithms
examples/daal4py/data/**/*.csv Deleted test data files for removed algorithms
doc/sources/*.rst Removed documentation sections for deprecated algorithms
daal4py/sklearn/tree/* Removed entire decision tree sklearn wrapper module
daal4py/sklearn/ensemble/AdaBoostClassifier.py Removed AdaBoost sklearn wrapper
daal4py/sklearn/ensemble/init.py Removed AdaBoostClassifier from exports
daal4py/sklearn/init.py Removed tree module from exports

Comment on lines +42 to 80
"algorithms::association_rules",
"algorithms::adaboost",
"algorithms::adaboost::prediction",
"algorithms::adaboost::training",
"algorithms::brownboost",
"algorithms::brownboost::prediction",
"algorithms::brownboost::training",
"algorithms::logitboost",
"algorithms::logitboost::prediction",
"algorithms::logitboost::training",
"algorithms::decision_tree",
"algorithms::decision_tree::classification",
"algorithms::decision_tree::classification::prediction",
"algorithms::decision_tree::classification::training",
"algorithms::decision_tree::regression",
"algorithms::decision_tree::regression::prediction",
"algorithms::decision_tree::regression::training",
"algorithms::multinomial_naive_bayes",
"algorithms::multinomial_naive_bayes::prediction",
"algorithms::multinomial_naive_bayes::training",
"algorithms::bacon_outlier_detection",
"algorithms::multivariate_outlier_detection",
"algorithms::univariate_outlier_detection",
"algorithms::optimization_solver::adagrad",
"algorithms::optimization_solver::saga",
"algorithms::optimization_solver::sgd",
"algorithms::quantiles",
"algorithms::sorting",
"algorithms::stump",
"algorithms::stump::classification",
"algorithms::stump::classification::prediction",
"algorithms::stump::classification::training",
"algorithms::stump::regression",
"algorithms::stump::regression::prediction",
"algorithms::stump::regression::training",
"algorithms::weak_learner",
"algorithms::weak_learner::prediction",
"algorithms::weak_learner::training",
"algorithms::linear_model::prediction",
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR adds the removed algorithm namespaces to the exclusion list in wrap_algo, which correctly prevents them from being wrapped. However, note that there are still references to these algorithms in other parts of this file (lines 108-139 in required dict, lines 337-365 in defaults dict, and lines 994-1044 in other configuration dicts). While these won't cause runtime errors since the algorithms are excluded, consider removing these stale entries in a follow-up cleanup to maintain code cleanliness and avoid confusion.

Copilot uses AI. Check for mistakes.
@david-cortes-intel
Copy link
Contributor

CI error with the docs is a timeout in the link checker, so can be ignored.

But the failing windows job is something in daal4py patching tests. It doesn't say specifically what unfortunately, so it might be a sporadic issue. I restarted it to see if it happens again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants