bsnsing
Build Decision Trees with Optimal Multivariate Splits
Description
Functions for training an optimal decision tree classifier, making predictions and generating latex code for plotting. Works for two-class and multi-class classification problems. The algorithm seeks the optimal Boolean rule consisting of multiple variables to split a node, resulting in shorter trees. Use bsnsing() to build a tree, predict() to make predictions and plot() to plot the tree into latex and PDF. See Yanchao Liu (2022) <arXiv:2205.15263> for technical details. Source code and more data sets are at <https://github.com/profyliu/bsnsing/>.
Downloads
180
Last 30 days
18625th
331
Last 90 days
331
Last year
Trend: +19.2% (30d vs prior 30d)
CRAN Check Status
Show all 14 flavors
| Flavor | Status |
|---|---|
| r-devel-linux-x86_64-debian-clang | NOTE |
| r-devel-linux-x86_64-debian-gcc | NOTE |
| r-devel-linux-x86_64-fedora-clang | NOTE |
| r-devel-linux-x86_64-fedora-gcc | NOTE |
| r-devel-macos-arm64 | NOTE |
| r-devel-windows-x86_64 | NOTE |
| r-oldrel-macos-arm64 | NOTE |
| r-oldrel-macos-x86_64 | NOTE |
| r-oldrel-windows-x86_64 | NOTE |
| r-patched-linux-x86_64 | NOTE |
| r-release-linux-x86_64 | NOTE |
| r-release-macos-arm64 | NOTE |
| r-release-macos-x86_64 | NOTE |
| r-release-windows-x86_64 | NOTE |
Check details (16 non-OK)
CRAN incoming feasibility
Maintainer: ‘Yanchao Liu <yanchaoliu@wayne.edu>’
No Authors@R field in DESCRIPTION.
Please add one, modifying
Authors@R: person(given = "Yanchao",
family = "Liu",
role = c("aut", "cre"),
email = "yanchaoliu@wayne.edu")
as necessary.
The Description field contains
Yanchao Liu (2022) <arXiv:2205.15263> for technical details. Source
Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
CRAN incoming feasibility
Maintainer: ‘Yanchao Liu <yanchaoliu@wayne.edu>’
No Authors@R field in DESCRIPTION.
Please add one, modifying
Authors@R: person(given = "Yanchao",
family = "Liu",
role = c("aut", "cre"),
email = "yanchaoliu@wayne.edu")
as necessary.
The Description field contains
Yanchao Liu (2022) <arXiv:2205.15263> for technical details. Source
Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu/bsnsing/}. The default (and the best) is 'enum_c'.}
| ^
checkRd: (-1) bscontrol.Rd:45: Lost braces; missing escapes or markup?
45 | \item{opt.model}{a character string in the set {'gini','error'} indicating the optimization model to solve in the program. The default is 'gini'. The 'error' option is not available in the current version.}
| ^
Check History
NOTE 0 OK · 14 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 9, 2026
CRAN incoming feasibility
Maintainer: ‘Yanchao Liu <yanchaoliu@wayne.edu>’
No Authors@R field in DESCRIPTION.
Please add one, modifying
Authors@R: person(given = "Yanchao",
family = "Liu",
role = c("aut", "cre"),
email = "yanchaoliu@wayne.edu")
as necessary.
The Description field contains
Yanchao Liu (2022) <arXiv:2205.15263> for technical details. Source
Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
CRAN incoming feasibility
Maintainer: ‘Yanchao Liu <yanchaoliu@wayne.edu>’
No Authors@R field in DESCRIPTION.
Please add one, modifying
Authors@R: person(given = "Yanchao",
family = "Liu",
role = c("aut", "cre"),
email = "yanchaoliu@wayne.edu")
as necessary.
The Description field contains
Yanchao Liu (2022) <arXiv:2205.15263> for technical details. Source
Please refer to arXiv e-prints via their arXiv DOI <doi:10.48550/arXiv.YYMM.NNNNN>.
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu
Rd files
checkRd: (-1) bscontrol.Rd:39: Lost braces; missing escapes or markup?
39 | \item{opt.solver}{a character string in the set {'enum', 'enum_c', 'gurobi', 'cplex', 'lpSolve', 'greedy'} indicating the optimization solver to be used in the program. The choice of 'cplex' requires the package \code{cplexAPI}, 'gurobi' requires the package \code{gurobi}, and 'lpSolve' requires the package \code{lpSolve}. These solver options are only available in the full version at \url{https://github.com/profyliu