Package: randomForestSRC
Version: 3.5.0 (bld20260110)

---------------------------------------------------------------------------------
FOR BETA BUILDS, DOCUMENTATION, and dual compilation for R and
  Spark/Java (experimental) please see:
  https://github.com/kogalur/randomForestSRC
---------------------------------------------------------------------------------

---------------------------------------------------------------------------------
CHANGES TO RELEASE 3.5.0
---------------------------------------------------------------------------------
For survival and competing risk analysis, concordance-based
performance is now computed using Uno inverse-probability-of-censoring
weighting (Uno et al. 2001). This affects all survival performance
values derived from the concordance index, including out-of-bag and
test error rates and variable importance (VIMP). To revert to
unweighted Harrell concordance, set use.uno = FALSE when fitting a
survival forest.  Concordance calculations now use an efficient O(n,
log n) algorithm based on a binary indexed tree (Fenwick 1994,
Therneau 2024), replacing the naive O(n^2) pairwise computation for
large n.  All mclapply() have been eliminated or replaced by PSOCK
providing Windows compatibility as well.
  
---------------------------------------------------------------------------------
RELEASE 3.4.5
---------------------------------------------------------------------------------
Change to get.rf.cores() to respect check-as-cran limits. 

---------------------------------------------------------------------------------
RELEASE 3.4.4
---------------------------------------------------------------------------------
Improved output for quantile regression.  New full sweep option for
imputation via the impute function.

---------------------------------------------------------------------------------
RELEASE 3.4.3
---------------------------------------------------------------------------------
Removed multiplication factor by e^1 for conditional vimp rates for classification.
This was causing vimps greater than one.

---------------------------------------------------------------------------------
RELEASE 3.4.2
---------------------------------------------------------------------------------
Improves "tune.rfsrc" now includes "golden-search". Improved print
output for grow object.  Improved print output for imbalanced forests
"get.imbalanced.performance".

---------------------------------------------------------------------------------
RELEASE 3.4.1
---------------------------------------------------------------------------------
Bug related to fast/save for classification objects.

---------------------------------------------------------------------------------
RELEASE 3.4.0
---------------------------------------------------------------------------------
Removal of var.select().  It is recommended that users install the package
varPro available on GitHub for variable selection.

---------------------------------------------------------------------------------
RELEASE 3.3.1, RELEASE 3.3.2
---------------------------------------------------------------------------------
Fix to UBSAN warnings.
  
---------------------------------------------------------------------------------
RELEASE 3.3.1
---------------------------------------------------------------------------------
Fix to longstanding bug in conditional classification Brier Score.  We were not
normalizing conditional values.  Addition of case.depth option.

---------------------------------------------------------------------------------
RELEASE 3.3.0
---------------------------------------------------------------------------------
Resolved an issue with classification where there is a discrepancy
between training and unseen test set class labels.  Minor fixes to
subsampling and improved the plot function for subsampling to allow
users to retrieve the plot information for developing custom figures.

---------------------------------------------------------------------------------
RELEASE 3.2.3
---------------------------------------------------------------------------------
Fix to insecure string warnings on Linux.

---------------------------------------------------------------------------------
RELEASE 3.2.2
---------------------------------------------------------------------------------
Improved the subsampling function.  Now users can obtain standard
errors and confidence regions for the generalization error of the
forest.  Addition of heavy weighted, and unweighted split rules for
mse, gini, unsupv, and mv cases.

---------------------------------------------------------------------------------
RELEASE 3.2.1
---------------------------------------------------------------------------------
Fix to catestrophic cancellation and buffer overrun in updateCDF(),
when xvar.wt is active with real weights, and mostly when they are
very small values.  This bug was introduced in Release 3.1.1.

---------------------------------------------------------------------------------
RELEASE 3.2.0
---------------------------------------------------------------------------------
Added case-depth.  Improved plot.subsample. Improved get.brier.survival.

