| NEWS | R Documentation |
NEWS file for the partykit package
Changes in Version 1.2-24 (2025-05-02)
Buxfixes
Handle ordinal splitting variables like numeric in
.list.rules.party().MIA = TRUEfailed in rare cases because the principle was applied to nodes w/o missing values in the split variable; spotted by Ben Schneider.ctreefailed when an unordered factor response contained missing values; spotted by Jonathan Rinne.
Changes in Version 1.2-23 (2024-12-02)
Buxfixes
Make sure weights are propagated properly in
data\_party.
Changes in Version 1.2-22 (2024-08-17)
Buxfixes
Use
R\_Calloc.
Changes in Version 1.2-21 (2024-07-18)
Buxfixes
Rd link problem.
Changes in Version 1.2-20 (2023-04-11)
Buxfixes
densitynow gives warnings when called with weights, avoid this.Check for tied p-values fails on M1mac.
Changes in Version 1.2-19 (2023-03-19)
Buxfixes
Fix documentation bug.
Changes in Version 1.2-18 (2023-03-09)
Buxfixes
Register default methods.
Changes in Version 1.2-17 (2023-02-28)
Misc
Update
CITATIONfile.
Buxfixes
Allow
NAin responses when plotting. Reported by Tyson H. Holmes.
Changes in Version 1.2-16 (2022-06-20)
Buxfixes
Address random CRAN errors (honesty checks).
Changes in Version 1.2-15 (2021-08-23)
Small Improvements
Update reference output.
Changes in Version 1.2-14 (2021-04-22)
Bugfixes
cforestignoredconvergedargument.
Changes in Version 1.2-13 (2021-03-03)
Small Improvements
Suggest randomForest.
Test constparty vignette code in tests, to avoid a NOTE about missing RWeka on Solaris.
Changes in Version 1.2-12 (2021-02-08)
New Features
Add
methodargument toglmtree. The default is to use"glm.fit"(as was hard-coded previously) but this can also be changed, e.g., to"brglmFit"from brglm2 for bias-reduced estimation of generalized linear models.
Bugfixes
Fix LaTeX problem.
Better checks for response classes, fixing a bug reported by John Ogawa.
In
lmtreeandglmtreethe"xlevels"attribute for the regressors is preserved in the models fitted within the trees. Thus, predicting for data whose"xlevels"do not match, an error is generated now (as opposed to warning and partially incorrect predictions).
Changes in Version 1.2-11 (2020-12-09)
New Features
Add an experimental implementation of honesty.
Add
maxvarargument toctree_controlfor restricting the number of split variables to be used in a tree.
Bugfixes
all.equalmust not check environments.Non-standard variable names are now handled correctly within
extree_data, prompted by https://stackoverflow.com/questions/64660889/ctree-ignores-variables-with-non-syntactic-names.
Changes in Version 1.2-10 (2020-10-12)
Bugfixes
Deal with non-integer
minsizeinmob.Handle NAs in
.get_psplits.Fix URLs.
Changes in Version 1.2-9 (2020-07-10)
Bugfixes
Fix an issue with printing of tied p-values.
Changes in Version 1.2-8 (2020-06-09)
Bugfixes
pruning of modelparty objects failed to get the fitted slot right.
In R-devel, c(<factor>) now returns factors, rendering code in .simplify_pred overly pedantic.
Changes in Version 1.2-7 (2020-03-06)
Bugfixes
NAMESPACE fixes: party is only suggested.
Changes in Version 1.2-6 (2020-01-30)
Bugfixes
Remove warning about response not being a factor in
predict.cforest. Reported by Stephen Milborrow.
Changes in Version 1.2-5 (2019-07-17)
Bugfixes
Trying to split in a variable where all observations were missing nevertheless produced a split, as reported by Kevin Ummel.
Changes in Version 1.2-4 (2019-05-17)
Bugfixes
update reference output, fix RNGversion
Changes in Version 1.2-3 (2019-01-28)
New Features
varimpruns in parallel mode, optionally.weightsincforestcan now be used to specify a matrix of weights (number of observations times number of trees) to be used for tree induction (this was always possible inparty::cforest. This was advertised in the documentation but actually not implemented so far.
Bugfixes
predictdid not pay attention toxlev; this caused problems when empty factor levels were removed prior to tree fitting.nodeprunemay have got fitted terminal node numbers wrong, spotted by Jason Parker.
Changes in Version 1.2-2 (2018-06-05)
Bugfixes
In
mob()using theclusterargument with afactorvariable sometimes lead toNAs in the covariance matrix estimate if empty categories occured in subgroups. The problem had been introduced in version 1.2-0 and has been fixed now.Methods for the
sctestgeneric from the strucchange package are now dynamically registered if strucchange is attached. Alternatively, the methods can be called directly using their full namessctest.constpartyandsctest.modelparty.The
prune.modelpartyfunction is now fully exported but it is also registered with theprunegeneric from rpart.
Changes in Version 1.2-1 (2018-04-20)
New Features
New
scaleargument forpredictincforest. For simple regression forests, predicting the conditional mean by nearest neighbor weights withscale = TRUEis now equivalent to the aggregation of means. The unscaled version proposed in <doi:10.1002/sim.1593> can be obtained withscale = FALSE.
Bugfixes
Bug fix for case weights in
mob()in previous version (1.2-0) introduced a bug in the handling of proportionality weights. Both cases are handled correctly now.glmtreecan now handlecaseweights = TRUEcorrectly forvcovother than the default"opg". Internally, theglmobjects are adjusted by correcting the dispersion estimate and the degrees of freedom.lookaheaddid not work in the presence of missing values.Calling
partykit::ctreedid not work when partykit was not attached.node_innernow allows to set a differentgpar(fontsize = ...)in the inner nodes compared to the overall tree.splittestasked for Monte-Carlo p-values, even when the test statistic was used as criterion.
Changes in Version 1.2-0 (2017-12-18)
New Features
We welcome Heidi Seibold as co-author!
Internal re-organisation for
ctreeby means of new extensible tree infrastructure (available inextree_dataandextree_fit). Certain parts of the new infrastructure are still experimental.ctreeis fully backward compatible.Use libcoin for computing linear test statistics and p-values for
ctree.Use inum for binning (the new
nmaxargument).Quadratic test statistics for splitpoint selection are now available for
ctreeviactree_control(splitstat = "quadratic").Maximally selected test statistics for variable selection are now available for
ctreeviactree_control(splittest = TRUE).Missing values can be treated as a separate category, also for splits in numeric variables in
ctreeviactree_control(MIA = TRUE).Permutation variable importance, including conditional variable importance, was added to partykit.
New
offsetargument inctree.New
get_pathsfor computing paths to nodes.node_barplotgained atextargument that can be used to draw text labels for the percentages displayed.The
marginsused inplot.partycan now also be set by the user.
Bugfixes
Bug fix in
mob()ifweightsare used andcaseweights = TRUE(the default). The statistics for the parameter instability tests were computed incorrectly and consequently the selection of splitting variables and also the stopping criterion were affected/incorrect.Avoid log(p) values of
-Infinsidemob()by replacing weighted averaging with naive averaging in the response surface regression output in case the p values are below machine precision.The
as.partymethod forrpartobjects without any splits only returned a nakedpartynoderather than a fullparty. This has been corrected now.nodeapplydid not produce the same results for permutations ofids. Spotted by Heidi Seibold.Out-of-bag predictions in
predict.cforestwere incorrect.perminpredictwas only considered whennewdatawas given. Spotted by Heidi Seibold.Don't try to search for binary splits in unordered factors with more than 31 levels. This potentially caused an integer overrun in previous versions.
party::ctree()uses an approximation for binary split searches in unordered factors; thus, using party might be an alternative.
Changes in Version 1.1-1 (2016-09-20)
Proper support of quasi-families in
glmtreeand hencepalmtree.NA handling by following the majority was potentially incorrect in
ctree.Minor speed improvements.
Breaking ties before variable selection was suboptimal for very small log-p-values.
Changes in Version 1.1-0 (2016-07-14)
Added a new function
palmtreethat fits partially additive (generalized) linear model trees. These employ model-based recursive partitioning (mob) based on (generalized) linear models with some local (i.e., leaf-specific) and some global (i.e., constant throughout the tree) regression coefficients.Splits in ordinal variables are now represented correctly in the (still internal)
list.rulemethod.Kaplan-Meier curves in
"constparty"trees were plotted incorrectly due to use a wrong scaling of the x-axis. Spotted by Peter Calhoun <calhoun.peter@gmail.com>.Use
quote(stats::model.frame)instead ofas.name("model.frame").The
as.partymethods forrpartandWeka_treenow have adata = TRUEargument so that by default the data is preserved in thepartyobject (instead of an empty model frame).The
predictmethod forcforestobjects did not work for one-row data frames, fixed now.Added
rotandjustarguments tonode_barplotfor more fine control of x-axis labeling (e.g., with 45 degree rotation).
Changes in Version 1.0-5 (2016-02-05)
The partykit package has now been published in Journal of Machine Learning Research, 16, 3905-3909. https://jmlr.org/papers/v16/hothorn15a.html
Added support for setting background in panel functions.
The
as.list()method forpartynodeobjects erroneously created an objectthisnodein the calling environment which is avoided now.
Changes in Version 1.0-4 (2015-09-29)
Bug fix in
plot()method forconstpartyobjects. In the previous partykit version clipping was accidentally also applied to the axes labels.For
constpartyobjectsplot(..., type = "simple")did not work correctly whereasplot(as.simpleparty(...))yielded the desired visualization. Now internallyas.simpleparty()is called also in the former case.The
as.simpleparty()method now preserves p-values fromconstpartyobjects (if any).Added a
getCall()method for"party"objects.In the
predict()method for"lmtree"and"glmtree"objects theoffset(if any) was sometimes ignored. It is now always used in the prediction.
Changes in Version 1.0-3 (2015-08-14)
Import
logrank_trafofrom coin.
Changes in Version 1.0-2 (2015-07-28)
nodeprune(..., ids = 1)did not prune the tree to the root node. Fixed now.predict.cforestusedna.omitinstead ofna.pass.predict.partynow features newpermargument for permuting splits in specific variables (useful for computing permutation variable importances).NAMESPACEupdates.
Changes in Version 1.0-1 (2015-04-07)
The support for (generalized) linear model trees with just a constant regressor has been improved. Now
lmtree(y ~ x1 + x2)is short forlmtree(y ~ 1 | x1 + x2), analogously forglmtree(). Plotting now also works properly in this case.The
as.party()method for"rpart"objects did not work if one of the partitioning variables was a"character"variable rather than a"factor". A suitable work-around has been added.The
node_barplot()panel function can now also be used for multivariate responses, e.g., when all responses are numeric and on the same scale.The package now also includes a new data set
HuntingSpiderswhich is essentially a copy of thespiderdata from the package mvpart that is currently archived on CRAN. The documentation has been improved somewhat and is likely to change further to explain how the data has been transformed in De'ath (2002).The survival tree example for the GBSG2 data was broken due to the response being (incorrectly) also part of the explanatory variables. Fixed by using the latest Formula package (at least version 1.2-1).
Changes in Version 1.0-0 (2015-02-20)
Version 1.0-0 published. This version is described in the MLOSS paper accepted for publication by the Journal of Machine Learning Research today.
The unbiased version of
cforest(withreplace = FALSE) is now the default (as in party).Register all S3 methods in
NAMESPACE.
Changes in Version 0.8-4 (2015-01-06)
Extended
mob()interface by aclusterargument. This can be a vector (numeric, integer, factor) with cluster IDs that are then passed on to the 'fit' function (if supported) and used for clustering the covariance matrix in the parameter stability tests.lmtree()andglmtree()hence both gained aclusterargument which is used only for cluster covariances but not for the model estimation (i.e., corresponding to a working independence model).Optionally, the parameters' variance-covariance matrix in
mob()can now be estimated by the sandwich matrix instead of the default outer-product-of-gradients (OPG) matrix or the information matrix.Reimplementation of
cforest()available with extended prediction facilities. Both the internal representation and the user interface are still under development are likely to change in future versions.Added multicore support to
mob(),ctree(), andcforest(). If control argumentcoresis specified (e.g.,cores = 4) then the search for the best variable or split point (often involving numerous model fits inmob()or resampling inctree()) is carried out usingparallel::mclapply()rathern than sequentialfor()orsapply(). Additionally, otherapplyfuns can be provided, e.g., using networks of workstations etc.Bug fix in
mob()that occurred when regressor variables and partitioning variables overlapped and were not sorted in the underlying model frame.
Changes in Version 0.8-3 (2014-12-15)
mvpart was archived 2014-12-15.
Changes in Version 0.8-2 (2014-09-12)
Fixed an uninitialized memory issue reported by valgrind.
Changes in Version 0.8-1 (2014-09-08)
partykit now depends on R version >= 3.1.0 in order to import the
depth()generic from the grid package.The print methods for
party/partynodeobjects with only a root node was modified. Now, the terminal panel function is also applied if there is only a root node (while previously it was not).-
ctree()now catchessum(weights) <= 1situations before they lead to an error. Code from suggested packages is included by using
::syntax as required by recent R versions.Argument
ytrafoofctree()can now be a function which will be updated in every node.A small demo briefly illustrating some memory and speed properties has been added. It can be run interactively via
demo("memory-speed", package = "partykit").Section 3 of the "constparty" vignette now shows how properties of a new tree algorithm can be assessed by using partykit building blocks.
Changes in Version 0.8-0 (2014-03-27)
Major improved version of partykit. The previously existing functions in the package were tested and enhanced, new functions and extensive vignettes added.
Extended and improved introductory documentation. The basic classes and class constructors
partynode/partysplit/partyare introduced in much more detail now invignette("partykit", package = "partykit").The class
constparty(inheriting fromparty) for representingpartyobjects with constant fits in the nodes (along with coercion methods forrpart,J48, etc.) is now described in more detail in the newvignette("constparty", package = "partykit").The package now includes a reimplementation of the model-based recursive partitioning algorithm (MOB) using partykit infrastructure. The generic algorithm, the corresponding convenience interfaces
lmtree()andglmtree()as well as various illustrations and possible extensions are described in detail in the newvignette("mob", package = "partykit").Improved implementation of conditional inference trees (CTree), see the new
vignette("ctree", package = "partykit")for details.New
nodeprune()generic for pruning nodes in allpartytrees andpartynodeobjects.Deal with empty levels in
ctree()forteststat = "quad"(bug reported by Wei-Yin Loh <loh_at_stat.wisc.edu>).In
predict()method forconstpartyobjects,type = "prob"now returns ECDF for numeric responses andtype = "response"the (weighted) mean.New panel function
node_ecdf()for plotting empirical cumulative distribution functions in the terminal leaves ofconstpartytrees.
Changes in Version 0.1-6 (2013-09-03)
Bug fix in
as.party()method for J48 trees with ordered factors.
Changes in Version 0.1-5 (2013-03-22)
Fix C code problems reported by clang under OS X.
Changes in Version 0.1-4 (2012-06-05)
Added
node_surv()for plotting survival ctrees. Accompanying infrastructure for survival trees was enhanced.ctree()now checks for (and does not allow)x >= max(x)splits.
Changes in Version 0.1-3 (2012-01-11)
Added ipred to the list of suggested packages due to usage of GlaucomaM and GBSG2 data in tests/examples.
Changes in Version 0.1-2 (2011-12-18)
The
node_terminal()panel-generating function is now customizable by a FUN argument that is passed toformatinfo().The
plot()method forsimplepartyobject now sets up a formatting function passed toformatinfo(), both inprint()andplot().Fixed bug in
pmmlTreeModel()for processing label IDS in splits when not all levels are present.Cleaned up unused variables in C code and partial argument matching in R code.
Changes in Version 0.1-1 (2011-09-29)
First CRAN release.
See
vignette("partykit", package = "partykit")for a (somewhat rough) introduction to the package and its classes/methods.