---------------------------------------------------------------------------------
RELEASE 3.1.1
---------------------------------------------------------------------------------
Fixed long standing bug in mtry when xvar.wt is specified as a real
vector (not uniform, or integers). In such situations, mtry was not
correctly being implemented.  Generalized mtry to ytry which is now
fully functional in the multivariate mixed case.
Changed suggests from akima to interp. Updated homepage URL's.
  
---------------------------------------------------------------------------------
RELEASE 3.1.0
---------------------------------------------------------------------------------
Added a new way to deal with missing data in prediction where missing
data is assigned randomly by daughter size.  Use option
na.action="na.random".  Added enhanced capability to deal with test
data with factors.  Previously test data with factor levels not
matching training data would throw an error.  This then required users
to apply hot encoding and other inferior workarounds.  These
workaround are no longer needed.  Continued improvements to CPU times
for training and prediction.  Added a save.memory feature for big
survival data to address slow training times that users were
experiencing with large competing risk and right censored survival
data.  Added the ability for users to supply their own sigma matrix
for the mahalanobis splitting rule.  Added new features to subsample
(used for VIMP confidence intervals).  Users can now specify variables
for joint VIMP confidence intervals and selectively plot confidence
intervals using variables of their choosing. VIMP random now also uses
daughter sizes as the secondary threshold after considering the
primary vimp.threshold.

---------------------------------------------------------------------------------
RELEASE 3.0.2
---------------------------------------------------------------------------------
Minor changes to donttest examples that caused issues.  Continued
improvements to overall speed of the package.

---------------------------------------------------------------------------------
RELEASE 3.0.1
---------------------------------------------------------------------------------
Minor changes to Rd files. Re-introduction of competing risk
generalized logrank split rule (3.1.1 in the CR paper).  This had been
accidentally removed in CRAN build 2_9_0. Fix to DESCRIPTION URL per
Prof. Ripley's request.
  
---------------------------------------------------------------------------------
RELEASE 3.0.0
---------------------------------------------------------------------------------
Added the ability to get confidence intervals for out-of-bag error
rates using the subsample function.  Significant improvements in CPU
times for restoration of models and prediction with new data.  Fixed the
ability to select between in situ ensemble calculation and post-forest
ensemble calculation.  This can be useful when doing these
calculations in parallel causes significant contention for memory
locations that are in critical OpenMP regions.
  

  ---------------------------------------------------------------------------------
RELEASE 2.14.0
---------------------------------------------------------------------------------
Fix to R_init per Prof. Ripley.  Improved output from analysis,
including more reported performance metrics. New get.brier.survival
function for extracting Brier score in survival settings.  Importance,
when true, now defaults to anti.  Fix to get.tree not playing well
with seed for repeatability of importance.

---------------------------------------------------------------------------------
RELEASE 2.13.0
---------------------------------------------------------------------------------
Fix to missing data segfault related to GitHub issue 112.  Mahalanobis
splitting in multivariate regression settings when all outcomes are
real-valued.  This can have added benefit when outcomes are correlated
in contrast to the default composite (independent) splitting rule.
Improvements to the speed and output for missForest imputation.  New
home page with documentation and vignettes at
https://luminwin.github.io/randomForestSRC

---------------------------------------------------------------------------------
RELEASE 2.12.1
---------------------------------------------------------------------------------
Fix to omp.h declaration before R headers per Prof. Ripley, in
anticipation of clang 13.0.0.

---------------------------------------------------------------------------------
RELEASE 2.12.0
---------------------------------------------------------------------------------

Fixes to variable importance OpenMP threading inefficiencies related
to GitHub issues 95,96,103.  Variable importance is now repeatable via
the seed argument, addressing GitHub issues 67,69.  Fix to new
distance measure not being normalized, addressing GitHub issue
100. Fixed an issue related to factors in test data where levels were
not matching traning data.  Improvements to user-interface for
partial.rfsrc().  Some improvements in speed and internal logic in the
absence of missing data.
  
---------------------------------------------------------------------------------
RELEASE 2.11.0
---------------------------------------------------------------------------------
Implementation of rfsrc.anonymous() allowing one to save a model without
the presence of training data, and subsequently predicting without it, as well.
Case specific error and VIMP for classification and regression.
  
---------------------------------------------------------------------------------
RELEASE 2.10.0
---------------------------------------------------------------------------------
New additions to the package include sidClustering of unsupervised
data using staggered interaction data (SID) (Mantero and Ishwaran,
2020).  Implements the artificial two-class approach of Breiman
(2003).  Improved hold out VIMP calculated from the error rate of mini
ensembles of trees (blocks of trees) grown with and without a
variable. Applies to all families. Finally, visualize trees on your
Safari or Google Chrome browser using the new get.tree function for
extracting trees from a forest. Many thanks to @dbarg1 on GitHub for
the initial prototype of this last function.

---------------------------------------------------------------------------------
RELEASE 2.9.3
---------------------------------------------------------------------------------
Bug fixes: Serious impute() issue introduced in the last build (Bug 59
on GitHub).  Fix to compile time error on systems that do not support
OpenMP.  Here, the OpenMP code that was inadvertently exposed is now
protected when OpenMP support is not detected.  Also updated
impute.rfsc.Rd with a salient example.

---------------------------------------------------------------------------------
RELEASE 2.9.2
---------------------------------------------------------------------------------
Bug fixes: Fix to Windows 10 OpenMP stack allocation error encountered
when survival and large n are encountered (Bug 50 on GitHub).  Fix to 
get.quantile.stat() (Bug 51 on GitHub).

---------------------------------------------------------------------------------
RELEASE 2.9.1
---------------------------------------------------------------------------------
Bug fixes to quantreg and some minor updates to other functions.

---------------------------------------------------------------------------------
RELEASE 2.9.0
---------------------------------------------------------------------------------
Added new splitrules "auc" and "entropy" for classification.
Improvements to quantile regression.  Updates to holdout vimp.  Some
function names were changed as a general move towards name uniformity
in the package.  Updates to function imbalanced used for class
imbalanced data.

---------------------------------------------------------------------------------
RELEASE 2.8.0
---------------------------------------------------------------------------------
Ensembles in regression now support Greenwald-Khanna approximate
quantile queries via rfsrc(), predict.rfsrc() and the new wrapper
quantileReg.rfsrc(). Related to this, a new split rule "quantile.regr"
has been added.  Specifications will be added to the GitHub page,
shortly.  Another new wrapper, imbalanced.rfsrc(), implements various
solutions to the two-class imbalanced problem, including the newly
proposed quantile-classifier approach of O'Brien and Ishwaran (2017).
Also includes Breiman's balanced random forests undersampling of the
majority class.  Performance is assesssed using the G-mean, but
misclassification error can be requested. Also, the new parameter
get.tree in predict.rfsrc() allows users to extract the ensembles for
a single tree or subset of trees over the forest. Finally, the default
nodesize for survival and competing risk has been changed to 15.
    
---------------------------------------------------------------------------------
RELEASE 2.7.0
---------------------------------------------------------------------------------
Three primary additions:
  (1) Subsample Forests for VIMP Confidence Intervals:
  Uses subsampling to calculate confidence intervals and standard
  errors for VIMP (variable importance). Applies to all families.
  (2) Tune Random Forest for the optimal mtry and nodesize parameters:
  Finds the optimal mtry and nodesize tuning parameter for a random
  forest using out-of-bag (OOB) error.  Applies to all families. 
  (3) Fast approximate random forests:  Uses subsampling with forest options
  set to encourage computational speed.  Applies to all families.

---------------------------------------------------------------------------------
RELEASE 2.6.1
---------------------------------------------------------------------------------
Fix to predict() call not returning ensembles when y-vars not present.  Sorry
about that.
  
---------------------------------------------------------------------------------
RELEASE 2.6.0
---------------------------------------------------------------------------------
Serious improvements to OpenMP performance after addressing issues
related to the blocking of threads during a number of calculations
involving ensembles, importance, forest weights, and partial plots
mostly in big-n data sets.
  
---------------------------------------------------------------------------------
RELEASE 2.5.1
---------------------------------------------------------------------------------
Addition of configure file to source package allowing more accessible OpenMP
parallel execution on systems that support it.
  
---------------------------------------------------------------------------------
RELEASE 2.5.0
---------------------------------------------------------------------------------
Introduction of conditional quantiles for a regression forest.
Applies to both univariate and multivariate forests.  Can be used for
both training and testing purposes and returns the conditional
quantiles for the target outcomes, and conditional density, which can
be used to calculate conditional moments, such as the mean and
standard deviation.

---------------------------------------------------------------------------------
RELEASE 2.4.2
---------------------------------------------------------------------------------
Bug fixes to partial.rfsrc() on R and C side.  Allowance of second
order variable specification in this analysis.  Conditional importance
values in classification adjusted by a factor of exp(1).  Bug fix to unsafe
threading in LB-VIMP calculations.

---------------------------------------------------------------------------------
RELEASE 2.4.1
---------------------------------------------------------------------------------
Fix to typedef that breaks Linux.  Sorry about that.
  
---------------------------------------------------------------------------------
RELEASE 2.4.0
---------------------------------------------------------------------------------
Fix to custom splitting family verification and registration harness.
Introduction of bootstrap="by.user".  Fix to incorrect mapping of user
specified time points to event times when ntime option is used.  It is
recommended that the use of this option be avoided.  The effect of
discretizing the time values compromises the ensembles. For best
results, all event times must be used.  This was and is the default
behaviour.  Fix to incorrect passing of time option parameter in
plot.variable().  Introduction of partial.rfsrc() to allow direct
access to partial ensembles.  Added support for long vectors on native
code side.
  
RELEASE 2.3.0
---------------------------------------------------------------------------------  
Fix to levels.count when ntree=1.  Some n-based loop optimization.
Significant improvements in CPU times for restore-predict modes, and
plot.variable().  Consequent changes to forest object, and
incompatibility with objects created with previous versions of the
package.  Default is now importance=FALSE in predict.rfsrc().

RELEASE 2.2.0
---------------------------------------------------------------------------------
Bug fix to coerce.factor option via get.xvar.nlevels() and
get.yvar.nlevels() resolved by sending in max instead of number of
levels.  Bug fix to VIMP that potentially occurs in OpenMP mode
causing non-zero LB-VIMP. Methodological fix to in-node imputation.
and removal of na.random.  Consequent incompatibility with objects
created with previous versions of the package. Fix to rfsrcSyn() bug
pertaining to colnames of test set synthetic features. Introduction of
sampsize, samptype, and case.wt to address imbalanced data sets.
Continued improvements to CPU and memory performance in big-n, big-p,
and big-ntree scenarios.
  
RELEASE 2.1.0
---------------------------------------------------------------------------------
Change to GROW mode default importance=none and to allow importance=TRUE.
Addition of user trace with time estimates.
CPU usage - code optimization of ensemble calculations.
CPU usage - code optimization of imputation. 
Fix to R-side parsing of ensembles in multivariate classification.
Change to treat ordered factors under classification setting
instead of regression.
    
---------------------------------------------------------------------------------
RELEASE 2.0.7
Fix to factor coercion option in responses.  Fix to R-side processing
of err.rate and importance in multivariate families with
classification. Update of OPENMP protocols per CRAN recommendation.
Expansion of fast.restore option to omit performance on every tree,
and update to associated Rd file.

---------------------------------------------------------------------------------
RELEASE 2.0.5  
Fix to bug in dimensioning of predict object in survival families.
Added documentation for custom splitting.

---------------------------------------------------------------------------------
RELEASE 2.0.0
Multivariate capabilities added. Custom splitting harness
modifications.  Redefinition of nodesize to allow terminal nodes less
than said size, subject to the initial test for 2 x nodesize before
the split, maximum depth, and purity.  Various bug fixes.

RELEASE 1.6.1
Fix to donttest example in rfsrc.Rd, and other adjustments per
CRAN packaging protocols.

---------------------------------------------------------------------------------
RELEASE 1.6.0
Bug fix to duplicating missingness protocol when restoring a forest.
Added fast.restore option to grow call.  Change to pass through
xvar.wt as entered by user. RAM profile reduction in vimp().  Added
versioning checks of forest object, thanks to suggestions by John
Ehrlinger.  Bug fix to allow logical responses, treated as reals. User
trace functionality restored.

---------------------------------------------------------------------------------
RELEASE 1.5.5
Bug fix to daughter assignment in classification.  Significant RAM
optimization in all modes.

---------------------------------------------------------------------------------
RELEASE 1.5.4
Addition of new function stat.split() for extracting information from
tree node splitting-statistics.  Added more functionality to
rfsrcSyn() for fitting synthetic random forests.

---------------------------------------------------------------------------------
RELEASE 1.5.3
Addition of rfsrcSyn() function to grow a synthetic random forest (RF)
using RF machines as synthetic features.  Applies only to regression
and classification settings.  Used for prediction only.

---------------------------------------------------------------------------------
RELEASE 1.5.2
Fix to non-standard GCC errors and warnings.  Fix to bug in split
rules related to omission of missing individuals in the split
statistic.  Minor R-side fixes.

---------------------------------------------------------------------------------
RELEASE 1.5.1
Fix to UBSAN warnings.  Implementation of new RG protocols.

---------------------------------------------------------------------------------
RELEASE 1.5.0
Significant improvements to CPU and RAM usage profiles in serial and
OpenMP modes of execution.  Proximity options allow inbag, OOB and all.
VIMP implements sub-setting and conditional variable importance. NA
options allow the split statistic to be based on non-missing values
only.  In addition it allows random assignment of missing values.

---------------------------------------------------------------------------------
RELEASE 1.4.0
Modification of terminal node imputation protocol.  We now assign all
individuals the same value rather than sampling from the distribution.
Implementation of split.null option.  Implementation of unsupervised
splitting for missing data in impute.rfsrc().  Modification of nimpute
> 1 protocols.  In-bag, OOB, and all now depend on the mode.
Reduction in impute memory footprint.  Modification of proximity
option to allow in-bag, OOB, and all.  Fixed bug in predict involving
manual formula calls.  Fixed bug in find.interaction involving
specifying covariate names.  Changes relating to Undefined Behaviour
Sanitizer.

---------------------------------------------------------------------------------
RELEASE 1.3.0

Initial re-engineering of memory footprint for imputation.
Performance enhancements to split rules.

---------------------------------------------------------------------------------
RELEASE 1.2.0

Competing risks now implements two distinct splitting rules for
identifying short term risks affecting the cause-specific hazard or
long term predictions affecting the cumulative incidence function. The
plot.variable function now returns, and can reuse, a plot.variable
data structure object for user convenience. Thanks to John Ehrlinger
for this improvement. Other minor bug fixes, and enhancements.

---------------------------------------------------------------------------------
RELEASE 1.1.0
OpenMP performance enhancements to ensemble and variable importance calculations.

---------------------------------------------------------------------------------
RELEASE 1.0.2
Fix to [S] missingness check when all status are non-censored.
Fix to [S] summary imputation of time.
Fix to variables used all.trees output.
Fix to manual formula interface.
Removed big.data option.
Added ntime option for survival families.

---------------------------------------------------------------------------------
RELEASE 1.0.1
Replaced 'suggests multicore' with 'depends parallel'.  Followed
protocol in parallel package for controlling number of cores, via
options(), and environment variables.  Reduced [S] memory footprint by
prematurely de-allocating terminal node information.

---------------------------------------------------------------------------------
RELEASE 1.0.0 represents the first release of the package.  

